diff --git a/README.md b/README.md index 2bf1825..6c14246 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ Beispiel für die manuelle Vorbereitung: ```bash mkdir -p /opt/fedeo/scripts -curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/docker-compose.selfhost.yml -o /opt/fedeo/docker-compose.selfhost.yml +curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/docker-compose.selfhost.yml -o /opt/fedeo/docker-compose.yml curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/.env.example -o /opt/fedeo/.env.example curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/scripts/selfhost-setup.sh -o /opt/fedeo/scripts/selfhost-setup.sh chmod +x /opt/fedeo/scripts/selfhost-setup.sh @@ -105,7 +105,7 @@ Die Verzeichnisstruktur sollte dann mindestens so aussehen: ```text /opt/fedeo/ - docker-compose.selfhost.yml + docker-compose.yml .env scripts/ traefik/ @@ -248,7 +248,7 @@ Die `FEDEO_BOOTSTRAP_*`-Werte sind für den ersten Start gedacht. Wenn `FEDEO_BO ## Docker Compose mit optionalem S3 und Matrix -Die Selfhost-Konfiguration liegt in `docker-compose.selfhost.yml`. Sie startet MinIO standardmäßig mit. Wenn du stattdessen AWS S3, Hetzner Object Storage, Backblaze B2 S3 oder einen anderen externen S3-Dienst nutzen willst, kannst du die Services `minio` und `createbuckets` entfernen und nur die entsprechenden S3-Umgebungsvariablen auf den externen Anbieter zeigen lassen. +Die Selfhost-Konfiguration wird im Betriebsverzeichnis als `docker-compose.yml` abgelegt. Sie startet MinIO standardmäßig mit. Wenn du stattdessen AWS S3, Hetzner Object Storage, Backblaze B2 S3 oder einen anderen externen S3-Dienst nutzen willst, kannst du die Services `minio` und `createbuckets` entfernen und nur die entsprechenden S3-Umgebungsvariablen auf den externen Anbieter zeigen lassen. Der Matrix-Stack ist im Selfhost-Compose direkt enthalten. Er umfasst Synapse, eine eigene PostgreSQL-Datenbank für Synapse, Redis, `.well-known/matrix`, coturn, LiveKit, den LiveKit-JWT-Service und Element Web. Das einfache Selfhost-Setup nutzt nur `DOMAIN`: Synapse läuft unter `https://DOMAIN/_matrix`, Matrix-Well-Known unter `https://DOMAIN/.well-known/matrix`, LiveKit unter `https://DOMAIN/livekit/sfu`, der JWT-Service unter `https://DOMAIN/livekit/jwt` und Element Web unter `https://DOMAIN/element`. @@ -446,7 +446,7 @@ Hinweis: Das Backend nutzt `forcePathStyle: true`. Das funktioniert sauber mit M Im Deploy-Verzeichnis: ```bash -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml up -d +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml up -d ``` Synapse erzeugt `matrix/synapse/homeserver.yaml` beim ersten Start automatisch und aktualisiert die für FEDEO relevanten Werte aus der `.env`. `MATRIX_REGISTRATION_SHARED_SECRET` muss in der `.env` gesetzt und geheim bleiben, weil FEDEO damit Matrix-Nutzer provisioniert. @@ -454,15 +454,15 @@ Synapse erzeugt `matrix/synapse/homeserver.yaml` beim ersten Start automatisch u Danach Status prufen: ```bash -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml ps -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml logs -f traefik -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml logs -f backend +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml ps +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml logs -f traefik +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml logs -f backend ``` Wenn du Migrationen manuell ausführen möchtest: ```bash -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml run --rm backend npm run migrate +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml run --rm backend npm run migrate ``` ## Funktionsprufung @@ -486,11 +486,11 @@ Wenn der Bootstrap aktiviert ist, kannst du dich danach mit `FEDEO_BOOTSTRAP_ADM Bei neuen Versionen: ```bash -curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/docker-compose.selfhost.yml -o /opt/fedeo/docker-compose.selfhost.yml +curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/docker-compose.selfhost.yml -o /opt/fedeo/docker-compose.yml curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/.env.example -o /opt/fedeo/.env.example curl -fsSL https://git.federspiel.tech/flfeders/FEDEO/raw/branch/dev/scripts/selfhost-setup.sh -o /opt/fedeo/scripts/selfhost-setup.sh chmod +x /opt/fedeo/scripts/selfhost-setup.sh -docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.selfhost.yml up -d +docker compose --env-file /opt/fedeo/.env -f /opt/fedeo/docker-compose.yml up -d ``` Der Backend-Container wendet Datenbankmigrationen beim Start automatisch an. Bei kritischen Updates sollte vorher ein Backup von `./postgres` und `./minio` erstellt werden. diff --git a/scripts/selfhost-install.sh b/scripts/selfhost-install.sh index 1f9f013..7587e7b 100755 --- a/scripts/selfhost-install.sh +++ b/scripts/selfhost-install.sh @@ -176,7 +176,7 @@ download_selfhost_files() { fi echo "Lade Selfhost-Dateien..." - download_file "$FEDEO_RAW_BASE_URL/docker-compose.selfhost.yml" "$FEDEO_DIR/docker-compose.selfhost.yml" + download_file "$FEDEO_RAW_BASE_URL/docker-compose.selfhost.yml" "$FEDEO_DIR/docker-compose.yml" download_file "$FEDEO_RAW_BASE_URL/.env.example" "$FEDEO_DIR/.env.example" download_file "$FEDEO_RAW_BASE_URL/scripts/selfhost-setup.sh" "$FEDEO_DIR/scripts/selfhost-setup.sh" chmod +x "$FEDEO_DIR/scripts/selfhost-setup.sh" diff --git a/scripts/selfhost-setup.sh b/scripts/selfhost-setup.sh index 2e23317..3586ae2 100755 --- a/scripts/selfhost-setup.sh +++ b/scripts/selfhost-setup.sh @@ -4,7 +4,7 @@ set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ENV_FILE="$ROOT_DIR/.env" ENV_EXAMPLE="$ROOT_DIR/.env.example" -COMPOSE_FILE="$ROOT_DIR/docker-compose.selfhost.yml" +COMPOSE_FILE="${FEDEO_COMPOSE_FILE:-$ROOT_DIR/docker-compose.yml}" MODE="" START_STACK="ask" @@ -219,7 +219,7 @@ FEDEO Selfhost Setup Dieses Script führt dich durch die lokale Betriebsstruktur: $ROOT_DIR/ - docker-compose.selfhost.yml Docker Stack für FEDEO, Traefik, PostgreSQL, MinIO, Matrix und Monitoring + docker-compose.yml Docker Stack für FEDEO, Traefik, PostgreSQL, MinIO, Matrix und Monitoring .env Zielkonfiguration, wird von diesem Script geschrieben postgres/ persistente FEDEO-Datenbank minio/ lokaler S3-kompatibler Dateispeicher