Installation
Seafile Professional Edition
See below for the community edition installation instructions.
As of 2021-08-09, Seafile provides a free 3-seat professional edition, which only requires an account registration at their customer center. Head over to the downloads page to retrieve either:
- The server install package (more appropriate for production environments)
- The login credentials to
docker.seadrive.org, i.e.docker login docker.seadrive.org
Note the 4 core and 4GB RAM requirement.
Seafile Community Edition
Contrary to expectations online, setup was pretty easy, and it helps to have a tailored user guide. This is facilitated by the docker-compose.yml initialization file to set the service up pretty smoothly.
Download the docker-compose.yml file from the Seafile servers (which in turn is specified in the server installation manual). This file looks something like the file below, retrieved on 2021-06-27, noting the parts you'll need to change:
- docker-compose.yml
version: '2.0' services: db: image: mariadb:10.5 container_name: seafile-mysql environment: - MYSQL_ROOT_PASSWORD=RER63IZQ8hUTdeo # change me - MYSQL_LOG_CONSOLE=true volumes: - /opt/seafile-mysql/db:/var/lib/mysql networks: - seafile-net memcached: image: memcached:1.5.6 container_name: seafile-memcached entrypoint: memcached -m 256 networks: - seafile-net seafile: image: seafileltd/seafile-mc:latest container_name: seafile ports: - "3100:80" volumes: - /opt/seafile-data:/shared environment: - DB_HOST=db - DB_ROOT_PASSWD=RER63IZQ8hUTdeo # change me, same as MySQL root password - TIME_ZONE=Asia/Singapore - SEAFILE_ADMIN_EMAIL=myemail@example.com # change to preferred email address - SEAFILE_ADMIN_PASSWORD=myfancypassword # change to preferred admin password - SEAFILE_SERVER_LETSENCRYPT=false - SEAFILE_SERVER_HOSTNAME=cloud.pyuxiang.com # change to server address depends_on: - db - memcached networks: - seafile-net networks: seafile-net:
In the same directory, run docker-compose up -d to pull the images and create the required containers. Setup will be complete when the log message "Seahub is started. Done." shows up in docker logs seafile.
Ensure that the nginx or your preferred webserver redirects to the exposed port, and then use certbot to get the HTTPS certificate in.
server {
listen 80;
listen [::]:80;
server_name cloud.pyuxiang.com; # change me
location / {
proxy_pass http://127.0.0.1:3100;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
}
}
Once done, the Seafile GUI will appear when accessing the subdomain:
Additional information configuration step: Change the protocol of the service headers from http to https under the system administration settings page. This will avoid blocking of uploads/downloads due to the mixed content policies of web browsers (i.e. serving HTTP content while in a HTTPS connection).


