Deploying A Private Storage Cloud (SeaFile) Using Docker

cedon

Carlos Nogueira

Posted on October 18, 2019

Deploying A Private Storage Cloud (SeaFile) Using Docker

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
Enter fullscreen mode Exit fullscreen mode

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 
Enter fullscreen mode Exit fullscreen mode

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 
Enter fullscreen mode Exit fullscreen mode

Deploy SeaFile

Requirements

  • Docker(19.03+)
  • Docker-Compose (2.0+)

Deploy:

clone repository

git clone https://gitlab.com/cedon/seafile.git
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

2.setting the parameters on .env files.

2.1. set the environment parameters on files:

2.2. deploy infrastructure

docker-compose -f seafile/docker-compose.sec.yaml up -d
Enter fullscreen mode Exit fullscreen mode

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

💖 💪 🙅 🚩
cedon
Carlos Nogueira

Posted on October 18, 2019

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related