diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..e109abee --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,8 @@ +# This configures commits to ignore when running blame. +# +# Configure this locally with +# git config blame.ignoreRevsFile .git-blame-ignore-revs + + +# remove version from docker-compose, fix whitespaces +3dcc6a9383cd155de6b0de7aefcf31cbdbcd68fb diff --git a/docs/22_internal_networks.md b/docs/22_internal_networks.md index 0f548878..9a6b9ad3 100644 --- a/docs/22_internal_networks.md +++ b/docs/22_internal_networks.md @@ -16,21 +16,19 @@ sudo docker network create --subnet 172.20.255.0/24 database ## Beispielkonfiguration In diesem Beispiel wird eine zentrale MariaDB Datenbank verwendet. -Die beiden Diensten (Nextcloud, HedgeDoc) nutzen ein docker-internes -Netzwerk zur Kommunikation mit der Datenbank. +Die beiden Dienste (Nextcloud, HedgeDoc) nutzen ein docker-internes +Netzwerk zur Kommunikation mit der Datenbank. ### MariaDB ```yaml # /home/admin/mariadb/docker-compose.yml -version: '3.9' - services: mariadb: - image: mariadb + image: mariadb restart: always env_file: .mariadb.env volumes: - - "/srv/mariadb:/var/lib/mysql" + - "/srv/mariadb:/var/lib/mysql" networks: - "database" @@ -42,8 +40,6 @@ networks: ### HedgeDoc ```yaml # /home/admin/hedgedoc/docker-compose.yml -version: '3.9' - services: hedgedoc: image: quay.io/hedgedoc/hedgedoc @@ -62,7 +58,7 @@ networks: ``` ### Nextcloud -Im Falle von Nextcloud wird der `nextcloud` Container neben dem +Im Falle von Nextcloud wird der `nextcloud` Container neben dem `database` Netzwerk auch noch in das `default` Netzwerk aufgenommen. Dieses Netzwerk ermöglicht die Kommunikation mit der in der gleichen Containerdefinition existierenden Redis Instanz. Wird in einem Service @@ -71,12 +67,10 @@ wird dieser in das `default` Netzwerk aufgenommen. ```yaml # /home/admin/nextcloud/docker-compose.yml -version: '3.9' - services: redis: image: redis - restart: always + restart: always nextcloud: image: nextcloud diff --git a/docs/30_backup.md b/docs/30_backup.md index 9f8d2bac..c861056d 100644 --- a/docs/30_backup.md +++ b/docs/30_backup.md @@ -6,7 +6,7 @@ Während meiner Zeit als Administrator für Linux Systeme habe ich einige Skript [DBM](https://github.com/felbinger/dbm)). Mittlerweile verwende ich für dateibasierte Sicherungen hauptsächlich [borg backup](https://borgbackup.readthedocs.io/en/stable/). -Im Backup des Servers sollten zumindest die Containerdefinitionen `/home/admin` +Im Backup des Servers sollten zumindest die Containerdefinitionen `/home/admin` sowie Daten der Container (`/srv`) enthalten sein. Sofern nginx als Reverse Proxy genutzt wird, ist auch eine Sicherung von `/etc/nginx/sites-availabe/` sinnvoll. diff --git a/docs/31_monitoring.md b/docs/31_monitoring.md index 78d30135..ab6ee874 100644 --- a/docs/31_monitoring.md +++ b/docs/31_monitoring.md @@ -5,23 +5,21 @@ Als Monitoring verwenden wir den Prometheus Stack ( [Prometheus](https://github.com/prometheus/prometheus) - + [Alertmanager](https://github.com/prometheus/alertmanager) - + [Pushgateway](https://github.com/prometheus/pushgateway)) mit + + [Alertmanager](https://github.com/prometheus/alertmanager) + + [Pushgateway](https://github.com/prometheus/pushgateway)) mit [Grafana](https://grafana.com/) zur Visualisierung. -Zum Erfassen der Sensordaten verwenden wir neben -[node_exporter](https://github.com/prometheus/node_exporter) (generelle Hoststatistiken), +Zum Erfassen der Sensordaten verwenden wir neben +[node_exporter](https://github.com/prometheus/node_exporter) (generelle Hoststatistiken), [blackbox_exporter](https://github.com/prometheus/blackbox_exporter) (ICMP & HTTP Tests) und -[cAdvisor](https://github.com/google/cadvisor) (für Docker) auch Anwendungsspezifische Prometheus -Exporter (nginx, mysql, postgresql, ssh, gitlab, grafana, ...). Viele von diesen sind in +[cAdvisor](https://github.com/google/cadvisor) (für Docker) auch Anwendungsspezifische Prometheus +Exporter (nginx, mysql, postgresql, ssh, gitlab, grafana, ...). Viele von diesen sind in [dieser Liste](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters) zu finden. Möchte man bereitgestellte Sensordaten einer Anwendung (die sich nicht im Prometheus-Format befinden) verarbeiten, so kann man auch einen [eigenen Exporter schreiben](https://prometheus.io/docs/instrumenting/writing_exporters/). ```yaml -version: '3.9' - services: grafana: image: grafana/grafana @@ -98,7 +96,7 @@ alerting: alertmanagers: - scheme: http static_configs: - - targets: + - targets: - 'alertmanager:9093' scrape_configs: @@ -108,7 +106,7 @@ scrape_configs: - job_name: 'blackbox_exporter_http' metrics_path: '/probe' - params: + params: module: [http_2xx] static_configs: - targets: @@ -123,7 +121,7 @@ scrape_configs: - job_name: 'blackbox_exporter_icmp' metrics_path: '/probe' - params: + params: module: [icmp] static_configs: - targets: diff --git a/docs/index.md b/docs/index.md index d7f283aa..2792b3b6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,28 +1,28 @@ # Startseite -Diese Informationssammlung beschreibt das von mir eingesetzten Verfahren zum -Aufsetzen eines Linux Servers mit Anwendungen in Docker Containern. Hauptsächlich -handelt es sich in meinem Fall um webbasierte Anwendungen. Diese werden mit einem -Reverse Proxy ([Traefik](https://traefik.io/) als Docker Container, oder +Diese Informationssammlung beschreibt das von mir eingesetzten Verfahren zum +Aufsetzen eines Linux Servers mit Anwendungen in Docker Containern. Hauptsächlich +handelt es sich in meinem Fall um webbasierte Anwendungen. Diese werden mit einem +Reverse Proxy ([Traefik](https://traefik.io/) als Docker Container, oder [nginx](https://www.nginx.com/) auf dem Host) erreichbar gemacht. ## Lokales HTTP Routing -Nachdem die Anfragen den Reverse Proxy auf unserem eigenen Host erreicht haben, werden +Nachdem die Anfragen den Reverse Proxy auf unserem eigenen Host erreicht haben, werden diese je nach verwendetem Reverse Proxy über lokal gebundene Ports oder Docker Labels an den Container weitergeleitet, der den Dienst bereitstellt. ## Verzeichnisstruktur -Jeder bereitgestellte Dienst erhält zwei Verzeichnisse: -1. Im Verzeichnis `/home/admin/` liegt die Containerdefinition (`docker-compose.yml`), +Jeder bereitgestellte Dienst erhält zwei Verzeichnisse: +1. Im Verzeichnis `/home/admin/` liegt die Containerdefinition (`docker-compose.yml`), 2. die Daten des Dienstes werden im Verzeichnis `/srv/` gespeichert. ### Umgebungsvariablen -Schützenswerte Umgebungsvariablen (Passwörter, API Tokens, ...) werden nicht in der -Containerdefinition abgelegt, sondern in einer separaten `env`-Datei, um die Gefahr einer -Offenlegung dieser (z. B. beim Teilen des Bildschirms) zu reduzieren. Diese werden entsprechend +Schützenswerte Umgebungsvariablen (Passwörter, API Tokens, ...) werden nicht in der +Containerdefinition abgelegt, sondern in einer separaten `env`-Datei, um die Gefahr einer +Offenlegung dieser (z. B. beim Teilen des Bildschirms) zu reduzieren. Diese werden entsprechend des Container-Namen im docker-compose Kontext benannt. -Im folgenden Beispiel-Dienst (`service: example`, `service_name: example_srv`) würde die +Im folgenden Beispiel-Dienst (`service: example`, `service_name: example_srv`) würde die `env`-Datei unter dem Pfad `/home/admin/example/.example_srv.env` angelegt werden. ```yaml # /home/admin/example/docker-compose.yml diff --git a/docs/installation/20_traefik.md b/docs/installation/20_traefik.md index c68f9a1f..e2e15105 100644 --- a/docs/installation/20_traefik.md +++ b/docs/installation/20_traefik.md @@ -2,8 +2,6 @@ Zunächst wird die Containerdefinition im Verzeichnis `/home/admin/traefik/docker-compose.yml` angelegt: ```yaml -version: "3.9" - service: traefik: image: traefik:v2.9 @@ -94,5 +92,3 @@ networks: {% include-markdown "../../includes/installation/traefik/docker-network.md" %} {% include-markdown "../../includes/installation/traefik/new.md" %} - - diff --git a/docs/services/arma3.md b/docs/services/arma3.md index 75bcaa05..6574eedf 100644 --- a/docs/services/arma3.md +++ b/docs/services/arma3.md @@ -1,15 +1,13 @@ # Arma 3 Server -Ein Arma 3 Gameserver ermöglicht es Arma 3 Spielern eine -gemeinsame Mission zu spielen. Das hier beschriebene Vorgehen -erweitert die Grundfunktionalität von LGSM (Linux Game Server +Ein Arma 3 Gameserver ermöglicht es Arma 3 Spielern eine +gemeinsame Mission zu spielen. Das hier beschriebene Vorgehen +erweitert die Grundfunktionalität von LGSM (Linux Game Server Manager) um die benötigten Paketen für extdb3. In diesem Beispiel wird ein Arma 3 Exile Mod Server aufgesetzt: ```yaml -version: '3.9' - services: arma3: image: ghcr.io/felbinger/arma3server @@ -27,7 +25,7 @@ services: - '2306:2306/udp' # BattleEye volumes: - '/srv/arma3:/home/linuxgsm' - + mariadb: image: mariadb restart: always @@ -46,7 +44,7 @@ mkdir /srv/arma3 chown 1000:1000 /srv/arma3 ``` -Anschließend können die Container gestartet werden (`docker compose up -d arma3`), +Anschließend können die Container gestartet werden (`docker compose up -d arma3`), wodurch die Installation angestoßen wird. Für Exile müssen nun einige Mods im Verzeichnis `/srv/arma3/serverfiles/` hinzugefügt werden: @@ -56,8 +54,8 @@ cd /srv/arma3/serverfiles/ # download and extract mods wget http://bravofoxtrotcompany.com/exile/@Exile-1.0.4.zip wget http://exilemod.com/ExileServer-1.0.4a.zip -unzip @Exile-1.0.4.zip -unzip ExileServer-1.0.4a.zip +unzip @Exile-1.0.4.zip +unzip ExileServer-1.0.4a.zip rm *.zip # move the extracted files into the correct locations @@ -74,7 +72,7 @@ sed -i 's/^Password = /Password = S3cr3T/' /srv/arma3/serverfiles/@ExileServer/e # arma 3 server configs mv /srv/arma3/serverfiles/@ExileServer/basic.cfg /srv/arma3/serverfiles/cfg/arma3server.network.cfg -mv /srv/arma3/serverfiles/@ExileServer/config.cfg /srv/arma3/serverfiles/cfg/arma3server.server.cfg +mv /srv/arma3/serverfiles/@ExileServer/config.cfg /srv/arma3/serverfiles/cfg/arma3server.server.cfg # add mods to server startup configuration cat <<_EOF > /srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg @@ -87,7 +85,7 @@ rm -r /srv/arma3/serverfiles/Arma\ 3\ Server/ rm -r /srv/arma3/serverfiles/MySQL ``` -Nach einem Neustart der Container (`docker compose down && docker compose up -d`) +Nach einem Neustart der Container (`docker compose down && docker compose up -d`) sollten diese geladen werden, falls Probleme auftreten können diese dem Serverlog entnommen werden (`docker compose exec arma3 arma3server console`). diff --git a/docs/services/bookstack.md b/docs/services/bookstack.md index 6878e9f3..4ea7876f 100644 --- a/docs/services/bookstack.md +++ b/docs/services/bookstack.md @@ -3,8 +3,6 @@ Bookstack ist eine einfache Wiki- / KnowledgeBase Software. ```yaml -version: '3.9' - services: mariadb: image: mariadb diff --git a/docs/services/calibre.md b/docs/services/calibre.md index aa09581a..f0f6e871 100644 --- a/docs/services/calibre.md +++ b/docs/services/calibre.md @@ -3,8 +3,6 @@ Calibre ist ein Programm zur Verarbeitung, Konvertierung und Verwaltung von E-Books. ```yaml -version: '3.9' - services: calibre: image: linuxserver/calibre-web diff --git a/docs/services/docky-onion.md b/docs/services/docky-onion.md index 7df3424e..4a1f1ca9 100644 --- a/docs/services/docky-onion.md +++ b/docs/services/docky-onion.md @@ -2,12 +2,10 @@ Um einen [tor hidden services](https://2019.www.torproject.org/docs/onion-services) mit docker zu verwenden, kann man [docky-onion](https://github.com/use-to/docky-onion) verwenden, um jeden Dienst in [tor](https://www.torproject.org/) -erreichbar zu machen. Hier ein Beispiel: `docker-compose.yml` um [nginx](https://www.nginx.com/) +erreichbar zu machen. Hier ein Beispiel: `docker-compose.yml` um [nginx](https://www.nginx.com/) als hidden service auf port `80` und `8080` zur verfügung zustellen: ```yaml -version: "3.9" - services: docky-onion: image: useto/docky-onion diff --git a/docs/services/gitea.md b/docs/services/gitea.md index 0c5b63dd..50dd5ac4 100644 --- a/docs/services/gitea.md +++ b/docs/services/gitea.md @@ -1,14 +1,12 @@ # Gitea -Gitea ist eine webbasierte Git-Plattform, die es Benutzern ermöglicht, Code-Repositories zu hosten, zu verwalten und zu +Gitea ist eine webbasierte Git-Plattform, die es Benutzern ermöglicht, Code-Repositories zu hosten, zu verwalten und zu teilen. ```yaml -version: '3.9' - services: gitea: - image: gitea/gitea + image: gitea/gitea restart: always ports: - "[::1]:8000:3000" diff --git a/docs/services/gitlab.md b/docs/services/gitlab.md index d739fdc2..fad00f7e 100644 --- a/docs/services/gitlab.md +++ b/docs/services/gitlab.md @@ -4,8 +4,6 @@ GitLab ist eine Software für Code-Management und Versionierung. Außerdem biete Zusammenarbeit in Teams wie Issue-Tracking, CI/CD-Pipelines und Wikis. ```yaml -version: '3.9' - services: gitlab: image: 'gitlab/gitlab-ce' diff --git a/docs/services/grafana.md b/docs/services/grafana.md index 2b316e02..e71b0bf1 100644 --- a/docs/services/grafana.md +++ b/docs/services/grafana.md @@ -1,10 +1,8 @@ # Grafana -Grafana ist ein Dienst, welcher zur Datenvisualisierung und Überwachung verwendet wird. +Grafana ist ein Dienst, welcher zur Datenvisualisierung und Überwachung verwendet wird. ```yaml -version: '3.9' - services: grafana: image: grafana/grafana @@ -89,17 +87,17 @@ Entfernen Sie anschließend die Kommentarzeichen vor den Volumes in der Containe ``` -Anschließend können wir den Container starten und uns unter der +Anschließend können wir den Container starten und uns unter der angegebene Domain mit den Zugangsdaten `admin`:`admin` anmelden. -Die nächsten Schritte sind die Einrichtung von Data Sources (z. B. -[InfluxDB](https://adminguide.pages.dev/services/influxdb/), -[Prometheus](https://adminguide.pages.dev/services/prometheus/), -[Loki](https://grafana.com/oss/loki/)) und das Hinzufügen/Erstellen von +Die nächsten Schritte sind die Einrichtung von Data Sources (z. B. +[InfluxDB](https://adminguide.pages.dev/services/influxdb/), +[Prometheus](https://adminguide.pages.dev/services/prometheus/), +[Loki](https://grafana.com/oss/loki/)) und das Hinzufügen/Erstellen von Dashboards (z. B. [Node Exporter Full](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)) ([siehe: officially supported datasources](https://grafana.com/docs/grafana/latest/datasources/#supported-data-sources)). -Über die Umgebungsvariable `GF_INSTALL_PLUGINS` kann eine Liste von +Über die Umgebungsvariable `GF_INSTALL_PLUGINS` kann eine Liste von Plugins angegeben werden, welche für die Grafana Instanz aktiviert werden. ### LDAP Auth diff --git a/docs/services/guacamole.md b/docs/services/guacamole.md index fb002f86..f379f1ff 100644 --- a/docs/services/guacamole.md +++ b/docs/services/guacamole.md @@ -4,8 +4,6 @@ Guacamole ist ein Webanwendungsdienst, welcher es ermöglicht, über einen Webbr zuzugreifen, ohne dass spezielle Client-Software installiert werden muss. ```yaml -version: '3.9' - services: postgres: image: postgres diff --git a/docs/services/hedgedoc.md b/docs/services/hedgedoc.md index 8117e5be..46346f41 100644 --- a/docs/services/hedgedoc.md +++ b/docs/services/hedgedoc.md @@ -4,8 +4,6 @@ HedgeDoc ist eine Open-Source-Plattform für die kollaborative Bearbeitung von D Docs oder Microsoft Office Online. ```yaml -version: '3.9' - services: postgres: image: postgres diff --git a/docs/services/influxdb.md b/docs/services/influxdb.md index 05dec456..63fc2b8d 100644 --- a/docs/services/influxdb.md +++ b/docs/services/influxdb.md @@ -4,8 +4,6 @@ InfluxDB ist eine Open-Source-Zeitreihendatenbank, die speziell für die Speiche Zeitreihendaten optimiert ist. ```yaml -version: '3.9' - services: # shell: docker-compose exec influxdb influx -precision rfc3339 influxdb: diff --git a/docs/services/jitsi.md b/docs/services/jitsi.md index 44c15f5b..5331b3ae 100644 --- a/docs/services/jitsi.md +++ b/docs/services/jitsi.md @@ -73,8 +73,8 @@ Passen Sie die `.env` Datei nach Ihren Wünschen an und richten die Port-Weiterl ``` ## Jitsi Konfiguration -Da bei jedem Start des Containers die Datei `/srv/jitsi/web/config.js` -von den Umgebungsvariablen (`.env`) generiert wird, sind Änderungen +Da bei jedem Start des Containers die Datei `/srv/jitsi/web/config.js` +von den Umgebungsvariablen (`.env`) generiert wird, sind Änderungen an dieser Datei nicht Zielführend. Die Datei `/srv/jitsi/web/interface_config.js` kann angepasst werden, um Beispielsweise das Wasserzeichen von Jitsi zu entfernen. diff --git a/docs/services/jupyter.md b/docs/services/jupyter.md index 1712a1d3..ecb7f222 100644 --- a/docs/services/jupyter.md +++ b/docs/services/jupyter.md @@ -4,8 +4,6 @@ Jupyter Notebook ist eine interaktive Entwicklungsumgebung, die es Benutzern erm auszuführen, um interaktive Datenanalysen und Visualisierungen durchzuführen. ```yaml -version: '3.9' - services: jupyter: image: jupyter/scipy-notebook diff --git a/docs/services/keycloak.md b/docs/services/keycloak.md index 077de8e3..c466accc 100644 --- a/docs/services/keycloak.md +++ b/docs/services/keycloak.md @@ -4,8 +4,6 @@ Keycloak ist eine Software zur Verwaltung von Benutzer-Authentifizierung und Aut Single-Sign-On und Social-Login, für Anwendungen und Services. ```yaml -version: '3.9' - services: postgres: image: postgres @@ -52,9 +50,9 @@ KC_ADMIN_PASSWORD=S3cr3T - "[::1]:8000:8080" ``` - Das Administrative Webinterface zur Verwaltung der Realms möchte man - für gewöhnlich nicht aus dem Internet erreichbar haben. Daher erstellen - wir zwei Virtual Hosts, einen für Administrative Zwecke und einen für + Das Administrative Webinterface zur Verwaltung der Realms möchte man + für gewöhnlich nicht aus dem Internet erreichbar haben. Daher erstellen + wir zwei Virtual Hosts, einen für Administrative Zwecke und einen für die normale Anmeldung, der auch aus dem Internet erreichbar ist. ```nginx diff --git a/docs/services/mariadb.md b/docs/services/mariadb.md index 0692db6d..e51e52aa 100644 --- a/docs/services/mariadb.md +++ b/docs/services/mariadb.md @@ -3,15 +3,13 @@ Einfache SQL basierte Datenbank. Nachfolger von MySQL. ```yaml -version: '3.9' - services: mariadb: image: mariadb restart: always env_file: .mariadb.env volumes: - - "/srv/mariadb:/var/lib/mysql" + - "/srv/mariadb:/var/lib/mysql" ``` ```shell diff --git a/docs/services/matrix.md b/docs/services/matrix.md index 38744d89..3942a5d4 100644 --- a/docs/services/matrix.md +++ b/docs/services/matrix.md @@ -3,8 +3,6 @@ Ein Server für einen dezentralen Messenger Dienst. ```yaml -version: '3.9' - services: postgres: image: postgres @@ -37,7 +35,7 @@ services: # signald: # image: docker.io/signald/signald # restart: always -# volumes: +# volumes: # - "/srv/matrix/signald:/signald" # mautrix-telegram: @@ -112,8 +110,8 @@ POSTGRES_PASSWORD=S3cr3T } ``` - Die beiden Dateien `server` und `client` im Verzeichnis `.well-known/matrix` - müssen auf der Homeserver Domain (hier `domain.de`) hinterlegt sein, damit + Die beiden Dateien `server` und `client` im Verzeichnis `.well-known/matrix` + müssen auf der Homeserver Domain (hier `domain.de`) hinterlegt sein, damit die Matrix Federation funktioniert und Clients details zum Homeserver erhalten. ```nginx @@ -207,7 +205,7 @@ sudo docker compose exec synapse register_new_matrix_user \ ### Passwort zurücksetzen -Zurücksetzen lassen sich die Passwörter lediglich über die Datenbank. +Zurücksetzen lassen sich die Passwörter lediglich über die Datenbank. Zunächst wird ein neuer hash generiert, anschließend wird dieser in der Datenbank für den jeweiligen Nutzer als Passwort ersetzt. @@ -283,8 +281,8 @@ Synapse kann ohne Probleme mit mehreren Benutzern genutzt werden, bei der WhatsA einem Homeserver mit zwei Nutzern einige "Unschönheiten" feststellen. !!! info "Beispiel: WhatsApp Status Broadcasts" - Nutzer A hat die Nummer von Nutzer B in seinen Kontakten eingespeichert. - Nutzer A erstellt einen WhatsApp Status in der App, und fügt Nutzer B zu den Empfängern hinzu. + Nutzer A hat die Nummer von Nutzer B in seinen Kontakten eingespeichert. + Nutzer A erstellt einen WhatsApp Status in der App, und fügt Nutzer B zu den Empfängern hinzu. Die Bridge von Nutzer B empfängt den Status Broadcast und fügt Nutzer B in den Status Broadcast Chatroom von Nutzer A hinzu, wodurch Nutzer B alle alten und zukünftigen (sofern Nutzer A Nutzer B nicht wieder rauswirft) Status Nachrichten von Kontakten von Nutzer A sieht. @@ -367,8 +365,8 @@ Anschließend sollten zumindest folgende Werte in der Datei `/srv/matrix/mautrix ```yaml homeserver: # Hier muss angegeben werden, wie der mautrix-telegram - # Container den synapse homeserver innerhalb des matrix - # docker netzwerks erreichen kann. Dies geschieht über + # Container den synapse homeserver innerhalb des matrix + # docker netzwerks erreichen kann. Dies geschieht über # den Hostname des Containers und dem entsprechenden Port address: http://synapse:8008 # Hier muss die domain des Homeservers angegeben werden @@ -388,7 +386,7 @@ appservice: ``` Unter dem Abschnitt `bridge:` befinden sich viele Konfigurationen, welche nur das Bridgen an sich betreffen. Diese müssen -nach den persönlichen vorlieben eingestellt werden. Wir empfehlen aus den oben genannten Gründen die Bridges nicht +nach den persönlichen vorlieben eingestellt werden. Wir empfehlen aus den oben genannten Gründen die Bridges nicht jedem Nutzer auf dem Homeserver zur Verfügung zu stellen, deswegen sollte man folgende Einstellung vornehmen. ```yaml @@ -427,7 +425,7 @@ Hilfenachricht erhalten und dann den Login und Synchronisierungsprozess der Brid #### `mautrix-signal` (Signal Bridge) -Nachdem die Kommentarzeichen des `mautrix-signal` und des `signald` Containers in der `docker-compose.yml` entfernt +Nachdem die Kommentarzeichen des `mautrix-signal` und des `signald` Containers in der `docker-compose.yml` entfernt wurden und der Container neu gestartet wurde, muss noch eine eigene Datenbank angelegt und die Konfiguration der Bridge angepasst werden. @@ -441,8 +439,8 @@ Anschließend sollten zumindest folgende Werte in der Datei `/srv/matrix/mautrix ```yaml homeserver: # Hier muss angegeben werden, wie der mautrix-signal - # Container den synapse homeserver innerhalb des matrix - # docker netzwerks erreichen kann. Dies geschieht über + # Container den synapse homeserver innerhalb des matrix + # docker netzwerks erreichen kann. Dies geschieht über # den Hostname des Containers und dem entsprechenden Port address: http://synapse:8008 # Hier muss die domain des Homeservers angegeben werden diff --git a/docs/services/minecraft.md b/docs/services/minecraft.md index 191915d5..dca6f200 100644 --- a/docs/services/minecraft.md +++ b/docs/services/minecraft.md @@ -3,8 +3,6 @@ Ein Spigot Server, welcher auch den Zugriff auf Mods erlaubt. ```yaml -version: '3.9' - services: minecraft: image: itzg/minecraft-server diff --git a/docs/services/mongodb.md b/docs/services/mongodb.md index bd6cfa55..81bbecd9 100644 --- a/docs/services/mongodb.md +++ b/docs/services/mongodb.md @@ -4,8 +4,6 @@ MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die eine flexible und sk strukturierte und unstrukturierte Daten bietet. ```yaml -version: '3.9' - services: mongodb: image: mongo diff --git a/docs/services/netbox.md b/docs/services/netbox.md index 211f2f20..8fd36b8e 100644 --- a/docs/services/netbox.md +++ b/docs/services/netbox.md @@ -12,8 +12,6 @@ git clone -b release https://github.com/netbox-community/netbox-docker.git /home # hostname of netbox is shown on the website, so it should be overwritten # also the default configuration is using docker volumes, which I don't like, so let's overwrite them cat <<_EOF > /home/admin/netbox/docker-compose.override.yml -version: '3.4' - services: netbox: hostname: netbox.domain.de diff --git a/docs/services/nextcloud.md b/docs/services/nextcloud.md index 042e46c5..e6187ca5 100644 --- a/docs/services/nextcloud.md +++ b/docs/services/nextcloud.md @@ -3,8 +3,6 @@ Nextcloud ist eine vielseitige Cloud, welche mit zahlreichen Add-ons um Funktionen erweitert werden kann. ```yaml -version: '3.9' - services: postgres: image: postgres @@ -105,7 +103,7 @@ NEXTCLOUD_ADMIN_PASSWORD=p4ssw0rd ## Cronjobs Um Cronjobs unter Nextcloud einzurichten, empfehlen wir Folgendes: -1. Stelle in dem Nextcloud Webinterface unter `Administration-Settings -> Basic settings` die Background jobs auf `cron` +1. Stelle in dem Nextcloud Webinterface unter `Administration-Settings -> Basic settings` die Background jobs auf `cron` 2. Öffne den crontab auf dem Server mit folgendem Befehl: `sudo crontab -e` diff --git a/docs/services/nginx.md b/docs/services/nginx.md index 56f967b4..9ab6b63c 100644 --- a/docs/services/nginx.md +++ b/docs/services/nginx.md @@ -3,7 +3,7 @@ Wird ein einfacher Webserver z. B. für eine statische Homepage benötigt, kann ein nginx Container verwendet werden. !!! info "" - Sofern sie als Reverse Proxy nginx Verwenden, können Sie auch einfach einen + Sofern sie als Reverse Proxy nginx Verwenden, können Sie auch einfach einen neuen Virtual Host auf diesem für ihre Homepage erstellen. ```nginx @@ -39,8 +39,6 @@ Wird ein einfacher Webserver z. B. für eine statische Homepage benötigt, kann ``` ```yaml -version: '3.9' - services: homepage: image: nginx:alpine diff --git a/docs/services/openvpn.md b/docs/services/openvpn.md index 9084e26a..d7d46cd4 100644 --- a/docs/services/openvpn.md +++ b/docs/services/openvpn.md @@ -9,8 +9,6 @@ Einfacher und selbst gehosteter OpenSource VPN Dienst. Infrastruktur zu verwenden (z. B. einen Router wie pfSense oder VyOS) ```yaml -version: '3.9' - services: openvpn: image: kylemanna/openvpn @@ -18,7 +16,7 @@ services: ports: - "1194:1194/udp" cap_add: - - "NET_ADMIN" + - "NET_ADMIN" volumes: - "/srv/openvpn:/etc/openvpn" ``` diff --git a/docs/services/paperless.md b/docs/services/paperless.md index e94e1603..9732d610 100644 --- a/docs/services/paperless.md +++ b/docs/services/paperless.md @@ -4,8 +4,6 @@ Paperless-NGX ist ein Open-Source-Dokumentenmanagementsystem, das darauf abzielt durch die Digitalisierung und Automatisierung von Geschäftsprozessen zu verbessern. ```yaml -version: '3.9' - services: broker: image: docker.io/library/redis:7 diff --git a/docs/services/passbolt.md b/docs/services/passbolt.md index 0559fdfc..d8908ad4 100644 --- a/docs/services/passbolt.md +++ b/docs/services/passbolt.md @@ -1,11 +1,9 @@ # passbolt -Passbolt ist ein self-hosted open source Passwortmanager, welcher sehr gut für Teams geeignet ist, durch die Funktion, +Passbolt ist ein self-hosted open source Passwortmanager, welcher sehr gut für Teams geeignet ist, durch die Funktion, dass man intern Passwörter teilen kann und Teams erstellen kann. ```yaml -version: '3.9' - services: postgres: image: postgres diff --git a/docs/services/pgAdmin4.md b/docs/services/pgAdmin4.md index e7be9c40..5823048e 100644 --- a/docs/services/pgAdmin4.md +++ b/docs/services/pgAdmin4.md @@ -3,8 +3,6 @@ Eine webbasierte Datenbank Visualisierungs- und Bearbeitungssoftware. ```yaml -version: '3.9' - services: pgadmin: image: dpage/pgadmin4 diff --git a/docs/services/postgresql.md b/docs/services/postgresql.md index 3bf8b938..6755ca73 100644 --- a/docs/services/postgresql.md +++ b/docs/services/postgresql.md @@ -3,8 +3,6 @@ Eine SQL basierte relationale Datenbank. ```yaml -version: '3.9' - services: postgres: image: postgres diff --git a/docs/services/privatebin.md b/docs/services/privatebin.md index f05c4673..5c985ac8 100644 --- a/docs/services/privatebin.md +++ b/docs/services/privatebin.md @@ -4,8 +4,6 @@ PrivateBin ist eine Open-Source-Webanwendung, welche die sichere gemeinsame Nutz indem sie diese verschlüsselt und nur für autorisierte Benutzer zugänglich macht. ```yaml -version: '3.9' - services: privatebin: image: privatebin/nginx-fpm-alpine diff --git a/docs/services/seafile.md b/docs/services/seafile.md index 31536f50..32c6f70e 100644 --- a/docs/services/seafile.md +++ b/docs/services/seafile.md @@ -4,11 +4,9 @@ Seafile ist eine sichere, Open-Source-Plattform für die Synchronisation, Freiga sowohl eine On-Premises- als auch eine Cloud-basierte Bereitstellungsoption bietet. ```yaml -version: '3.9' - services: mariadb: - image: mariadb + image: mariadb restart: always env_file: .mariadb.env volumes: @@ -20,7 +18,7 @@ services: entrypoint: memcached -m 256 seafile: - image: seafileltd/seafile-mc + image: seafileltd/seafile-mc restart: always env_file: .seafile.env environment: diff --git a/docs/services/sharelatex.md b/docs/services/sharelatex.md index a8278e65..eedbd773 100644 --- a/docs/services/sharelatex.md +++ b/docs/services/sharelatex.md @@ -1,13 +1,11 @@ # ShareLaTeX -Eine selbst gehostete Version von [Overleaf](https://overleaf.com) +Eine selbst gehostete Version von [Overleaf](https://overleaf.com) ```yaml -version: '3.9' - services: sharelatex: - # use latest tag for setup, use your own image (tag: with-texlive-full) after installation + # use latest tag for setup, use your own image (tag: with-texlive-full) after installation image: sharelatex/sharelatex restart: always env_file: .sharelatex.env @@ -121,7 +119,7 @@ services: Wenn du den Container mit docker-compose startest, wird das Image mit allen environment Variablen und Labels gestartet. 1. Install `texlive-full` - + !!! warning "" Das Ausführen des Commands wird einige Stunden dauern (variierend auf der Internetleitung des Server 2 - 4h), empfehle ich es in einem screen auszuführen diff --git a/docs/services/syncthing.md b/docs/services/syncthing.md index c43bb47b..06ab2623 100644 --- a/docs/services/syncthing.md +++ b/docs/services/syncthing.md @@ -3,8 +3,6 @@ Software zum Synchronisieren und Versionieren von Dateien. ```yaml -version: '3.9' - services: syncthing: image: syncthing/syncthing diff --git a/docs/services/teamspeak.md b/docs/services/teamspeak.md index d70c8660..e95a6c9c 100644 --- a/docs/services/teamspeak.md +++ b/docs/services/teamspeak.md @@ -3,8 +3,6 @@ TeamSpeak ist eine Voice-over-IP-Software, die es Benutzern ermöglicht, über das Internet miteinander zu kommunizieren. ```yaml -version: '3.9' - services: mariadb: image: mariadb @@ -16,7 +14,7 @@ services: - "MYSQL_USER=teamspeak" volumes: - "/srv/teamspeak3/mariadb:/var/lib/mysql" - + teamspeak3: image: teamspeak restart: always @@ -116,7 +114,7 @@ Nach dem ersten Containerstart werden in den Logs des Containers, ausgegeben. Wir empfehlen die Daten an einem sicheren Ort zu speichern. ### Server Query Zugangsdaten zurücksetzen -Sofern Sie die TeamSpeak Server Query Zugangsdaten vergessen haben, +Sofern Sie die TeamSpeak Server Query Zugangsdaten vergessen haben, können Sie diese mithilfe des folgenden Befehls zurücksetzen: ```shell @@ -125,8 +123,8 @@ sudo docker compose run --rm teamspeak3 ts3server \ serveradmin_password=NEW_PASSWORD ``` -Anschließend kann man sich innerhalb des ts3server Containers -mit dem Server Query Interface verbinden und dort einen neuen +Anschließend kann man sich innerhalb des ts3server Containers +mit dem Server Query Interface verbinden und dort einen neuen Berechtigungstoken erstellen: ```sh sudo docker compose run --rm teamspeak3 nc localhost 10011 diff --git a/docs/services/vaultwarden.md b/docs/services/vaultwarden.md index d4a67a77..ccba1403 100644 --- a/docs/services/vaultwarden.md +++ b/docs/services/vaultwarden.md @@ -4,8 +4,6 @@ Vaultwarden ist eine Open-Source-Serveranwendung für das sichere Speichern und vertraulichen Informationen in einem persönlichen Tresor. ```yaml -version: '3.9' - services: postgres: image: postgres:15 diff --git a/docs/services/wordpress.md b/docs/services/wordpress.md index f69d4580..d7e5cf0f 100644 --- a/docs/services/wordpress.md +++ b/docs/services/wordpress.md @@ -3,8 +3,6 @@ Ein CMS (Content-Management-System) zum einfachen Verwalten und erstellen von Websites. ```yaml -version: '3.9' - services: mysql: image: mysql