Русский
Начать

← Все шаблоны · Файлы и документы

Задеплойте Seafile в один клик

Синхронизация и обмен файлами: библиотеки синхронизируются с вашими компьютерами и телефонами, есть история и ссылки

Альтернатива Dropbox и Google Drive на вашей машине.

Что такое Seafile?

Seafile — программа с открытым кодом для синхронизации файлов и обмена ими, которую используют вместо Dropbox или Google Drive. Файлы живут в библиотеках: каждая синхронизируется с приложением для компьютера на Windows, macOS и Linux, а приложения для iOS и Android позволяют просматривать и загружать файлы. Seafile хранит историю каждого файла, поэтому можно вернуть прежнюю версию или удаленный файл, а библиотеку можно зашифровать отдельным паролем, и тогда сервер хранит только то, что не может прочитать.

Библиотеками делятся с пользователями и группами, только для чтения или с правом правки, а общедоступная ссылка открывает файл или папку кому угодно, при желании с паролем и сроком действия; ссылка для загрузки позволяет другим загружать туда файлы. Seafile известен тем, что быстро синхронизирует большое число файлов: он передает только изменившиеся блоки файла.

Этот шаблон запускает Seafile Community Edition из официального образа Seafile версии 14.0 с MariaDB и кешем на Redis. Базы данных и администратор с почтой и паролем, которые вы указали, создаются при первом запуске; регистрация остается выключенной. SeaDoc, онлайн-редактор документов Seafile, и его серверы уведомлений и метаданных в шаблон не входят.

Хостинг Seafile на Pethost

  1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
  2. Окно «Новый проект» открывается на приложении Seafile. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Электронная почта, Пароль администратора.
  3. Через минуту-две Seafile работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
  4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

Вопросы про Seafile

Seafile бесплатный и с открытым кодом?

Да. Seafile Community Edition распространяется с открытым кодом: сервер — под лицензией AGPL-3.0, а его веб-интерфейс Seahub — под Apache License 2.0. Seafile Ltd. также продает Professional Edition с возможностями для крупных организаций.

Seafile или Nextcloud: что выбрать?

Seafile делает одно — синхронизирует файлы и дает ими делиться — и известен тем, что синхронизирует быстро и с небольшим расходом памяти. Nextcloud — более крупный набор с календарем, контактами, офисом и множеством приложений вокруг файлов, и ему нужно больше ресурсов.

Шифрует ли Seafile мои файлы?

Может. Зашифрованная библиотека шифруется на вашем компьютере паролем, который вы выбираете, а сервер хранит только зашифрованные блоки. Без пароля даже администратор сервера не прочитает файлы.

Какие приложения работают с Seafile?

Собственный клиент синхронизации Seafile для компьютеров на Windows, macOS и Linux, SeaDrive, который показывает библиотеки как сетевой диск, не скачивая их заранее, и приложения Seafile для iOS и Android. Каждое из них входит по адресу сервера и с вашим аккаунтом.

Можно ли вернуть удаленный или старый файл в Seafile?

Да. Каждая библиотека хранит историю своих файлов: «История» у файла показывает его прежние версии, а «Корзина» библиотеки хранит удаленные файлы и папки, чтобы их можно было восстановить. Сколько хранится история, задается для каждой библиотеки отдельно.

Сколько памяти и диска нужно Seafile?

Seafile занимает около 750 MB памяти вместе с MariaDB и кешем; ваши файлы занимают столько, сколько весят, плюс их история. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

Seafile: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

Контейнеры: seafile (seafileltd/seafile-mc:14.0-latest), db (mariadb:10.11), redis (redis:8-alpine).

Тома, в ночном бэкапе: 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:

Еще в категории «Файлы и документы»