Skip to content

halsbox/docker-seaf-cli

Repository files navigation

Share a Seafile library as a volume to other containers.

Supported tags

2, 2.1, 2.1.1, latest

Informations

  • Synchronize a single Seafile library, available at the path `/library/'.
  • Password protected librairies are supported.
  • Two factor authentication is supported.
  • Upload and download speeds are configurable.
  • SSL certificates are skippable.

Usage

Required configuration

SEAF_SERVER_URL, SEAF_USERNAME, SEAF_PASSWORD, SEAF_LIBRARY_UUID
Provide your Seafile server URL, username, password and library UUID to synchronise your library at /library, then share it as a volume.

The seaf-cli is ran within the container as the user seafuser.

Optional configurations

SEAF_2FA_SECRET
Two factor authentication is supported but your secret key must be provided. That key can be found on your Seafile web interface, only at the 2FA setup, when the QR code is shown. The secret key is embedded in the QR or available as a cookie.

SEAF_LIBRARY_PASSWORD
Password protected librairies can be sync provided with the password.

SEAF_UPLOAD_LIMIT, SEAF_DOWNLOAD_LIMIT
Upload and download speeds are configurable as absolute bytes.

SEAF_SKIP_SSL_CERT
Skip SSL certificates verifications. Any string is considered true, omit the variable to set to false. Enable this if you have synchronization failures regarding SSL certificates.

UID, GID
Override the UID and GID for volume read/write permissions.

Examples

As a Docker command

docker run \ 
    -e SEAF_SERVER_URL=https://seafile.example/ \
    -e SEAF_USERNAME=a_seafile_user \
    -e SEAF_PASSWORD=SoMePaSSWoRD \
    -e SEAF_LIBRARY_UUID=an-hexadecimal-library-uuid \
    -v path/to/shared/volume:/library \
    flowgunso/seafile-client:latest

As a Docker Compose

services:

  seafile-client:
    image: flowgunso/seafile-client:latest
    volumes:
      - shared_volume:/library
    environment:
      SEAF_SERVER_URL: "https://seafile.example/"
      SEAF_USERNAME: "a_seafile_user"
      SEAF_PASSWORD: "SoMePaSSWoRD"
      SEAF_LIBRARY_UUID: "an-hexadecimal-library-uuid"

volumes:
  shared_volume:

With all optional configurations

services:

  seafile-client:
    image: flowgunso/seafile-client:latest
    volumes:
      - shared_volume:/library
    environment:
      SEAF_SERVER_URL: "https://seafile.example/"
      SEAF_USERNAME: "a_seafile_user"
      SEAF_PASSWORD: "SoMePaSSWoRD"
      SEAF_LIBRARY_UUID: "an-hexadecimal-library-uuid"
      SEAF_2FA_SECRET: "JBSWY3DPEHPK3PXPIXDAUMXEDOXIUCDXWC32CS"
      SEAF_LIBRARY_PASSWORD: "LiBRaRyPaSSWoRD"
      SEAF_UPLOAD_LIMIT: "1000000"
      SEAF_DOWNLOAD_LIMIT: "1000000"
      SEAF_SKIP_SSL_CERT: "true"
      UID: "1000"
      GID: "1000"

volumes:
  shared_volume:

Or use the docker-compose.yml template.