KI-AGENT: Seafile unter Hauptdomain bereitstellen
This commit is contained in:
@@ -42,11 +42,11 @@ S3_BUCKET=fedeo
|
||||
# genutzt werden.
|
||||
FEDEO_FILE_BACKEND=s3
|
||||
|
||||
# Seafile CE läuft bewusst auf einer eigenen Subdomain, damit Desktop-Clients,
|
||||
# SeaDrive und WebDAV ohne Pfad-Sonderfälle funktionieren.
|
||||
SEAFILE_SERVER_HOSTNAME=files.app.example.com
|
||||
# Seafile CE läuft im Standard-Stack unter der Hauptdomain auf /files.
|
||||
SEAFILE_SERVER_HOSTNAME=app.example.com
|
||||
SEAFILE_SERVER_PROTOCOL=https
|
||||
SEAFILE_BASE_URL=https://files.app.example.com
|
||||
SEAFILE_SITE_ROOT=/files/
|
||||
SEAFILE_BASE_URL=https://app.example.com/files
|
||||
SEAFILE_INTERNAL_URL=http://seafile:80
|
||||
SEAFILE_IMAGE=seafileltd/seafile-mc:13.0-latest
|
||||
SEAFILE_DB_IMAGE=mariadb:10.11
|
||||
|
||||
@@ -135,7 +135,7 @@ cp .env.example .env
|
||||
```
|
||||
|
||||
Ersetze anschließend alle Platzhalter und passe mindestens `DOMAIN`, `CONTACT_EMAIL`, Datenbank-, Secret-, SMTP- und S3-Werte an.
|
||||
Wenn Seafile genutzt werden soll, muss zusätzlich `SEAFILE_SERVER_HOSTNAME` als eigene Subdomain auf den Server zeigen, zum Beispiel `files.app.example.com`.
|
||||
Seafile läuft im Standard-Stack unter derselben Domain auf `/files`, zum Beispiel `https://app.example.com/files`.
|
||||
|
||||
Alternativ kannst du die Konfiguration geführt erzeugen lassen:
|
||||
|
||||
@@ -208,9 +208,10 @@ S3_SECRET_KEY=change-this-minio-password
|
||||
S3_BUCKET=fedeo
|
||||
|
||||
FEDEO_FILE_BACKEND=s3
|
||||
SEAFILE_SERVER_HOSTNAME=files.app.example.com
|
||||
SEAFILE_SERVER_HOSTNAME=app.example.com
|
||||
SEAFILE_SERVER_PROTOCOL=https
|
||||
SEAFILE_BASE_URL=https://files.app.example.com
|
||||
SEAFILE_SITE_ROOT=/files/
|
||||
SEAFILE_BASE_URL=https://app.example.com/files
|
||||
SEAFILE_INTERNAL_URL=http://seafile:80
|
||||
SEAFILE_IMAGE=seafileltd/seafile-mc:13.0-latest
|
||||
SEAFILE_DB_IMAGE=mariadb:10.11
|
||||
@@ -275,7 +276,7 @@ Die `FEDEO_BOOTSTRAP_*`-Werte sind für den ersten Start gedacht. Wenn `FEDEO_BO
|
||||
|
||||
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 Stack enthält zusätzlich Seafile CE als vorbereitetes File-Backend. Seafile läuft unter `SEAFILE_SERVER_HOSTNAME`, nutzt MariaDB und Redis intern und ist für Desktop-Sync, SeaDrive und WebDAV bewusst auf eine eigene Subdomain ausgelegt. FEDEO nutzt aktuell weiter S3 als Standard; `FEDEO_FILE_BACKEND=s3` bleibt deshalb gesetzt, bis das Backend die Seafile-Integration vollständig unterstützt.
|
||||
Der Stack enthält zusätzlich Seafile CE als vorbereitetes File-Backend. Seafile läuft unter `https://DOMAIN/files`, nutzt MariaDB und Redis intern und ist damit ohne zusätzliche Subdomain erreichbar. FEDEO nutzt aktuell weiter S3 als Standard; `FEDEO_FILE_BACKEND=s3` bleibt deshalb gesetzt, bis das Backend die Seafile-Integration vollständig unterstützt.
|
||||
|
||||
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`.
|
||||
|
||||
|
||||
@@ -142,9 +142,9 @@ services:
|
||||
TIME_ZONE: ${TIME_ZONE:-Europe/Berlin}
|
||||
INIT_SEAFILE_ADMIN_EMAIL: ${INIT_SEAFILE_ADMIN_EMAIL}
|
||||
INIT_SEAFILE_ADMIN_PASSWORD: ${INIT_SEAFILE_ADMIN_PASSWORD}
|
||||
SEAFILE_SERVER_HOSTNAME: ${SEAFILE_SERVER_HOSTNAME}
|
||||
SEAFILE_SERVER_HOSTNAME: ${SEAFILE_SERVER_HOSTNAME:-${DOMAIN}}
|
||||
SEAFILE_SERVER_PROTOCOL: ${SEAFILE_SERVER_PROTOCOL:-https}
|
||||
SITE_ROOT: ${SEAFILE_SITE_ROOT:-/}
|
||||
SITE_ROOT: ${SEAFILE_SITE_ROOT:-/files/}
|
||||
NON_ROOT: ${SEAFILE_NON_ROOT:-false}
|
||||
JWT_PRIVATE_KEY: ${SEAFILE_JWT_PRIVATE_KEY}
|
||||
SEAFILE_LOG_TO_STDOUT: ${SEAFILE_LOG_TO_STDOUT:-true}
|
||||
@@ -166,9 +166,11 @@ services:
|
||||
start_period: 30s
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.fedeo-seafile.rule=Host(`${SEAFILE_SERVER_HOSTNAME}`)
|
||||
- traefik.http.middlewares.fedeo-seafile-strip.stripprefix.prefixes=/files
|
||||
- traefik.http.routers.fedeo-seafile.rule=Host(`${DOMAIN}`) && PathPrefix(`/files`)
|
||||
- traefik.http.routers.fedeo-seafile.entrypoints=websecure
|
||||
- traefik.http.routers.fedeo-seafile.tls.certresolver=letsencrypt
|
||||
- traefik.http.routers.fedeo-seafile.middlewares=fedeo-seafile-strip
|
||||
- traefik.http.services.fedeo-seafile.loadbalancer.server.port=80
|
||||
- traefik.docker.network=fedeo_web
|
||||
networks:
|
||||
|
||||
@@ -331,9 +331,10 @@ S3_SECRET_KEY=$(env_quote "$minio_password")
|
||||
S3_BUCKET=$(env_quote "fedeo")
|
||||
|
||||
FEDEO_FILE_BACKEND=$(env_quote "s3")
|
||||
SEAFILE_SERVER_HOSTNAME=$(env_quote "files.$domain")
|
||||
SEAFILE_SERVER_HOSTNAME=$(env_quote "$domain")
|
||||
SEAFILE_SERVER_PROTOCOL=$(env_quote "https")
|
||||
SEAFILE_BASE_URL=$(env_quote "https://files.$domain")
|
||||
SEAFILE_SITE_ROOT=$(env_quote "/files/")
|
||||
SEAFILE_BASE_URL=$(env_quote "https://$domain/files")
|
||||
SEAFILE_INTERNAL_URL=$(env_quote "http://seafile:80")
|
||||
SEAFILE_IMAGE=$(env_quote "seafileltd/seafile-mc:13.0-latest")
|
||||
SEAFILE_DB_IMAGE=$(env_quote "mariadb:10.11")
|
||||
@@ -526,7 +527,6 @@ main() {
|
||||
echo
|
||||
echo "Vor dem Start prüfen:"
|
||||
echo " 1. DNS zeigt auf diesen Server: $domain"
|
||||
echo " Zusätzlich für Seafile: files.$domain"
|
||||
echo " 2. Ports 80, 443, 3478/tcp, 3478/udp, 5349/tcp, 49160-49200/udp sind offen"
|
||||
echo " 3. Platzhalter für optionale Dienste in .env bei Bedarf ersetzen"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user