No edit summary |
No edit summary |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Host | {{Host | ||
|name=extern.chaosdorf.de | |name=extern.chaosdorf.de | ||
|os=Debian | |os=Debian 11 amd64 | ||
|location=Host:Vm | |location=Host:Vm | ||
|purpose=öffentliche Dienste | |purpose=öffentliche Dienste | ||
|disk= | |disk=40GB | ||
|ram= | |ram=4GiB | ||
|swap=4GB | |swap=4GB | ||
|admin_toolkit=Yes | |admin_toolkit=Yes | ||
Line 13: | Line 13: | ||
|admins=byte, derf, feuerrot | |admins=byte, derf, feuerrot | ||
}} | }} | ||
[https://chaosdorf.de/dashboard/d/rYdddlPWk/node-exporter-full?orgId=1&refresh=1m&var-DS_PROMETHEUS=default&var-job=node&var-node=extern.chaosdorf.de:9100 Stats (intern)] | |||
== Mediawiki == | == Mediawiki == | ||
''wiki.chaosdorf.de'' (aka "dieses"). | ''wiki.chaosdorf.de'' (aka "dieses"). | ||
Standardsetup mit | Standardsetup mit nginx, php-fpm und MySQL. | ||
[[Special:Version]] (inkl. Extensions) / [[Special:Statistics]] (inkl. Admins) | [[Special:Version]] (inkl. Extensions) / [[Special:Statistics]] (inkl. Admins) | ||
Extensions werden bevorzugt per Tarball installiert / aktualisiert. Per Composer installierte Extensions müssen in composer.local.json eingetragen werden. | |||
Wir nutzen folgende nicht im Mediawiki-Release enthaltene Extensions: | |||
* MobileFrontend für Handy- und Tabletsupport (tarball) | |||
* LDAPAuthentication2 (+PluggableAuth+LDAPProvider) (tarball) | |||
* SemanticMediaWiki für [[Projects]], [[Resources]] u.ä. (composer) | |||
* PageForms um Templates per Formular statt Plaintext bearbeiten zu können (tarball) | |||
Und folgende nicht im Mediawiki-Release enthaltene Skins: | |||
* MinervaNeue für das Mobile Frontend (tarball) | |||
=== Wiki aktualisieren === | |||
* Neues Mediawiki-Release als Tarball laden | |||
* SMW deaktivieren (enableSemantics in den LocalSettings auskommentieren) | |||
* Mediawiki-Tarball entpacken (<tt>tar xf /tmp/mediawiki-X.Y.Z.tar.gz -C /srv/www/de.chaosdorf.wiki --strip-components=1</tt>) | |||
* <tt>sudo chown -R www-data:www-data vendor</tt>) | |||
* <tt>sudo -u www-data php composer.phar update --no-dev</tt> | |||
* SMW wieder aktivieren | |||
* <tt>sudo -u www-data php maintenance/update.php</tt> | |||
* Nicht im Mediawiki-Release enthaltene Extensions aktualisieren (Tar-Archive runterladen und entpacken) | |||
=== SMW updaten === | |||
Ist frickelig. <tt>cd /srv/www/de.chaosdorf.wiki</tt>, Version in composer.local.json ändern, <tt>sudo -u www-data composer update --no-dev</tt>. | |||
=== Login === | === Login === | ||
Line 26: | Line 56: | ||
Anonyme Edits sind erlaubt. | Anonyme Edits sind erlaubt. | ||
=== Kalender === | === Kalender === | ||
Line 40: | Line 64: | ||
Installiert in <tt>/srv/www/de.chaosdorf</tt>, enthält ein Git-Repo zum Tracken der Installation. Die Nutzdaten liegen in der lokalen MySQL-Datenbank <tt>wordpress</tt>. | Installiert in <tt>/srv/www/de.chaosdorf</tt>, enthält ein Git-Repo zum Tracken der Installation. Die Nutzdaten liegen in der lokalen MySQL-Datenbank <tt>wordpress</tt>. | ||
wp-settings enthält zwecks mehr Datenschutz einen [https://developer.wordpress.org/rest-api/frequently-asked-questions/#require-authentication-for-all-requests Filter], der API-Zugriffe nur mit Login erlaubt. | |||
=== Updates === | === Updates === | ||
Ein Icinga-Check meldet sich bei anstehenden Updates, installiert werden diese ganz normal über das Webinterface. Nach dem Updaten: Per SSH auf <tt>extern:/srv/www/de.chaosdorf</tt> verbinden und die Änderungen committen (<tt>git add -A .; git commit -m 'wordpress updates'</tt>). | Ein Icinga-Check meldet sich bei anstehenden Updates, installiert werden diese ganz normal über das Webinterface. Nach dem Updaten: Per SSH auf <tt>extern:/srv/www/de.chaosdorf</tt> verbinden und die Änderungen committen (<tt>git add -A .; git commit -m 'wordpress updates'</tt>). Teilweise muss man zuvor von Hand <tt>/srv/www/de.chaosdorf/.maintenance</tt> löschen (irgendwas ist beim Wordpress im Argen…). | ||
== WWW-Userdirs == | == WWW-Userdirs == | ||
Line 54: | Line 80: | ||
Per Cronjob werden jede Minute Tür- und Raumstatus von {{H|feedback}} angefragt, anhand dessen wird [https://chaosdorf.de/raumstatus/status.png https://chaosdorf.de/raumstatus/status.png] auf ein passendes Bild gesymlinkt. Die Skripte und Bilder finden sich unter [https://github.com/chaosdorf/chaosdorf-admin-toolkit/tree/master/raumstatus chaosdorf-admin-toolikt/raumstatus] und können per <tt>fab deploy_raumstatus</tt> ausgerollt werden. | Per Cronjob werden jede Minute Tür- und Raumstatus von {{H|feedback}} angefragt, anhand dessen wird [https://chaosdorf.de/raumstatus/status.png https://chaosdorf.de/raumstatus/status.png] auf ein passendes Bild gesymlinkt. Die Skripte und Bilder finden sich unter [https://github.com/chaosdorf/chaosdorf-admin-toolkit/tree/master/raumstatus chaosdorf-admin-toolikt/raumstatus] und können per <tt>fab deploy_raumstatus</tt> ausgerollt werden. | ||
== Dashboard == | |||
[https://chaosdorf.de/dashboard dashboard.chaosdorf.de] wird per nginx-Proxy an {{H|dashboard}} weitergereicht. | |||
== Prosody == | == Prosody == | ||
Line 60: | Line 90: | ||
Eine offene Registrierung von Accounts ist aus Ressourcengründen nicht erlaubt. Account anlegen: <tt>fab jabber_adduser:''foo''</tt> lokal oder <tt>sudo -u prosody prosodyctl adduser ''foo''@chaosdorf.de</tt> auf extern. | Eine offene Registrierung von Accounts ist aus Ressourcengründen nicht erlaubt. Account anlegen: <tt>fab jabber_adduser:''foo''</tt> lokal oder <tt>sudo -u prosody prosodyctl adduser ''foo''@chaosdorf.de</tt> auf extern. | ||
== TLS == | |||
Das TLS-Zertifikat für nginx und prosody wird einmal monatlich per certbot (LetsEncrypt) erneuert. Über <tt>/etc/crontab</tt> wird dazu <tt>/usr/local/sbin/refresh-tls-cert</tt> aufgerufen, was per certbot das Zertifikat erneuert und nginx sowie prosody neustartet. Wir nutzen einen nicht ganz üblichen certbot-Workflow mit von uns manuell erstelltem CSR, da wir so einen ECDSA-Key für unser Zertifikat nutzen können. | |||
[[Category:Administration]] | [[Category:Administration]] |
Latest revision as of 07:12, 11 June 2023
extern.chaosdorf.de | |
---|---|
Ort | Host:Vm |
Zweck | öffentliche Dienste |
OS | Debian 11 amd64 |
Disks | 40GB40,000 MB <br />40,000,000 kB <br />0.04 TB <br /> |
RAM | 4GiB4,096 MiB <br />4,194,304 kiB <br />4,294,967,296 B <br />0.00391 TiB <br />4,294.967 MB <br /> |
Swap | 4GB4,000 MB <br />4,000,000 kB <br />0.004 TB <br /> |
Admin-Toolkit | Yes |
ssh key path | /var/cache/ssh |
PAM? | Yes |
SSH user login? | No |
Admins | byte, derf, feuerrot |
Mediawiki[edit source]
wiki.chaosdorf.de (aka "dieses").
Standardsetup mit nginx, php-fpm und MySQL.
Special:Version (inkl. Extensions) / Special:Statistics (inkl. Admins)
Extensions werden bevorzugt per Tarball installiert / aktualisiert. Per Composer installierte Extensions müssen in composer.local.json eingetragen werden.
Wir nutzen folgende nicht im Mediawiki-Release enthaltene Extensions:
- MobileFrontend für Handy- und Tabletsupport (tarball)
- LDAPAuthentication2 (+PluggableAuth+LDAPProvider) (tarball)
- SemanticMediaWiki für Projects, Resources u.ä. (composer)
- PageForms um Templates per Formular statt Plaintext bearbeiten zu können (tarball)
Und folgende nicht im Mediawiki-Release enthaltene Skins:
- MinervaNeue für das Mobile Frontend (tarball)
Wiki aktualisieren[edit source]
- Neues Mediawiki-Release als Tarball laden
- SMW deaktivieren (enableSemantics in den LocalSettings auskommentieren)
- Mediawiki-Tarball entpacken (tar xf /tmp/mediawiki-X.Y.Z.tar.gz -C /srv/www/de.chaosdorf.wiki --strip-components=1)
- sudo chown -R www-data:www-data vendor)
- sudo -u www-data php composer.phar update --no-dev
- SMW wieder aktivieren
- sudo -u www-data php maintenance/update.php
- Nicht im Mediawiki-Release enthaltene Extensions aktualisieren (Tar-Archive runterladen und entpacken)
SMW updaten[edit source]
Ist frickelig. cd /srv/www/de.chaosdorf.wiki, Version in composer.local.json ändern, sudo -u www-data composer update --no-dev.
Login[edit source]
Per LDAP ("Chaosdorf"), alternativ mit eigens registriertem Account ("local").
Anonyme Edits sind erlaubt.
Kalender[edit source]
Auf shells läuft alle 5 Minuten wikicron/current_events über derfs crontab, welches Chaosdorf_Wiki:Current_events, Template:Current_events_preview und Chaosdorf_Wiki:Past_events generiert. Es erzeugt ebenfalls ein ical, welches per scp auf <https://chaosdorf.de/~derf/cccd.ics> landet.
Wordpress[edit source]
Installiert in /srv/www/de.chaosdorf, enthält ein Git-Repo zum Tracken der Installation. Die Nutzdaten liegen in der lokalen MySQL-Datenbank wordpress.
wp-settings enthält zwecks mehr Datenschutz einen Filter, der API-Zugriffe nur mit Login erlaubt.
Updates[edit source]
Ein Icinga-Check meldet sich bei anstehenden Updates, installiert werden diese ganz normal über das Webinterface. Nach dem Updaten: Per SSH auf extern:/srv/www/de.chaosdorf verbinden und die Änderungen committen (git add -A .; git commit -m 'wordpress updates'). Teilweise muss man zuvor von Hand /srv/www/de.chaosdorf/.maintenance löschen (irgendwas ist beim Wordpress im Argen…).
WWW-Userdirs[edit source]
Nutzer können sich per SFTP einloggen (z.B. 'lftp sftp://user@extern.chaosdorf.de'). Wenn sie dort Dateien in public_html ablegen, sind diese unter https://chaosdorf.de/~user erreichbar.
Über /etc/pam.d/sshd wird /usr/local/sbin/addquota ausgeführt, um für neue User (!= root) einmalig ein Quota zu setzen.
Raumstatus[edit source]
Per Cronjob werden jede Minute Tür- und Raumstatus von feedback angefragt, anhand dessen wird auf ein passendes Bild gesymlinkt. Die Skripte und Bilder finden sich unter chaosdorf-admin-toolikt/raumstatus und können per fab deploy_raumstatus ausgerollt werden.
Dashboard[edit source]
dashboard.chaosdorf.de wird per nginx-Proxy an dashboard weitergereicht.
Prosody[edit source]
Die Konfiguration liegt in /etc/prosody/prosody.cfg.lua, der VHost chaosdorf.de in /etc/prosody/conf.d/chaosdorf.de.cfg.lua. Es sind keine NS-Records eingerichtet.
Eine offene Registrierung von Accounts ist aus Ressourcengründen nicht erlaubt. Account anlegen: fab jabber_adduser:foo lokal oder sudo -u prosody prosodyctl adduser foo@chaosdorf.de auf extern.
TLS[edit source]
Das TLS-Zertifikat für nginx und prosody wird einmal monatlich per certbot (LetsEncrypt) erneuert. Über /etc/crontab wird dazu /usr/local/sbin/refresh-tls-cert aufgerufen, was per certbot das Zertifikat erneuert und nginx sowie prosody neustartet. Wir nutzen einen nicht ganz üblichen certbot-Workflow mit von uns manuell erstelltem CSR, da wir so einen ECDSA-Key für unser Zertifikat nutzen können.