Polski
Zacznij

← Wszystkie szablony · Pliki i dokumenty

Wdróż Seafile jednym kliknięciem

Synchronizacja i udostępnianie plików: biblioteki synchronizowane z twoimi komputerami i telefonami, z historią i linkami

Alternatywa dla Dropbox i Google Drive, hostowana u siebie.

Czym jest Seafile?

Seafile to oprogramowanie open source do synchronizacji i udostępniania plików, używane zamiast Dropboxa czy Google Drive. Pliki są w bibliotekach: każda synchronizuje się z aplikacją na komputer z Windows, macOS i Linuksem, a aplikacje na iOS i Androida przeglądają je i wgrywają do nich pliki. Seafile przechowuje historię każdego pliku, więc wcześniejszą wersję albo usunięty plik można odzyskać, a bibliotekę można zaszyfrować osobnym hasłem, tak że serwer przechowuje tylko to, czego nie umie odczytać.

Biblioteki udostępnia się użytkownikom i grupom, tylko do odczytu albo do edycji, a link udostępniania daje plik lub katalog każdemu, jeśli chcesz, z hasłem i datą wygaśnięcia; link do wgrywania pozwala innym wrzucać pliki. Seafile słynie z szybkiej synchronizacji dużej liczby plików: przesyła tylko te bloki pliku, które się zmieniły.

Ten szablon uruchamia edycję Community z oficjalnego obrazu Seafile w wersji 14.0, z MariaDB i cache Redis. Bazy danych i administrator z podanego adresu e-mail i hasła powstają przy pierwszym starcie; rejestracja pozostaje wyłączona. Nie ma tu SeaDoc, edytora dokumentów online Seafile, ani jego serwerów powiadomień i metadanych.

Hosting Seafile na Pethost

  1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
  2. Okno „Nowy projekt” otwiera się na aplikacji Seafile. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: E-mail, Hasło administratora.
  3. Za minutę czy dwie aplikacja Seafile działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
  4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

Pytania o Seafile

Czy Seafile jest darmowy i open source?

Tak. Edycja Community Seafile jest open source: serwer na licencji AGPL-3.0, a jego interfejs webowy, Seahub, na licencji Apache License 2.0. Seafile Ltd. sprzedaje też edycję Professional z funkcjami dla większych organizacji.

Seafile czy Nextcloud: co wybrać?

Seafile robi jedną rzecz, synchronizację i udostępnianie plików, i słynie z szybkiej synchronizacji przy małym zużyciu pamięci. Nextcloud to większy zestaw, z kalendarzem, kontaktami, pakietem biurowym i wieloma aplikacjami wokół plików, i potrzebuje więcej zasobów.

Czy Seafile szyfruje moje pliki?

Tak, jeśli tego chcesz. Zaszyfrowana biblioteka jest szyfrowana na twoim komputerze hasłem, które wybierasz, a serwer przechowuje tylko zaszyfrowane bloki. Bez hasła nawet administrator serwera nie odczyta plików.

Jakie aplikacje działają z Seafile?

Klient synchronizacji Seafile na komputery z Windows, macOS i Linuksem, SeaDrive, który pokazuje biblioteki jako dysk sieciowy bez wcześniejszego pobierania, oraz aplikacje Seafile na iOS i Androida. Do każdego z nich logujesz się adresem serwera i swoim kontem.

Czy w Seafile mogę odzyskać usunięty albo starszy plik?

Tak. Każda biblioteka przechowuje historię swoich plików: polecenie Historia przy pliku pokazuje jego wcześniejsze wersje, a Kosz biblioteki trzyma usunięte pliki i katalogi do przywrócenia. Jak długo historia jest przechowywana, ustawia się osobno dla każdej biblioteki.

Ile pamięci i miejsca na dysku potrzebuje Seafile?

Seafile zajmuje około 750 MB pamięci razem z MariaDB i cache; twoje pliki zajmują tyle, ile ważą, plus ich historia. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

Seafile: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

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

Wolumeny, w nocnym backupie: 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:

Więcej w kategorii Pliki i dokumenty