How to Install Seafile to Sync and Share Files on CentOS 8

Seafile is an open-source, high-performance, secure and enterprise-ready file synchronization and sharing solution built using Python. It features simple data organization using libraries, fast, reliable and efficient synchronization between devices.

It comes with built-in encryption where a library is encrypted by a password chosen by you and files are encrypted before syncing to the server. Additional security is implemented through Two-factor authentication, virus scan for files, and remote wipe.

Recommended Read: How to Install Seafile on CentOS 7

It also supports backups and data recovery, file sharing and permission control (you can share libraries and directories to users or groups, with read-only or read-write permissions). Seafile also supports file histories (or versioning) and library snapshots which allow you to easily restore any file or directory/folder in the history.

Besides the Seafile Drive client lets you extend the local disk space with the massive storage capacity on the Seafile server by simply mapping storage space on the Seafile server as a virtual drive on the local machine.

This article shows how to easily deploy Seafile as a private cloud storage server with Nginx as the reverse proxy service and MariaDB database server on CentOS 8.

System Requirements:

  1. A fresh CentOS 8 installation server with 2 Cores, 2GB or more RAM, 1GB SWAP or more and 100GB+ storage space for Seafile data.

Installing Seafile File-Hosting Software on CentOS 8

1. If you are deploying the Seafile for the first time, we recommend that you use an automatic installation script to easily deploy Seafile service on the server using the following commands.

# cd /root
# wget --no-check-certificate https://raw.githubusercontent.com/haiwen/seafile-server-installer/master/seafile-7.1_centos
# bash seafile-7.1_centos 7.1.0

After invoking the script, you will be prompted to choose the edition of Seafile to install, select 1 for Community Edition(CE) and hit Enter.

Install Seafile Community Edition

Install Seafile Community Edition

2. Once the installation is complete, you will see the message in the following screenshot, showing the installation details/parameters.

Seafile Installation Summary

Seafile Installation Summary

The Seafile server package is made up of the following components:

  1. Seafile server (seaf-server) – the main data service daemon for handling raw file upload, download and sync. It listens on port 8082 by default.
  2. Ccnet server (ccnet-server) – the RPC (remote procedure call) service daemon which enables communication among multiple internal components.
  3. Seahub – the Django web front-end; it is powered by a light-weight Python HTTP server gunicorn (by default, Seahub runs as an application within gunicorn).

3. The Seafile root installation directory is /opt/seafile, you can view its contents using the ls command.

# cd /opt/seafile/
# ls -lA
Seafile Installation Directory Contents

Seafile Installation Directory Contents

4. Also, during the installation, the installer starts the Nginx, MariaDB, Seafile, Seahub services, and other required services for now, and enables them to automatically start after a system reboot.

To view the status of each service, run these commands (replace status with stop, start, restart, is-enabled, etc. to perform the corresponding action on a service).

# systemctl status nginx
# systemctl status mariadb
# systemctl status seafile
# systemctl status seahub

5. By default, you can access seahub using the address seafile.example.com. The Seafile configuration file for Nginx is /etc/nginx/conf.d/seafile.conf and here you can set your domain name as shown.

# vi /etc/nginx/conf.d/seafile.conf

Change the line:

server_name seafile.tecmint.lan;
to
server_name seafile.yourdomain.com;
Set Your Domain Name

Set Your Domain Name

6. Next, restart the Nginx service to effect the latest changes.

# systemctl restart nginx

7. If you have the firewalld service running, open the HTTP and HTTPS protocols in the firewall to allow requests to the Nginx server on port 80 and 443 respectively.

# firewall-cmd --zone=public --permanent –add-service=http
# firewall-cmd --zone=public --permanent –add-service=https
# firewall-cmd --reload

8. After setting up the all Seafile services, to access Seahub, open a web browser and point it to address (replace the domain name to what you set in the Nginx configuration file for Seafile).

http://seafile.tecmint.lan/

9. Wait for the seahub login interface to load. Then login with the admin user’s credentials created by the installer (run cat /opt/seafile/aio_seafile-server.log to view the installation log file and get the login credentials).

# cat /opt/seafile/aio_seafile-server.log
Seafile Admin Login Credentials

Seafile Admin Login Credentials

10. Enter your the seafile admin email and password in the following login interface.

Seafile Login Interface

Seafile Login Interface

11. Once logged in, you will see the Seahub admin user’s main administration interface. You can use it to edit settings; create, encrypt and share libraries, and more.

Seafile Main Dashboard

Seafile Main Dashboard

To enable HTTPS for Nginx, see this guide: How to Secure Nginx with Let’s Encrypt on CentOS 8

For more information, read the Seafile official documentation. And also remember to share your thoughts about Seafile with us via the feedback form below.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide
The Complete Linux System Administrator Bundle
Become an Ethical Hacker Bonus Bundle

You may also like...

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.