Seafile
Seafile is a high-performance, self-hosted file sync and share platform (a self-hosted Dropbox alternative) with optional client-side encrypted libraries and built-in online document editing via SeaDoc.
1Check prerequisites
Seafile Community Edition needs Docker plus Docker Compose 2.30.0 or newer, and at least 2GB RAM and a 2-core CPU.
docker --versiondocker compose version2Download the Compose files
Create a deployment directory and fetch the official env file and Compose manifests for the current release line (13.0).
mkdir /opt/seafile && cd /opt/seafilewget -O .env https://manual.seafile.com/13.0/repo/docker/ce/envwget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.ymlwget https://manual.seafile.com/13.0/repo/docker/seadoc.ymlwget https://manual.seafile.com/13.0/repo/docker/caddy.yml3Configure the .env file
Edit .env and set at minimum SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD, and a random 32+ character JWT_PRIVATE_KEY.
These values are only applied on first startup — changing .env afterwards does not update an already-initialized deployment.
4Start Seafile
docker compose up -d5First login
Data is persisted under /opt/seafile-data and /opt/seafile-mysql/db. Seahub listens on port 8000 by default (proxied by the bundled Caddy on 80/443).
Log in at http://your-domain with the INIT_SEAFILE_ADMIN_EMAIL / INIT_SEAFILE_ADMIN_PASSWORD you set in .env.