Seafile (self-hosted) - a powerful, open source, cross-platform file syncing and sharing service

Docker Seafile (self-hosted) - a powerful, open source, cross-platform file syncing and sharing service 2022-06-21

No permission to download
No permission to download
Seafile is a powerful, open source, cross-platform file syncing and sharing service. It is a self-hosted alternative for Dropbox, Google Drive, etc.

An overview of its capabilities is shown here. Not every feature is available in the self-hosted version. For example, in document search is not available in the self-hosted view, but otherwise, I've not come up missing a feature.

Let's break to the chase... Here's a docker-compose file to get you started:

version: '2.0'
    image: mariadb:10.5
    container_name: seafile-mysql
      - MYSQL_ROOT_PASSWORD=db_dev  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
      - /volume1/docker/seafile/mysql:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
      - seafile-net

    image: memcached:1.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
      - seafile-net
    image: seafileltd/seafile-mc:latest
    container_name: seafile
      - "8821:80"
#     - "443:443"  # If https is enabled, cancel the comment.
      - /volume1/docker/seafile/shared:/shared   # Requested, specifies the path to Seafile data persistent store.
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # Requested, the value should be root's password of MySQL service.
      - TIME_ZONE=America/Chicago  # Optional, default is UTC. Should be uncomment and set to your local time zone.
#      - [email protected] # Specifies Seafile admin user, default is '[email protected]'.
#      - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'.
#      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether to use https or not.
#      - # Specifies your host name if https is enabled.
      - db
      - memcached
      - seafile-net


Looking through the compose file, there are some things you might need to change. For example, the volume paths, the external port associated with container port 80, the environmental time zone variable, and the MySQL password shown as 'db_dev' (it appears twice, use the same password).

The compose file uses fixed releases for the MariaDB and Memcached containers. These were given by Seafile's compose template. It's possible these may run fine using the 'latest' tag, but for that, you are on your own.

Since I'm using a reverse proxy with my personal subdomain (ex., I've commented out the HTTPS port.

I presume that you can create the necessary persistent folders, and are familiar with running docker-compose via SSH, so I have not included that detail here.

Assuming all goes well, you should see the Seafile container log terminate with:


To log in the first time, use the credentials in the compose file...

[email protected]/asecret

After logging in, create a new user for yourself, and then promote yourself to administrator.

Log in again with your new personal admin account and delete the default admin '[email protected]'.

Next, edit the following settings:



That's it! Create some libraries, users, upload some files, share some files. Install your PC and mobile apps (download here).

Note: Unlike Synology Drive, files stored on the NAS are not directly accessible via SMB.

BTW... I wrote this on the Seafile web interface 😊

  • Like
Reactions: WST16

Similar resources

BitWarden - self hosted password manager using vaultwarden/server image Rusty
5.00 star(s) 11 ratings
Firefly III - self-hosted manager for your personal finances wwwampy
4.75 star(s) 4 ratings
FreshRSS: A free, self-hostable news feed aggregator fredbert
Installation and configuration of FreshRSS in docker, using SQLite or PostgreSQL database
5.00 star(s) 3 ratings
0.00 star(s) 0 ratings
Restyaboard - self-hosted, open source, Trello like kanban board wwwampy
0.00 star(s) 0 ratings
Tornote - Self-destructing notes (Docker) Rusty
Self-destructing notes written on Go with Stanford Javascript Crypto Library for client-side encrypt
0.00 star(s) 0 ratings