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:
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. seafile.mydomain.com), 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:
SERVICE_URL (ex. https://seafile.mydomain.com)
FILE_SERVER_ROOT (ex. https://seafile.mydomain.com/seafhttp)
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
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:
Code:
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /volume1/docker/seafile/mysql:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "8821:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /volume1/docker/seafile/shared:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- 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.
# - SEAFILE_SERVER_HOSTNAME=docs.seafile.com # Specifies your host name if https is enabled.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
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. seafile.mydomain.com), 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:
SERVICE_URL (ex. https://seafile.mydomain.com)
FILE_SERVER_ROOT (ex. https://seafile.mydomain.com/seafhttp)
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
