27 views
Infrastruktur =============== ## TODOs - [x] Eine TODO Liste erstellen - [x] Nextcloud ans SSO - [x] Backups für die Docker container $\to$ siehe [unten](#Verschlüsseltes-Borg-Backup-in-Backnang) - [x] Configs, docker-compose Dateien etc. in ein Git Repo packen (Git haben wir jetzt ja :D) - [x] [Matrix-Server](./cttue-matrix-server) - [x] Doku für Konfiguration der Services etc. (https://cttue.de/doku.php?id=knowledgebase:start) - [x] Änderungen beim nächsten Meeting ansprechen (https://pad.cttue.de/cttue-infrastruktur-changes) - [ ] Matrix: TURN(S)-Server - [ ] Monitoring für Services - [ ] SearX Instanz (alternativ auch yacy) - [x] Calendar mit ical ## Ideas (Bitte in TODOs moven wenn man vor hat, einen dieser Punkte umzusetzen c: Ansonsten sind Sachen "in der Schwebe") - [ ] Kanban board, z.B. WeKan - [ ] HedgeDoc Bot (HedgeBot) für autom Erstellung von Protokollen/Sperren dieser nach den Treffen - [ ] SSO für Emails (?) - bzw. allgemein Webmail (z.B. Roundcube)? - [ ] Mails einbinden in Nextcloud (Für einfachere Zuweisung über Nutzergruppen/Geteilte Postfächer) - [ ] Matrix Bridge um Announcements in Signal Gruppe zu schicken - [ ] Tool bzw. Framework zur Planung von Events (á la TDF) - [ ] Patch fürs CCC Engelsystem, um Registrierung mit E-Mail optional zu machen (nur user + pass) ## Server beim CCC Freiburg ### Allgemeines - Zugang - Ausschließlich per ssh/publickey - Wer auf dem Server was machen will kann Marco den Public Key schicken (bitte mit einer kleinen Erklärung, was man so vor hat) - Konfiguration der Services - Siehe Git Repo: https://git.cttue.de/codingmarco/cttue-infrastruktur - Firewall: UFW - Eigentlich wollte ich mit nftables modern sein, aber das beißt sich ziemlich mit Docker und auf komische workarounds hatte ich keine Lust - Wenn jemand iptables von Hand konfigurieren möchte, gerne melden... - Reverse Proxy - ~~Wird automatisch durch [nginx-proxy](https://hub.docker.com/r/jwilder/nginx-proxy) konfiguriert~~ - ~~SSL-Zertifikate werdan automatisch durch [nginxproxy/acme-companion](https://hub.docker.com/r/nginxproxy/acme-companion) erstellt und erneuert~~ - ~~Damit ein Webservice ein SSL-Zertifikate bekommt und der Reverse Proxy eingerichtet wird, müssen die Environment-Variablen `VIRTUAL_HOST`, `VIRTUAL_PORT` und `LETSENCRYPT_HOST` gesetzt werden (siehe pad container). Außerdem muss der Container im externen `cttue_web_services` Netzwerk sein.~~ - Wird automatisch durch traefik (von ansible) konfiguriert, dazu müssen in dem docker-compose file die jeweiligen traefik labels und der container dem traefik netzwerk hinzugefügt werden, e.g.: ``` labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.http.routers.<NAME>.entrypoints=web-secure - traefik.http.routers.<NAME>.service=<NAME> - traefik.http.routers.<NAME>.rule=Host(`<SUBDOMAIN>.cttue.de`) - traefik.http.routers.<NAME>.tls=true - traefik.http.routers.<NAME>.tls.certResolver=default - traefik.http.routers.<NAME>.tls.domains[0]=cttue.de - traefik.http.routers.<NAME>.tls.domains[0].sans=<SUBDOMAIN>.cttue.de - traefik.http.services.<NAME>.loadbalancer.server.port=<PORT> networks: - traefik ``` <NAME> = Frei wählbar, muss nur in dem file gleichbleiben (e.g. pad, cloud) <SUBDOMAIN> = Die weilige subdomain unter der der Service erreichbar sein soll (e.g. cloud für cloud.cttue.de) <PORT> = Port den der service innerhalb des containers verwendet Und am ende des files in der Netzwerkconfig: ``` networks: traefik: external: true ``` - Docker container - Ordner mit docker-compose.yml Dateien drin liegen in `/var/docker-containers` - Container bitte mit docker-compose aufsetzen ### Services - Pad - Service: HedgeDoc - URL: https://pad.cttue.de/, Metapad: https://pad.cttue.de/cttue-meta - Docker image: `quay.io/hedgedoc/hedgedoc:1.9.4` - Cloud - Service: Nextcloud - URL: https://cloud.cttue.de/ - Docker image: `nextcloud` - Benutzer nur für die Nextcloud (ohne SSO) werden auf Request (an Marco) angelegt - Upload Size Limit ist momentan per Reverse Proxy auf 50 MB eingestellt, da wir nicht viel Speicherplatz haben. - Der Server ist momentan ausschließlich zum Austausch kleiner Dateien gedacht. - Git - Service: Gitea - URL: https://git.cttue.de/ - Docker image: `gitea/gitea:1.17.3` - User selbst-registrierung ist aktiviert, kann aber auch deaktiviert werden - Single Sign-On - Service: Keycloak - URL: https://auth.cttue.de/ - Die eigenen Benutzerdaten können hier geändert werden: https://auth.cttue.de/realms/cttue/account/ - Impersonation ist vom Build-Prozess her deaktiviert - Matrix - Gemanaged durch [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) - Config liegt hier: `/srv/matrix-docker-ansible` - [Upgrade Docs auf GitHub](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/maintenance-upgrading-services.md) - Einzige zwei relevante Dateien (darin ist alles konfiguriert), die Symlinks auf die Dateien in `/srv/cttue-infra-git/matrix-docker-ansible` sind: - `inventory/hosts` - `inventory/host_vars/matrix.cttue.de/vars.yml` #### Nextcloud + Keycloak - Mögliche Plugins: - https://github.com/pulsejet/nextcloud-oidc-login (Fork von nextcloud-social-login) - [Blog / Tutorial](https://www.schiessle.org/articles/2020/07/26/nextcloud-and-openid-connect/) - https://github.com/zorn-v/nextcloud-social-login - https://github.com/nextcloud/user_saml - [Blog / Tutorial](https://janikvonrotz.ch/2020/04/21/configure-saml-authentication-for-nextcloud-with-keycloack/) ### Netcup Mail - Server: `mxe854.netcup.net` - Secure SMTP Port: 465 ### Verschlüsseltes Borg Backup in Backnang - SSH Config: ``` Host cttuebak HostName cloud.hacknang.de Port 2676 User root IdentityFile ~/.ssh/id_rsa_cttue_backup ``` - Repo: `ssh://cttuebak/media/borg/cttue/{pad,cloud,gitea,keycloak,matrix}` - ### Domains | Name | Anbieter | | --- | --- | | cttue.de | Netcup | | chaostreff-tübingen.de | Netcup | | tuebingen.network | INWX | ### Key Holders Names denote access + maintainer (Names in brackets) denote access but limited to no maintenance | Service | Keyholder(s) | | --- | --- | |Netcup | Marco, Pascal | |vServer Freiburg | Marco (Pascal) | |Mail Server | Pascal (Marco) | |cttue.de Website | Pascal (Marco) | |TDF Website (tdf.cttue.de ) | Marco, Pascal | | INWX | Pascal | | Mastodon Instance | Pascal | | Matrix, Element Web | Marco | | Gitea Server | Marco (Pascal) | | Gitea CTT Organisation | Marco, Manu, Pascal | | Backups | Marco |