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:
docker.seadrive.org
, i.e. docker login docker.seadrive.org
Note the 4 core and 4GB RAM requirement.
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:
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).