Deutsch
Loslegen

← Alle Vorlagen · Dateien und Dokumente

Seafile mit einem Klick deployen

Dateien synchronisieren und teilen: Bibliotheken, synchronisiert auf deine Computer und Handys, mit Verlauf und Links

Eine selbst gehostete Alternative zu Dropbox und Google Drive.

Was ist Seafile?

Seafile ist Open-Source-Software zum Synchronisieren und Teilen von Dateien, die du statt Dropbox oder Google Drive einsetzt. Dateien liegen in Bibliotheken: Jede synchronisiert sich mit der Desktop-App unter Windows, macOS und Linux, und mit den Apps für iOS und Android lassen sich Dateien ansehen und hochladen. Seafile behält den Verlauf jeder Datei, sodass eine frühere Version oder eine gelöschte Datei zurückkommt, und eine Bibliothek lässt sich mit einem eigenen Passwort verschlüsseln, sodass der Server nur speichert, was er nicht lesen kann.

Bibliotheken werden mit Benutzern und Gruppen geteilt, nur zum Lesen oder zum Bearbeiten, und ein Freigabe-Link gibt eine Datei oder einen Ordner an beliebige Personen weiter, auf Wunsch mit Passwort und Ablaufdatum; über einen Upload-Link können andere Dateien hineinlegen. Seafile ist dafür bekannt, große Mengen von Dateien schnell zu synchronisieren: Es überträgt nur die Blöcke einer Datei, die sich geändert haben.

Diese Vorlage startet die Community Edition aus dem offiziellen Image von Seafile, Version 14.0, mit MariaDB und einem Redis-Cache. Die Datenbanken und der Admin aus der E-Mail und dem Passwort, die du angibst, entstehen beim ersten Start; die Registrierung bleibt aus. SeaDoc, der Online-Dokumenteditor von Seafile, sowie seine Server für Benachrichtigungen und Metadaten sind nicht dabei.

Seafile-Hosting auf Pethost

  1. Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
  2. „Neues Projekt“ öffnet sich bei Seafile. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: E-Mail, Admin-Passwort.
  3. In ein, zwei Minuten läuft Seafile unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
  4. Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.

Fragen zu Seafile

Ist Seafile kostenlos und Open Source?

Ja. Die Community Edition von Seafile ist Open Source: der Server unter der AGPL-3.0 und die Weboberfläche Seahub unter der Apache License 2.0. Seafile Ltd. verkauft außerdem eine Professional Edition mit Funktionen für größere Organisationen.

Seafile oder Nextcloud: Was soll ich nehmen?

Seafile macht eine Sache, Dateien synchronisieren und teilen, und ist dafür bekannt, schnell und mit wenig RAM zu synchronisieren. Nextcloud ist eine größere Suite mit Kalender, Kontakten, Office und vielen Apps rund um die Dateien und braucht mehr Ressourcen.

Verschlüsselt Seafile meine Dateien?

Das kann es. Eine verschlüsselte Bibliothek wird auf deinem Computer mit einem Passwort verschlüsselt, das du wählst, und der Server bewahrt nur die verschlüsselten Blöcke auf. Ohne das Passwort kann nicht einmal der Admin des Servers die Dateien lesen.

Welche Apps funktionieren mit Seafile?

Der eigene Desktop-Sync-Client von Seafile für Windows, macOS und Linux, SeaDrive, das Bibliotheken als Netzlaufwerk zeigt, ohne sie vorher herunterzuladen, und die Seafile-Apps für iOS und Android. Alle melden sich mit der Adresse des Servers und deinem Konto an.

Kann ich in Seafile eine gelöschte oder ältere Datei zurückholen?

Ja. Jede Bibliothek behält den Verlauf ihrer Dateien: „Versionen“ bei einer Datei zeigt ihre früheren Versionen, und der „Papierkorb“ der Bibliothek bewahrt gelöschte Dateien und Ordner zum Wiederherstellen auf. Wie lange der Verlauf bleibt, ist eine Einstellung jeder Bibliothek.

Wie viel RAM und Speicherplatz braucht Seafile?

Seafile braucht etwa 750 MB RAM mit MariaDB und seinem Cache; deine Dateien belegen so viel, wie sie groß sind, dazu ihr Verlauf. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.

Seafile: die Docker-Compose-Datei

Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.

Container: seafile (seafileltd/seafile-mc:14.0-latest), db (mariadb:10.11), redis (redis:8-alpine).

Volumes, im nächtlichen Backup: data, db.

services:
  seafile:
    image: seafileltd/seafile-mc:14.0-latest
    restart: unless-stopped
    environment:
      SEAFILE_SERVER_HOSTNAME: ${HOST}
      # HTTPS ends at the machine's proxy: Seafile writes https:// into its links.
      SEAFILE_SERVER_PROTOCOL: https
      SITE_ROOT: /
      CSRF_TRUSTED_ORIGINS: ${URL}
      JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY}
      TIME_ZONE: Etc/UTC
      SEAFILE_MYSQL_DB_HOST: db
      SEAFILE_MYSQL_DB_PORT: "3306"
      SEAFILE_MYSQL_DB_USER: seafile
      SEAFILE_MYSQL_DB_PASSWORD: ${DB_PASSWORD}
      SEAFILE_MYSQL_DB_CCNET_DB_NAME: ccnet_db
      SEAFILE_MYSQL_DB_SEAFILE_DB_NAME: seafile_db
      SEAFILE_MYSQL_DB_SEAHUB_DB_NAME: seahub_db
      # The first start makes the databases with MariaDB's root, and the admin from the fields;
      # later starts read neither. Seafile has no sign-up unless an admin turns it on.
      INIT_SEAFILE_MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      INIT_SEAFILE_ADMIN_EMAIL: ${ADMIN_EMAIL}
      INIT_SEAFILE_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      CACHE_PROVIDER: redis
      REDIS_HOST: redis
      REDIS_PORT: "6379"
      REDIS_PASSWORD: ""
      ENABLE_GO_FILESERVER: "true"
      # SeaDoc, the notification server and the metadata server run as containers of their own,
      # which this template leaves out.
      ENABLE_SEADOC: "false"
      ENABLE_NOTIFICATION_SERVER: "false"
      ENABLE_METADATA_MANAGEMENT: "false"
      ENABLE_SEAFDAV: "false"
      NON_ROOT: "false"
      SEAFILE_LOG_TO_STDOUT: "true"
    volumes:
      - data:/shared
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS -o /dev/null http://localhost:80/api2/ping/"]
      interval: 15s
      timeout: 10s
      retries: 20
      start_period: 120s
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started

  db:
    image: mariadb:10.11
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MARIADB_AUTO_UPGRADE: "1"
    volumes:
      - db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 20
      start_period: 30s

  # Seafile's cache: nothing in it is kept.
  redis:
    image: redis:8-alpine
    restart: unless-stopped
    command: ["redis-server", "--save", "", "--appendonly", "no", "--maxmemory", "64mb", "--maxmemory-policy", "allkeys-lru"]

volumes:
  data:
  db:

Mehr in Dateien und Dokumente