Ich habe bereits schon hier eine Anleitung geschrieben, wie ihr Seafile normal “von Hand” installieren könnt. Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Datum | Änderungen |
---|---|
28.03.2020 | Erstellung dieser Anleitung. |
26.07.2022 | Docker Compose Datei angepasst |
29.05.2023 | Anpassung an neue Traefik Anleitung |
Als Grundlage meiner Anleitung dient die offizielle Seafile Anleitung für Docker.
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
2. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/seafile/{mysql-db,seafile-data}
3. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Seafile Compose genommen und diese abgeändert für Traefik.
nano /opt/containers/seafile/docker-compose.yml
Inhalt
version: '2.0' services: seafile-db: image: mariadb:10.6 container_name: seafile-mysql restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=db_dev - MYSQL_LOG_CONSOLE=true volumes: - ./mysql-db:/var/lib/mysql networks: - seafile-net memcached: image: memcached:1.6.18 container_name: seafile-memcached restart: unless-stopped entrypoint: memcached -m 256 networks: - seafile-net seafile: image: seafileltd/seafile-mc:latest container_name: seafile restart: unless-stopped volumes: - ./seafile-data:/shared environment: - DB_HOST=seafile-db - DB_ROOT_PASSWD=db_dev - TIME_ZONE=Europe/Berlin - SEAFILE_ADMIN_EMAIL=test@euredomain.de - SEAFILE_ADMIN_PASSWORD=test - SEAFILE_SERVER_LETSENCRYPT=false - SEAFILE_SERVER_HOSTNAME=cloud.euredomain.de labels: - "traefik.enable=true" - "traefik.http.routers.seafile.entrypoints=websecure" - "traefik.http.routers.seafile.rule=(Host(`cloud.euredomain.de`))" - "traefik.http.routers.seafile.tls=true" - "traefik.http.routers.seafile.tls.certresolver=http_resolver" - "traefik.http.routers.seafile.service=seafile" - "traefik.http.services.seafile.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.seafile.middlewares=default@file" depends_on: - seafile-db - memcached networks: - seafile-net - proxy networks: seafile-net: proxy: external: true
version: '2.0' services: seafile-db: image: mariadb:10.6 container_name: seafile-mysql restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=db_dev - MYSQL_LOG_CONSOLE=true volumes: - ./mysql-db:/var/lib/mysql networks: - seafile-net memcached: image: memcached:1.6.18 container_name: seafile-memcached restart: unless-stopped entrypoint: memcached -m 256 networks: - seafile-net seafile: image: seafileltd/seafile-mc:latest container_name: seafile restart: unless-stopped volumes: - ./seafile-data:/shared environment: - DB_HOST=seafile-db - DB_ROOT_PASSWD=db_dev - TIME_ZONE=Europe/Berlin - SEAFILE_ADMIN_EMAIL=test@euredomain.de - SEAFILE_ADMIN_PASSWORD=test - SEAFILE_SERVER_LETSENCRYPT=false - SEAFILE_SERVER_HOSTNAME=cloud.euredomain.de labels: - "traefik.enable=true" - "traefik.http.routers.seafile.entrypoints=http" - "traefik.http.routers.seafile.rule=Host(`cloud.euredomain.de`)" - "traefik.http.middlewares.seafile-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.seafile.middlewares=seafile-https-redirect" - "traefik.http.routers.seafile-secure.entrypoints=https" - "traefik.http.routers.seafile-secure.rule=Host(`cloud.euredomain.de`)" - "traefik.http.routers.seafile-secure.tls=true" - "traefik.http.routers.seafile-secure.tls.certresolver=http" - "traefik.http.routers.seafile-secure.service=seafile" - "traefik.http.services.seafile.loadbalancer.server.port=80" - "traefik.docker.network=proxy" depends_on: - seafile-db - memcached networks: - seafile-net - proxy networks: seafile-net: proxy: external: true
Notwendige Anpassungen:
- 2x MySQL Passwort anpassen (DB_ROOT_PASSWD)
- Admin E-Mail vergeben (SEAFILE_ADMIN_EMAIL)
- Admin Kennwort vergeben (SEAFILE_ADMIN_PASSWORD)
- Eure URL eingeben bei Seafile (SEAFILE_SERVER_HOSTNAME)
- eure URL eingeben bei Traefik
4. Seafile Server starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/seafile/docker-compose.yml up -d
Nun sollte es so aussehen, wenn ihr auf “cloud.euredomain.de” geht.
5. Anpassungen für Uploads vornehmen
Unsere Verbindung wird mittels Traefik TLS verschlüsselt. Daher müssen wir noch Seafile anpassen. Diese Einstellungen müsst ihr mit dem Administrator Benutzer vornehmen.
Klickt auf euer “Avatar” oben rechts.
Hier klickt ihr auf “System-Administration”.
Nun auf “Einstellungen”. Hier sind jetzt die “SERVICE_URL” und “FILE_SERVER_ROOT” wichtig. Diese passt ihr an.
Wichtig ist, dass wenn ihr änderungen vornehmt, dass ihr diese mit dem “Haken” bestätigt.
Nun ändert die Einstellungen folgendermaßen ab:
- SERVICE_URL = https://cloud.euredomain.de
- FILE_SERVER_ROOT = https://cloud.euredomain.de/seafhttp
6. Quellen
https://download.seafile.com/published/seafile-manual/docker/deploy%20seafile%20with%20docker.md
https://github.com/haiwen/seafile-docker
Wie aktiviert man WebDAV bei Seafile in Verbindung mit Traefik v2, das eingerichtet wurde nach eurer Anleitung? https://goneuland.de/traefik-v2-reverse-proxy-mit-crowdsec-einrichten
Möchte DAVx5 nutzen und Backups wie z.B. Seedvault, Swift Backup usw. darüber auf meinen nach eurer Anleitung eingerichteten Seafile-Server sichern.
Kommentare kann ich hier nicht aufklappen/ lesen…wieso auch immer (keine Adblocker usw. auf eurer Seite aktiviert) Oder kann man die nur über Abo lesen? Steht zumindest ja nirgends etwas davon. Da ich keine Antworten lesen kann lasse ich das so mal da.
Hallo.
Schöne detaillierte Anleitung. Habe Traefik auf Anhieb zum Laufen bekommen, allerdings zickt Seafile etwas rum. Immer wenn ich meine Domain aufrufe werde ich zur Hauptseite von Traefik weitergeleitet. Habe es dann mit Ports, brachte aber nix. Was mache ich falsch ? Danke.
Gruß Thorsten
Seltsam bei mir waren die Kommentare noch drin. Hatte die Webseite aber aktualisiert.
Nun sind sie weg. Alles gut, funktioniert nun.
Vielen Dank Christian….
Funktioniert immer noch nicht.
Du musst noch das hier löschen.
Dann geht es….
VG Jens
Funktioniert nicht mehr…! Bitte mal überprüfen.
Danke konnte paar Sachen abspicken, hat geholfen!
Mein Dank kennt keine Worte! So truly made my day/night!