Seafile...
..is an open source file sync&share solution designed for high reliability, performance and productivity. Sync, share and collaborate across devices and teams.(SeaFile.com)
Here we have a powerful suite: service, desktop/mobile clients, cli and web interface. A good private alternative to public clouds.
Features includes storage, sharing, security and LDAP integration.
Here's a video review
Compose
For this configuration the host just need allow services using the web ports(80,443).
The docker compose sets 3 containers: mariadb, memcached and seafile.
The seafile container responds to the service. It have a proxy nginx redirecting que request to internal service listen at port 8000.
Let's Encrypt
To use Let's Encrypt, you must set this parameters:
ports:
...
- "443:443"
...
environment:
...
- SEAFILE_SERVER_LETSENCRYPT=true
- SEAFILE_SERVER_HOSTNAME=your.domain.com
The domain your.domain.com must be valid and internet reachable, or the LetsEncrypt handshakes wont work.
MariaDB Connection and SeaFile Authentication
You must check the database connection.
Change the value db_secret for your mysql connection password.
MYSQL_ROOT_PASSWORD=db_secret must be the same value of DB_ROOT_PASSWD=db_secret.
DB_HOST=db must be the same of the mariadb service name db.
services:
db:
...
environment:
- MYSQL_ROOT_PASSWORD=db_secret
seafile:
...
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_secret
The SeaFile Authentication uses e-mail as login name.
Change the value a_secret for your admin password.
services:
...
seafile:
...
environment:
- SEAFILE_ADMIN_EMAIL=me@example.com
- SEAFILE_ADMIN_PASSWORD=a_secret
Deploy SeaFile
Requirements
- Docker(19.03+)
- Docker-Compose (2.0+)
Deploy:
clone repository
git clone https://gitlab.com/cedon/seafile.git
here two ways to deploy:
1.official seafile sample docker-compose.yaml file.
1.1. edit compose file seafile/docker-compose.yml
1.2. deploy infrastructure
docker-compose -f seafile/docker-compose.yaml up -d
2.setting the parameters on .env files.
2.1. set the environment parameters on files:
- mariadb:env/db.env
- seafile:env/seafile.env
2.2. deploy infrastructure
docker-compose -f seafile/docker-compose.sec.yaml up -d
Setting Up the service
After the deploy, you must access System Admin > Settings
Set the Service URL: http://your.domain.com:8000
Set the File Server Root: http://your.domain.com/seafhttp
References
SeaFile Project - www.seafile.com
Cedon's SeaFile Example Repository - gitlab.com/cedon/seafile
Top comments (4)
I think it's a better idea to give each service an own env file to pass the required info to the service, instead of editing a file which is subjected under version control.
If that's too complicated for you, a docker-compose.override.yml will work fine as well.
The core idea is to keep the configuration dynamic and prevent harm of an accidental commit + push.
thanks, i'll fix it
Thanks for sharing this stack.
Is seafile safe? I mean, I'm bit cautious with chinese's file management 😅
I never had any problems