Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige ÜberarbeitungNächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
infrastruktur:container:md [01.08.2021 13:42] – angelegt Malte | infrastruktur:container:md [15.10.2022 16:40] – Lukas Ruge | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== md (Hedgedoc) ====== | ====== md (Hedgedoc) ====== | ||
- | |Verantwortung | + | |Verantwortung |
- | |Container | + | |Container |
- | |W. Ports | + | |W. Ports |
- | |OS | + | |OS |
|Server | |Server | ||
- | |Zustand | + | |Zustand |
- | {{tag> | + | {{tag> |
+ | |||
+ | Dies ist die technische Doku zu unserem Container md. [[hackspace: | ||
+ | |||
+ | In diesem Container läuft Hedgedoc unter https:// | ||
+ | |||
+ | Langfristig soll hiermit das veraltete CodiMD unter https:// | ||
===== Services ===== | ===== Services ===== | ||
^ Serviceübersicht^Version^ | ^ Serviceübersicht^Version^ | ||
- | |Node| ? | | + | |nodejs| 16.9.1-deb-1nodesource1 |
- | |Postgres| ? | | + | |postgresql| 13+226.pgdg100+1 |
- | |Hedgedoc| | + | |Hedgedoc| |
+ | ===== Updates ===== | ||
+ | |||
+ | Da die gesamte Konfiguration über den systemd-Service erfolgt (siehe unten) kann für ein Update einfach ''/ | ||
+ | |||
+ | <code sh> | ||
+ | mv / | ||
+ | wget https:// | ||
+ | tar xvf hedgedoc-1.9.0.tar.gz | ||
+ | mv hedgedoc /opt/ | ||
+ | chown -R hedgedoc: | ||
+ | cd / | ||
+ | ./bin/setup | ||
+ | </ | ||
===== Installation und Konfiguration ===== | ===== Installation und Konfiguration ===== | ||
- | TODO | + | ==== Dependencies ==== |
+ | |||
+ | === Node.js === | ||
+ | |||
+ | Manuelle Installation über [[https:// | ||
+ | |||
+ | <code sh> | ||
+ | curl -fsSL https:// | ||
+ | apt-get install -y nodejs | ||
+ | </ | ||
+ | |||
+ | === PostgreSQL === | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code sh> | ||
+ | # Create the file repository configuration: | ||
+ | echo "deb http:// | ||
+ | |||
+ | # Import the repository signing key: | ||
+ | wget --quiet -O - https:// | ||
+ | |||
+ | # Update the package lists: | ||
+ | apt-get update | ||
+ | |||
+ | # Install the latest version of PostgreSQL. | ||
+ | apt-get -y install postgresql | ||
+ | </ | ||
+ | |||
+ | In der Datei | ||
+ | |||
+ | <code sh> | ||
+ | vim / | ||
+ | </ | ||
+ | |||
+ | den Eintrag '' | ||
+ | |||
+ | <code sh> | ||
+ | systemctl restart postgresql | ||
+ | </ | ||
+ | |||
+ | Passwort vergeben: | ||
+ | |||
+ | < | ||
+ | su postgres | ||
+ | psql postgres | ||
+ | \password postgres | ||
+ | \q | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | Datenbank anlegen: | ||
+ | |||
+ | < | ||
+ | psql -U postgres | ||
+ | CREATE DATABASE hedgedoc; | ||
+ | \q | ||
+ | </ | ||
+ | |||
+ | === Yarn === | ||
+ | |||
+ | <code sh> | ||
+ | npm install --global yarn | ||
+ | apt install git | ||
+ | </ | ||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | User anlegen: | ||
+ | |||
+ | <code sh> | ||
+ | adduser hedgedoc | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code sh> | ||
+ | wget https:// | ||
+ | tar xvf hedgedoc-1.8.2.tar.gz | ||
+ | mv hedgedoc /opt/ | ||
+ | chown -R hedgedoc: | ||
+ | cd / | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | Service anlegen: | ||
+ | |||
+ | <code sh> | ||
+ | vim / | ||
+ | systemctl enable hedgedoc | ||
+ | systemctl start hedgedoc | ||
+ | </ | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | |||
+ | Alles wird über den Service in '' | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=HedgeDoc - The best platform to write and share markdown. | ||
+ | Documentation=https:// | ||
+ | After=postgresql.service | ||
+ | |||
+ | [Service] | ||
+ | Type=exec | ||
+ | Restart=always | ||
+ | RestartSec=2s | ||
+ | ExecStart=/ | ||
+ | User=hedgedoc | ||
+ | Group=hedgedoc | ||
+ | WorkingDirectory=/ | ||
+ | Environment=CMD_DOMAIN=md.chaotikum.org | ||
+ | Environment=CMD_PROTOCOL_USESSL=true | ||
+ | Environment=CMD_HSTS_ENABLE=true | ||
+ | Environment=CMD_DB_URL=postgres:// | ||
+ | Environment=CMD_LINKIFY_HEADER_STYLE=gfm | ||
+ | Environment=CMD_SESSION_SECRET=PASSWORD_CHANGE_ME | ||
+ | Environment=CMD_HOST=:: | ||
+ | Environment=CMD_PORT=8080 | ||
+ | Environment=CMD_URL_ADDPORT=443 | ||
+ | Environment=CMD_ALLOW_FREEURL=true | ||
+ | Environment=CMD_ALLOW_ANONYMOUS=true | ||
+ | Environment=CMD_ALLOW_ANONYMOUS_EDITS=true | ||
+ | Environment=CMD_ALLOW_ANONYMOUS_VIEWS=true | ||
+ | Environment=CMD_DEFAULT_PERMISSION=freely | ||
+ | Environment=CMD_EMAIL=false | ||
+ | Environment=CMD_ALLOW_EMAIL_REGISTER=false | ||
+ | Environment=CMD_LDAP_URL=ldaps:// | ||
+ | Environment=CMD_LDAP_BINDDN=uid=codi, | ||
+ | Environment=CMD_LDAP_BINDCREDENTIALS=PASSWORD_CHANGE_ME | ||
+ | Environment=CMD_LDAP_SEARCHBASE=dc=chaotikum, | ||
+ | Environment=CMD_LDAP_SEARCHFILTER=(& | ||
+ | Environment=CMD_LDAP_USERNAMEFIELD=displayName | ||
+ | Environment=CMD_LDAP_USERIDFIELD=uid | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | * Das Datenbankpassword muss das Passwort sein, dass man für den Postgres-User `postgres` in Postgres gesetzt hat. Der Linux-User `postgres` hat kein Password und darf auch keins bekommen! | ||
+ | * Das Session-Secret ist einfach irgendwas. Zum Beispiel vier UUIDs in Kleinbuchstaben ohne Bindestriche hintereinander. Wenn sich das ändert, müssen sich alle User neu anmelden. Das ist nicht schlimm. | ||
+ | * Die LDAP-Credentials sind das Passwort des Users `codi` in unserem LDAP. Der heißt aus historischen Gründen noch so und wird auch mindestens so lange weiter so heißen, wie das alte CodiMD noch existiert. | ||
===== Wartung ===== | ===== Wartung ===== | ||
+ | In das Textfeld einfach das Datum der Wartung eintragen, am besten in der Form yyyy-mm-dd. | ||
+ | |||
+ | {{NEWPAGE> | ||
+ | }} | ||
+ | |||
{{topic>: | {{topic>: | ||
~~NOCACHE~~ | ~~NOCACHE~~ |