From aeb565e58f37cb2e9bc89342623308a93213127b Mon Sep 17 00:00:00 2001 From: Philipp Rothmann Date: Mon, 7 Mar 2022 10:11:25 +0100 Subject: [PATCH] renovate docs --- docs/apps/authentik.md | 6 +- docs/apps/bigbluebutton.md | 38 +++++++ docs/apps/email.md | 22 ++++ docs/apps/foodsoft.md | 32 ++++++ docs/apps/mobilizon.md | 10 ++ docs/apps/onlyoffice.md | 21 ++++ docs/apps/wekan.md | 15 ++- .../architecture/architecture-presentation.md | 45 ++++++++ docs/architecture/single-sign-on/oidc.svg | 1 + .../single-sign-on/single-sign-on.md | 3 + docs/architecture/single-sign-on/sso.drawio | 104 ++++++++++++++++++ docs/architecture/system-view.png | Bin 0 -> 64767 bytes docs/faq.md | 53 ++++++++- docs/installation.md | 13 +-- 14 files changed, 342 insertions(+), 21 deletions(-) create mode 100644 docs/apps/bigbluebutton.md create mode 100644 docs/apps/email.md create mode 100644 docs/apps/foodsoft.md create mode 100644 docs/apps/mobilizon.md create mode 100644 docs/architecture/architecture-presentation.md create mode 100644 docs/architecture/single-sign-on/oidc.svg create mode 100644 docs/architecture/single-sign-on/single-sign-on.md create mode 100644 docs/architecture/single-sign-on/sso.drawio create mode 100644 docs/architecture/system-view.png diff --git a/docs/apps/authentik.md b/docs/apps/authentik.md index 88d5ae8..27e0365 100644 --- a/docs/apps/authentik.md +++ b/docs/apps/authentik.md @@ -4,9 +4,9 @@ Alle Apps die per SSO angebunden werden sollen, müssen später in der Administrationsoberfläche konfiguriert werden. ``` -abra app new --domain example.com --server servername --app-name servername_authentik --secrets authentik -abra app config servername_authentik # only if custom config needed -abra app deploy servername_authentik +abra app new authentik +abra app config app_name +abra app deploy app_name ``` TODO: SECRETS diff --git a/docs/apps/bigbluebutton.md b/docs/apps/bigbluebutton.md new file mode 100644 index 0000000..f227f7a --- /dev/null +++ b/docs/apps/bigbluebutton.md @@ -0,0 +1,38 @@ +bbb +=== + +# Big Blue Button + +https://github.com/bigbluebutton/docker/ + + + +### Telefoneinwahl + +Account mit Rufnummer bei https://app.sipgate.com +`./conf/dialplan_public` +`./conf/sip_profiles` +im .env noch: `SIP_IP_ALLOWLIST`, `WELCOME_FOOTER` + +### Networking + +talk.local-it.org + + + +https://docs.bigbluebutton.org/admin/configure-firewall.html + +### docker setup + +https://github.com/bigbluebutton/docker +https://docs.bigbluebutton.org/admin/configure-firewall.html + + +--- +changing smth: +``` +vim .env +./scripts/generate-compose +docker-compose up -d + +``` \ No newline at end of file diff --git a/docs/apps/email.md b/docs/apps/email.md new file mode 100644 index 0000000..2da0c7d --- /dev/null +++ b/docs/apps/email.md @@ -0,0 +1,22 @@ +# EMail + +* DebianTemplate duplizieren +* HA einrichten + +https://github.com/mailcow/mailcow-dockerized + +[DNS](https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/) +[installation](https://mailcow.github.io/mailcow-dockerized-docs/i_u_m_install/) + +[backup](https://mailcow.github.io/mailcow-dockerized-docs/third_party-borgmatic/) + + +ssh://u263336@u263336.your-storagebox.de:23/home/mailcow + + +## ToDo + +* PTR einträge (windcloud fragen) + wo dns hosten? + +* bei problemen ipv6 deaktivieren \ No newline at end of file diff --git a/docs/apps/foodsoft.md b/docs/apps/foodsoft.md new file mode 100644 index 0000000..579b9d1 --- /dev/null +++ b/docs/apps/foodsoft.md @@ -0,0 +1,32 @@ +# Foodsoft + + + + +### Migration + +1. Neue instanz aufsetzen +2. Backup aus alter instanz erstellen + + +``` +docker exec foodcoops_mariadb_1 bash -c "mysqldump -ufoodsoft -p${DB_PASSWORD} foodsoft_demo" > 2022-02-27.sql +``` + +3. Backup einspielen + +``` +➜ docker cp 2022-01-04.sql wandelgut-foodsoft_db.1.b1nspplwa49o55pwj5ddcnn0r:/tmp/ +➜ docker exec -it wandelgut-foodsoft_db.1.b1nspplwa49o55pwj5ddcnn0r bash +root@dcdca844b2f1:/# cd /tmp/ + + mysql -p$(cat /run/secrets/db_root_password) + +MariaDB [(none)]> create database tantewandel; + +root@dcdca844b2f1:/tmp# mysql -p$(cat /run/secrets/db_root_password) tantewandel < 2022-01-04.sql +root@dcdca844b2f1:/tmp# exit +➜ docker exec -it wandelgut-foodsoft_app.1.zvlhnq4vvmlf4iuck7ymz96xu bash +nobody@22e376ecea83:/usr/src/app$ SECRET_KEY_BASE=$(cat /run/secrets/secret_key_base) bundle exec rake db:migrate +``` + diff --git a/docs/apps/mobilizon.md b/docs/apps/mobilizon.md new file mode 100644 index 0000000..0a708b3 --- /dev/null +++ b/docs/apps/mobilizon.md @@ -0,0 +1,10 @@ +# Mobilizon + +Ziel: Lübecks veranstaltungen auf einer freien Plattform + +These: Bürgis wollen eine andere Plattform als fb für Veranstaltungen +Experiment: + +https://mobilizon.org/de/ +https://docs.joinmobilizon.org/administration/install/docker/ +https://framagit.org/framasoft/joinmobilizon/docker/-/blob/master/docker-compose.yml diff --git a/docs/apps/onlyoffice.md b/docs/apps/onlyoffice.md index a3dc8c3..799bcc7 100644 --- a/docs/apps/onlyoffice.md +++ b/docs/apps/onlyoffice.md @@ -15,3 +15,24 @@ abra app deploy servername_onlyoffice #### Nextcloud Konfiguration anpassen: https://office.example.com JWT_SECRET + + +##### enable forcepush + + +https://api.onlyoffice.com/editors/save#forcesave + +im onlyoffice container / volume hinzufügen: + +/etc/onlyoffice/documentserver/local.json +{ +"services": { + "CoAuthoring": { + "autoAssembly": { + "enable": true, + "interval": "5m" + } + + +in Nextcloud +-> Admin -> Onlyoffice -> Editor-Einstellungen -> force save \ No newline at end of file diff --git a/docs/apps/wekan.md b/docs/apps/wekan.md index 17eba29..562ad3a 100644 --- a/docs/apps/wekan.md +++ b/docs/apps/wekan.md @@ -3,18 +3,17 @@ [Wekan](https://github.com/wekan/wekan/wiki) ist ein Kanban Board. +``` +abra app new wekan +abra app secret generate -A app_name +abra config app_name +abra deploy app_name +``` + im authentik: openid-provider anlegen app anlegen -!!! note "Auf lit.cloud Infrastruktur" - `git clone https://git.local-it.org/LIT/wekan ~/.abra/apps/wekan` - -``` -abra app new --domain example.com --server servername --app-name servername_wekan wekan -abra config servername_wekan # OAUTH2_SECRET anpassen -abra deploy servername_wekan -``` Login Button umbenennen: User -> Administration -> Layout -> Benutzerdefinierter Text der OIDC-Schaltfläche diff --git a/docs/architecture/architecture-presentation.md b/docs/architecture/architecture-presentation.md new file mode 100644 index 0000000..cf42610 --- /dev/null +++ b/docs/architecture/architecture-presentation.md @@ -0,0 +1,45 @@ +## Architekturkriterien + +* Modularität +* Einfache, Paketbasierte Installation +* Überprüfbarkeit (Monitoring, Tests) +* Security und Datensicherheit +* Datenschutz (Logging, DSGVO) +* Federation und Verknüpfung mit anderen Diensten +* Freie Software + +## Anforderungen an Apps + +* Cloud-native + * Container + * Konfiguration per Umgebungsvariable + * Health- / Monitoring-Endpoint +* Single-Sign-On +* API-Zugriff +* Aktive Entwicklung (mind. security updates) +* FOSS (Free and Open Source) Lizenz + + +## System Überblick + +![](system-view.png) + +## Design Decisions + +### Containerisierung +Docker:whale: + +### Single-Sign-On +Openid Connect (oAuth2) + +### Automatisierung +Abra (coop-cloud) + +### Monitoring +WiP (Grafana, Prometheus, CAdvisor) + +### Backup +Backupbot (automated volume backup with Restic) + +### Reverse Proxy +traefik \ No newline at end of file diff --git a/docs/architecture/single-sign-on/oidc.svg b/docs/architecture/single-sign-on/oidc.svg new file mode 100644 index 0000000..496f13f --- /dev/null +++ b/docs/architecture/single-sign-on/oidc.svg @@ -0,0 +1 @@ +
Request Access
Request Access
Ressource Owner
(User)
Resso...
Client
Client
OIDC Provider
Ressource Server
OIDC Provider...
Redirect
Redirect
User Authentication
User Authentication
Redirect with Access Token
Redirect with Access Token
Exchange User Information with Access Token
Exchange User Information with Access Token
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/architecture/single-sign-on/single-sign-on.md b/docs/architecture/single-sign-on/single-sign-on.md new file mode 100644 index 0000000..9c4446e --- /dev/null +++ b/docs/architecture/single-sign-on/single-sign-on.md @@ -0,0 +1,3 @@ +# Single-Sign-On + +[Wip](https://pad.local-it.org/sgHdC9ejQ8OQSpg_NM9lUQ?both#) \ No newline at end of file diff --git a/docs/architecture/single-sign-on/sso.drawio b/docs/architecture/single-sign-on/sso.drawio new file mode 100644 index 0000000..bea1414 --- /dev/null +++ b/docs/architecture/single-sign-on/sso.drawio @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/architecture/system-view.png b/docs/architecture/system-view.png new file mode 100644 index 0000000000000000000000000000000000000000..e19a621875041dc49cb39e4483324f7d764a9f90 GIT binary patch literal 64767 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