Português
Começar

← Todos os templates · Arquivos e documentos

Faça deploy de Seafile em um clique

Sincronização e compartilhamento de arquivos: bibliotecas sincronizadas com seus computadores e celulares, com histórico e links

Uma alternativa auto-hospedada para Dropbox e Google Drive.

O que é Seafile?

O Seafile é um software de código aberto para sincronizar e compartilhar arquivos, usado no lugar do Dropbox ou do Google Drive. Os arquivos ficam em bibliotecas: cada uma sincroniza com o app desktop no Windows, no macOS e no Linux, e os apps para iOS e Android navegam pelos arquivos e enviam novos. O Seafile guarda o histórico de cada arquivo, então uma versão anterior ou um arquivo excluído volta, e uma biblioteca pode ser criptografada com uma senha própria, para que o servidor guarde só o que não consegue ler.

As bibliotecas são compartilhadas com usuários e grupos, só para leitura ou para edição, e um link de compartilhamento entrega um arquivo ou uma pasta a qualquer pessoa, com senha e data de expiração se você quiser; um link de upload deixa outras pessoas enviarem arquivos. O Seafile é conhecido por sincronizar muitos arquivos rápido: ele transfere só os blocos de um arquivo que mudaram.

Este template roda a edição Community da imagem oficial do Seafile, versão 14.0, com MariaDB e um cache Redis. Os bancos de dados e o admin, com o e-mail e a senha que você informa, são criados no primeiro início; o cadastro continua desativado. O SeaDoc, o editor de documentos online do Seafile, e os servidores de notificações e de metadados dele não estão incluídos.

Hospedagem de Seafile no Pethost

  1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
  2. Novo projeto abre em Seafile. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  3. Em um ou dois minutos Seafile está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
  4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

Perguntas sobre Seafile

O Seafile é gratuito e de código aberto?

Sim. A edição Community do Seafile é de código aberto: o servidor sob a AGPL-3.0 e a interface web, o Seahub, sob a Apache License 2.0. A Seafile Ltd. também vende uma edição Professional, com recursos para organizações maiores.

Seafile ou Nextcloud: qual escolher?

O Seafile faz uma coisa só, sincronizar e compartilhar arquivos, e é conhecido por sincronizar rápido com pouca memória. O Nextcloud é uma suíte maior, com calendário, contatos, pacote office e muitos apps em volta dos arquivos, e precisa de mais recursos.

O Seafile criptografa meus arquivos?

Sim, se você quiser. Uma biblioteca criptografada é criptografada no seu computador com uma senha que você escolhe, e o servidor guarda só os blocos criptografados. Sem a senha, nem o admin do servidor consegue ler os arquivos.

Quais apps funcionam com o Seafile?

O cliente de sincronização desktop do próprio Seafile, para Windows, macOS e Linux, o SeaDrive, que mostra as bibliotecas como uma unidade de rede sem baixá-las antes, e os apps do Seafile para iOS e Android. Cada um entra com o endereço do servidor e a sua conta.

Posso recuperar no Seafile um arquivo excluído ou uma versão antiga?

Sim. Cada biblioteca guarda o histórico dos seus arquivos: “Histórico”, num arquivo, mostra as versões anteriores dele, e a lixeira da biblioteca guarda arquivos e pastas excluídos para restaurar. Por quanto tempo o histórico fica guardado é definido em cada biblioteca.

De quanta memória e disco Seafile precisa?

O Seafile usa cerca de 750 MB de memória com o MariaDB e o cache dele; os seus arquivos ocupam o que ocupam, mais o histórico deles. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

Arquivo Docker Compose de Seafile

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

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

Volumes, no backup noturno: 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:

Mais em Arquivos e documentos