/* VMs */ LEDE ist tot, lang lebe OpenWRT
[stratum0-wiki.git] / Regolas.mw
1 {{Hardware
2 |kontakt=<span></span>
3 * {{Benutzer|drc}} für PrivateBin,
4 * {{Benutzer|comawill}} für Kalender,
5 * [[Benutzer:Daniel Bohrer|Daniel Bohrer]] für alles andere
6 |status=working
7 |ort=[[endur]]
8 |beschreibung=VM für PHP/CGI-Dienste (MediaWiki, Paste, Dudle) und statische Dateien
9 }}
10
11 == SSH-Keys ==
12 -----BEGIN PGP SIGNED MESSAGE-----
13 Hash: SHA512
14
15 rohieb@regolas:~$ for i in /etc/ssh/ssh_host_*key.pub; do ssh-keygen -lf $i; done
16 1024 6f:80:b8:b3:a6:db:22:3b:2d:fe:0d:4b:bf:ec:04:00 /etc/ssh/ssh_host_dsa_key.pub (DSA)
17 256 5b:0a:6b:f7:b6:87:a2:12:1c:3c:39:ab:d8:1f:43:ea /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
18 256 4e:4d:7a:a8:9e:27:07:b0:4c:0b:e4:e1:a7:4e:37:d9 /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
19 2048 98:a7:cd:28:f8:f7:f3:83:4b:81:19:c1:c3:93:97:34 /etc/ssh/ssh_host_rsa_key.pub (RSA)
20 -----BEGIN PGP SIGNATURE-----
21 Version: GnuPG v1
22
23 iQEcBAEBCgAGBQJVXoX8AAoJEMOZylE6vjlSynQH/2fdvMNZe+cV8RuzGkYzdnOH
24 d2aCXw3l7Fofs3ETPV1nv2J5czFDjcNOSKrFdKgjU+gHht+IOWV4WGdTtLDMKOns
25 N8YKD8mJSE+9AgULYPoYn4XD/JBdR3IpHOXbms5D3MOscR1rFguW8dFFbd1S3iKs
26 V1Rqp8fIEgG8SKT+8dMKKhM1SDE6dNLONY2cq70rcDXmH85xlKhJ2LZ5w4yQ/Jr6
27 ZQLPiu49Ws1wH3YlK7u+3/GYGFh323f7iAJiJBn++6UiLkf/1YJQvvnlG7NB51ez
28 5V4e5OPFv320dvNSjfqR3Lb9gDr4SzJjMXg3psV9nRV5/DdMOY67FlgMAcpAWfs=
29 =XXiZ
30 -----END PGP SIGNATURE-----
31
32 == Doku ==
33 * Debian jessie, systemd
34 * 2 GB RAM
35 * Platte: 8 GB <tt>/</tt>, 128 GB <tt>/srv</tt>
36 * 4 CPU-Cores
37 * internes Netzwerk via DHCP
38 * HTTP kommt über [[gandolf]] als (SSL-)Proxy
39 ** Subdomains kommen von [[gandolf]] mit Host-Header, werden hier auf regolas auch als eigene Subdomains in <tt>/etc/nginx/sites-enables/*.stratum0.org</tt> geführt
40 * Mail per <tt>ssmtp</tt>
41
42 Services, nach Subdomains getrennt:
43
44 === <tt>stratum0.org</tt> ===
45 Alles, was statisch direkt im Webroot liegen kann, sowie Wiki als Hauptseite. Webroot in /srv/www/webroot, von dort aus meist Symlinks.
46
47 * MediaWiki
48 ** https://stratum0.org/mediawiki/index.php, https://stratum0.org/wiki/ als Rewrite-Alias
49 ** Dateien in /srv/www/mediawiki-<version>, Extensions in /srv/www/mediawiki-extensions, Medien in /srv/www/mediawiki-images
50 ** siehe auch: /srv/www/UPGRADING-MEDIAWIKI.markdown
51 ** OpenLayers für die OpenStreetMap-Karten unter [[Anfahrt]] in /srv/www/openlayers
52 ** Abhängigkeiten:
53 *** Core: <tt>nginx php-fpm php-apcu php-intl php-gd php-mbutils php-xml php-mysql mariadb-server</tt>
54 *** Für SVG/PDF-Support: <tt>librsvg2-bin ghostscript poppler-utils</tt>
55 *** Für die MediaWiki-Wartungsskripte: <tt>php-cli</tt>
56 * Blog
57 ** statische Dateien von [[bogomir]] (GitLab-CI) per rsync nach <tt>/srv/www/blog-preview/<i>$branchname</i></tt>
58 *** <tt>/srv/www/blog-preview/master</tt> → https://stratum0.org/blog
59 *** <tt>/srv/www/blog-preview/preview</tt> → <nowiki>https://stratum0.org/blog-preview/preview</nowiki> (don't use, broken links!) → https://sandbox.stratum0.org/blog von [[gandolf]] via Reverse Proxy
60 *** (funktioniert prinzipiell für alle Branches, aber nur <tt>preview</tt> und <tt>master</tt> sind im Moment nach außen richtig verdrahtet. Problem dabei sind absolute Pfade im Blog-Setup auf <tt>/blog/…</tt>, sodass für jeden Branch im Prinzip eine eigene Domain nötig wäre.)
61 ** Abhängigkeiten: <tt>openssh-client</tt>
62 * Kalender
63 ** Git-Repo: https://gitli.stratum0.org/stratum0/calendar/
64 ** Python-virtualenv in <tt>/opt/stratum0-calendar-venv</tt> (be root)
65 ** Code in <tt>/opt/stratum0-calendar</tt> (be root)
66 ** <tt>bot.py</tt> läuft als User <tt>calendar</tt> alle 10 Minuten via <tt>/etc/cron.d/stratum0-calendar</tt>
67 ** tut statische Dateien nach <tt>/srv/www/webroot/kalender/</tt>
68 ** Abhängigkeiten: <tt>python3 virtualenv</tt>, außerdem <tt>/opt/stratum0-calendar/requirements.txt</tt> im virtualenv
69 ** Außerdem folgende glibc-Locales: <tt>de_DE.UTF-8 en_US.UTF-8 fr_CA.UTF-8 fr_FR.UTF-8</tt>
70 * Recordings von [[Vorträge]]n
71 ** statische Dateien in /srv/www/webroot/recordings (direkt im Webroot)
72
73 === <tt>paste.stratum0.org</tt> ===
74
75 PrivateBin als Paste-Service
76 * PrivateBin 1.3.5 in /srv/www/privatebin, verschlüsselte Daten in /srv/www/privatebin-data
77 * Abhängigkeiten: <tt>nginx php-fpm php-gd</tt>
78
79 === <tt>data.stratum0.org</tt> ===
80
81 Stratum 0 Open Data Portal™
82
83 * https://data.stratum0.org von [[gandolf]] als Proxy nach http://regolas/data.stratum0.org
84 * statische Dateien von [[theodem]] kommen per rsync (Unix-User theodem-rsync via SSH-Key) nach /srv/www/data.stratum0.org/
85 * Abhängigkeiten: <tt>openssh-client</tt>
86
87 === <tt>dudle.stratum0.org</tt> ===
88
89 Dudle zur Terminabstimmung
90 * Source als Git in <tt>/srv/www/dudle</tt>
91 ** Updates bitte mit sudo. Es gibt keine Tags, nur direkt den master #yolo.
92 * FastCGI auf <tt>/srv/www/dudle/*.cgi</tt> über <tt>/run/fcgiwrap.socket</tt> (via systemd socket activation)
93 ** neue Umfragen werden nach <tt>/srv/www/dudle/<i>slug</i>/*</tt> als Git-Repo angelegt
94 * Cleanup nach 90 Tagen über <tt>/etc/cron.daily/dudle-cleanup.sh</tt>
95 * Abhängigkeiten: <tt>nginx fcgiwrap spawn-fcgi ruby ruby-gettext git </tt>
96 ** Für Updates: <tt>gettext potool make</tt>
97 * FIXME: access control https://github.com/kellerben/dudle/issues/76
98
99 === fyrebot ===
100 * Update-Endpoint-Glue für den [[Space-Status]], setzt HTTP-Requests auf IRC-Requests um
101 * Code von https://gitli.stratum0.org/stratum0/status-bot in <tt>/home/fyrebot</tt>
102 * Start per fyrebots crontab, wird dort auch nächtlich neu gestartet, um IRC-Timeouts abzufangen
103 * HTTP per Reverse Proxy über [[gandolf]]s <tt>/etc/nginx/sites-enabled/status.stratum0.org</tt>
104 * Abhängigkeiten: <tt>python3 python3-irc python3-urllib</tt>
105
106 === stratumnews-bot ===
107 * [https://gitli.stratum0.org/stratum0/stratumnews-bot Git-Repo] in <tt>/opt/stratumnews</tt>
108 * läuft via <tt>/etc/cron.d/stratumnews</tt> als User <tt>stratumnews</tt> alle 2 Minuten
109
110 === [[Benutzer:Willenbot]] ===
111 * [https://gitli.stratum0.org/stratum0/calendar/ Stratum 0 Calendar™] mit MediaWiki-Login-Config in <tt>/opt/stratum0-calendar/</tt>
112 * läuft als eigener User per cron alle paar Minuten, siehe <tt>/etc/cron.d/stratum0-calendar</tt>
113
114 == Checkliste für Updates ==
115 * Wenn neues Python:
116 ** venv für Kalender neu anlegen: <tt>rm -rf /opt/stratum0-calendar-venv; python3 -m venv /opt/stratum0-calendar-venv; /opt/stratum0-calendar-venv/bin/pip install -r /opt/stratum0-calendar/requirements.txt</tt>
117 * Wenn neues PHP:
118 ** <tt>/etc/php-x.y/fpm/php.ini</tt> muss manuell migriert werden, siehe [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934328 debbug 934328]. etckeeper is your friend.
119 ** neuen Socket in <tt>/etc/nginx/snippets/fastcgi-php.conf</tt> eintragen.
120
121 == Log ==
122 * PrivateBin auf 1.3.5 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 22:40, 5. Apr. 2021 (CEST)
123 * PrivateBin auf 1.3.4 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 19:50, 2. Nov. 2020 (CET)
124 * Dist-Upgrade auf Debian 9 (buster) --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 21:17, 20. Jun. 2020 (CEST)
125 * PHP-FPM <tt>max_execution_time</tt> und nginx <tt>fastcgi_read_timeout</tt> auf 180 Sekunden, sowie MediaWiki <tt>$wgMaxShellFileSize</tt> auf 500 MiB hochgesetzt, um PDF-Preview (u.a. für [[:Datei:2020-02-03 Freistellungsbescheid.pdf]]) zu fixen --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 00:13, 12. Mär. 2020 (CET)
126 * PrivateBin auf 1.3.3 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 12:46, 16. Feb. 2020 (CET)
127 * PrivateBin auf 1.3.2 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 18:12, 11. Jan. 2020 (CET)
128 * PrivateBin auf 1.3.0 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 14:46, 14. Jul. 2019 (CEST)
129 * MediaWiki kann jetzt Yanone Kaffeesatz ZeroHack rendern (e.g. [[:Datei:Wurstworkshop_Label_Zitrone_r3v3.svg]]) --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 20:27, 30. Jun. 2019 (CEST)
130 * MediaWiki: PDF-Thumbnail-Issues durch richtige Benutzung von [https://www.mediawiki.org/wiki/Manual:$wgMaxShellMemory $wgMaxShellMemory] und [https://www.mediawiki.org/wiki/Manual:RefreshImageMetadata.php refreshImageMetadata.php] gefixt --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 20:27, 30. Jun. 2019 (CEST)
131 * MediaWiki: Update auf 1.31.2 LTS --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 20:27, 30. Jun. 2019 (CEST)
132 * PrivateBin auf 1.2.1 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 22:12, 20. Jun. 2019 (CEST)
133 * PrivateBin auf 1.1.1 aktualisiert --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 20:11, 14. Dez. 2017 (CET)
134 * nginx-Konfigurationen auf eigene Subdomains aufgetrennt, ist nun übersichtlicher. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 00:52, 28. Aug. 2017 (CEST)
135 * Neu: http://dudle.stratum0.org --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 00:52, 28. Aug. 2017 (CEST)
136 * Debian jessie → stretch Upgrade. Highlights: PHP 7.0, MySQL → MariaDB, nginx 1.10.3, systemd 232, OpenSSH 7.4p1, Python 3.5. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:20, 27. Aug. 2017 (CEST)
137 * ZeroBin durch den aktiven Fork [https://privatebin.info/ PrivateBin] ersetzt. Bestehende Bins sollten weiterhin funktionieren. --[[Benutzer:Drc|drc]] ([[Benutzer Diskussion:Drc|Diskussion]]) 14:02, 26. Aug. 2017 (CEST)
138 * MediaWiki: Patch SyntaxHighlight_GeSHi extension [https://github.com/wikimedia/mediawiki-extensions-SyntaxHighlight_GeSHi/commit/2d5a60a89fb3995b73e17df5901d6f023e41df3d], see [https://phabricator.wikimedia.org/T158689 T158689] --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 23:17, 30. Apr. 2017 (CEST)
139 * Neues favicon.ico von blinry --[[Benutzer:Valodim|Valodim]] ([[Benutzer Diskussion:Valodim|Diskussion]]) 07:17, 27. Mär. 2017 (CEST)
140 * Update MediaWiki 1.28.0 --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 00:34, 30. Nov. 2016 (CET)
141 ** <tt>StratumFixes</tt> und <tt>UploadWizard</tt>-config wieder in LocalSettings.php integriert
142 ** i18n durch Systemnachrichten im MediaWiki-Namensraum abgebildet statt durch i18n/&lt;lang>.json.
143 *** Dabei [[MediaWiki:Mwe-upwiz-license-pd-old]] (und [[MediaWiki:Mwe-upwiz-license-pd-old/en]]) als "generelle Public Domain"-Kategorie zweckentfremdet
144 ** ⇒ Weniger Plugin-Infrastruktur für i18n nötig.
145 * ZeroBin in <tt>/srv/www/zerobin.git</tt>, dessen Daten liegen in <tt>/srv/www/zerobin-data</tt>. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 02:54, 3. Apr. 2016 (CEST)
146 * Upgrade auf Debian 8.3 --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:18, 25. Jan. 2016 (CET)
147 * [[Vorträge/Vorbei|Vortrags-Aufzeichnungen]] von meinem Server nach <tt>/srv/www/webroot/recordings/</tt> verschoben --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:39, 18. Dez. 2015 (CET)
148 * Patch mediawiki-1.25.4 [https://www.mediawiki.org/wiki/Release_notes/1.25#MediaWiki_1.25.4][https://lists.wikimedia.org/pipermail/mediawiki-l/2015-December/045123.html] --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:23, 18. Dez. 2015 (CET)
149 * Captchas für angemeldete Benutzer mit bestätigter Mailadresse abgeschaltet --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 18:52, 9. Dez. 2015 (CET)
150 * Patch mediawiki-1.25.3 [https://www.mediawiki.org/wiki/Release_notes/1.25#MediaWiki_1.25.3][https://lists.wikimedia.org/pipermail/mediawiki-l/2015-October/044854.html], failing hunks in <tt>vendor/autoload.php.rej</tt> und <tt>vendor/composer/autoload_real.php.rej</tt> ignoriert, die einen Klassennamen mit einer UUID durch eine andere UUID austauschen wollten ([https://lists.wikimedia.org/pipermail/mediawiki-l/2015-October/044867.html siehe mediawiki-l]). Bisher läufts. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:20, 21. Okt. 2015 (CEST)
151 ** hab zur Sicherheit die entsprechenden Dateien aus dem Release-Tarball von 1.25.3 genommen. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 22:20, 21. Okt. 2015 (CEST)
152 * Patch mediawiki-1.25.2 [https://www.mediawiki.org/wiki/Release_notes/1.25#MediaWiki_1.25.2], additional patches:
153 ** [https://gerrit.wikimedia.org/r/#/c/224826/ Change-Id: Id6e60d42]: XSS in <tt>extensions/SyntaxHighlight_GeSHi/geshi/contrib/cssgen.php</tt>
154
155 * <tt>/srv</tt> auf 128 GB aufgebohrt, um da auch mal größere Sachen hinlegen zu können. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 04:28, 1. Aug. 2015 (CEST)
156 * unattended-upgrades eingerichtet, erstmal nur aus debian-security. siehe <tt>/etc/apt/apt.conf.d/02.periodic</tt> und <tt>/etc/cron.daily/apt</tt> für Doku --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 01:28, 23. Mai 2015 (CEST)
157 * Initial setup. -- shoragan, rohieb, 20. Mai 2015 (CEST)
158
159 [[Kategorie:Virtuelle Maschine]]
160 [[Kategorie:Infrastruktur]]
This page took 0.054246 seconds and 5 git commands to generate.