Installazione Seafile · 10 min read · Sep 14, 2025

Come installare Seafile Cloud Storage self-hosted su Debian 12

Seafile è un sistema di hosting file open-source scritto nel framework web Django. È un software multipiattaforma che offre un insieme di funzionalità di archiviazione cloud e consente agli utenti di memorizzare, gestire e condividere file all’interno dell’ecosistema Seafile.

In Seafile, i file sono memorizzati nel server centrale e possono essere sincronizzati con i client su più dispositivi e telefoni cellulari. Seafile è un’alternativa ai servizi di hosting file come Google Drive, Dropbox e Mega.nz. Con Seafile, puoi costruire una soluzione di condivisione file per le tue applicazioni cloud private.

Questo articolo ti guiderà nell’installazione di Seafile su un server Debian 12 con MariaDB come database, Nginx come reverse proxy e HTTPS tramite Letsencrypt e UFW (Uncomplicated Firewall) per proteggere Seafile.

Prerequisiti

Per iniziare con questa guida, assicurati di avere i seguenti requisiti:

  • Un server Debian 12
  • Un utente non root con privilegi di amministratore
  • Un nome di dominio puntato all’indirizzo IP del server

Installazione delle dipendenze

Seafile è scritto nel framework web Django, che si basa su Python. Per installare Seafile, devi assicurarti che Python sia installato. Inoltre, avrai bisogno di dipendenze come MariaDB/MySQL come database, Nginx come reverse proxy e Memcached o Redis per la gestione delle sessioni e della cache. In questa sezione, installerai quei pacchetti tramite il gestore pacchetti APT.

Per prima cosa, esegui il comando qui sotto per aggiornare l’indice dei pacchetti Debian.

sudo apt update

Ora esegui il seguente comando per installare dipendenze come Python3, server MariaDB, server web Nginx, Memcached e alcune librerie aggiuntive nel tuo sistema.

sudo apt install mariadb-server nginx python3 python3-dev python3-setuptools python3-pip libmariadb-dev-compat ldap-utils libldap2-dev libsasl2-dev python3.11-venv memcached libmemcached-dev

Inserisci ‘ Y ‘ per confermare l’installazione.

install dependencies

Dopo che l’installazione è completata, controlla il server MariaDB con il comando qui sotto.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Nell’output seguente, puoi vedere che il server MariaDB è abilitato e in esecuzione.

check mariadb service

Ora controlla il servizio Nginx utilizzando il seguente comando.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Puoi vedere qui sotto che il server web Nginx è in esecuzione e abilitato.

check nginx service status

Infine, controlla il servizio Memcached per assicurarti che sia in esecuzione. Il servizio Memcached dovrebbe essere in esecuzione e abilitato.

sudo systemctl is-enabled memcached  
sudo systemctl status memcached

Check memcached service

Configurazione del server MariaDB

Ora che hai installato MariaDB, il passo successivo sarà configurare e proteggere il deployment del server MariaDB. Poi, creerai un nuovo utente MariaDB con più database che saranno utilizzati da Seafile. Proteggerai MariaDB con il comando ‘ mariadb-secure-installation ‘ e utilizzerai il client ‘ mariadb ‘ per creare nuovi utenti e database.

Esegui il comando ‘ mariadb-secure-installation ‘ qui sotto per proteggere l’installazione del tuo server MariaDB.

sudo mariadb-secure-installation

Ora ti verrà chiesto di configurare quanto segue:

  • Per l’installazione predefinita del server MariaDB senza una password root, premi ENTER quando ti viene chiesto della password.
  • L’autenticazione locale per gli utenti root di MariaDB è protetta per impostazione predefinita, inserisci ‘ n ‘ quando ti viene chiesto di cambiare il metodo di autenticazione in ‘ unix_socket ‘.
  • Inserisci ‘ Y ‘ per creare una nuova password root di MariaDB. Poi, inserisci la password forte per il tuo utente root di MariaDB e ripetila.
  • Quando ti viene chiesto di disabilitare l’autenticazione remota per l’utente root di MariaDB, inserisci ‘ Y ‘ per accettare.
  • Inserisci ‘ Y ‘ per rimuovere il database predefinito ‘test’ e rimuovere il privilegio anonimo.
  • Infine, inserisci ‘ Y ‘ per confermare il ricaricamento dei privilegi delle tabelle.

Ora che hai configurato la password root di MariaDB e protetto MariaDB, creerai nuovi database e un utente per l’installazione di Seafile.

Esegui il comando ‘ mariadb ‘ qui sotto per accedere al server MariaDB. Inserisci la tua password root di MariaDB quando richiesto.

sudo mariadb -u root -p

Crea un nuovo utente ‘ seafile ‘ con la seguente query. Assicurati di cambiare la seguente password con una nuova password sicura.

create user 'seafile'@'localhost' identified by 'password';

Esegui le seguenti query per creare i nuovi database ‘ ccnet_db ‘, ‘ seafile_db ‘ e ‘ seahub_db ‘.

create database ccnet_db character set = 'utf8';  
create database seafile_db character set = 'utf8';  
create database seahub_db character set = 'utf8';

Successivamente, esegui le query qui sotto per consentire all’utente ‘ seafile ‘ di accedere ai database Seafile.

GRANT ALL PRIVILEGES ON ccnet_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seafile_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seahub_db.* to seafile@localhost;

create database and user

Ora controlla i privilegi per l’utente ‘ seafile ‘ per garantire accesso e privilegi ai database ‘ ccnet_db ‘, ‘ seafile_db ‘ e ‘ seahub_db ‘.

SHOW GRANTS FOR seafile@localhost;

Infine, digita ‘ quit ‘ per uscire dal server MariaDB.

check user privileges and exit

Installazione delle dipendenze Python

In questa sezione, creerai un nuovo utente di sistema per eseguire Seafile, creerai una directory di installazione e un ambiente virtuale Python, e poi installerai le dipendenze Python utilizzando il comando ‘ pip ‘.

Per prima cosa, aggiungi un nuovo utente ‘ seafile ‘ con il seguente comando.

sudo adduser seafile

add user

Ora crea una nuova directory di installazione ‘ /opt/seafile ‘ e spostati in essa.

mkdir -p /opt/seafile; cd /opt/seafile

Esegui il comando qui sotto per creare un ambiente virtuale Python ‘ venv ‘ e attivalo. Una volta attivato, il tuo shell dovrebbe diventare come ‘ (venv) user@hostname # ‘.

python3 -m venv venv  
source venv/bin/activate

setting up venv

Successivamente, esegui il comando ‘ pip3 ‘ qui sotto per installare le dipendenze Python per Seafile. Questi pacchetti devono essere installati all’interno dell’ambiente virtuale ‘ venv ‘.

pip3 install --timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3

Install Python dependencies

Dopo che l’installazione è completata, cambia la proprietà della directory ‘ /opt/seafile ‘ all’utente ‘ seafile ‘ utilizzando il comando qui sotto.

sudo chown -R seafile: /opt/seafile

Download e installazione di Seafile

A questo punto, sei pronto per installare Seafile. Ora scaricherai il codice sorgente di Seafile, lo installerai con MariaDB e Memcached, aggiungerai il nome di dominio di Seafile tramite la configurazione predefinita e poi avvierai manualmente il processo di Seafile.

Esegui il seguente comando per accedere come utente ‘ seafile ‘ e andare nella directory ‘ /opt/seafile ‘.

su seafile  
cd /opt/seafile

Scarica il codice sorgente di Seafile ed estrailo utilizzando il seguente comando. In questo esempio, installerai Seafile 11, assicurati di controllare la pagina di download di Seafile per ottenere l’ultima versione.

wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_11.0.12_x86-64.tar.gz  
tar xf seafile-server_11.0.12_x86-64.tar.gz

Ora attiva l’ambiente virtuale ‘ venv ‘ con il seguente:

source venv/bin/activate

Vai nella directory ‘ seafile-server-11.0.12 ‘ ed esegui lo script ‘ setup-seafile-mysql.sh ‘. Con questo, installerai Seafile sul tuo sistema con MariaDB come database.

cd seafile-server-11.0.12  
./setup-seafile-mysql.sh

Ora ti verranno chieste le seguenti configurazioni di Seafile:

  • Inserisci il nome del tuo server Seafile.
  • Inserisci il tuo dominio per l’installazione di Seafile.
  • Inserisci ‘ 2 ‘ per integrare Seafile con i database e l’utente MySQL/MariaDB esistenti.
  • Inserisci i dettagli dell’host MariaDB, porta, utente e password.
  • Inserisci il database per ccnet come ‘ ccnet_db ‘, seafile come ‘ seafile_db ‘ e seahub come ‘ seahub_db ‘.
  • Premi ENTER per confermare l’installazione e completare la configurazione.

installing seafile with MySQL/MariaDB

installation complete

Dopo che la configurazione è terminata, modificherai la configurazione di Seafile per eseguirlo sotto il reverse proxy Nginx.

Vai nella directory ‘ /opt/seafile/conf ‘ e apri il file ‘ seahub_settings.py ‘ con l’editor ‘ nano ‘.

cd /opt/seafile/conf  
nano seahub_settings.py

Aggiungi il tuo nome di dominio all’opzione ‘ SERVICE_URL ‘ e assicurati di includere ‘ https ‘ all’inizio.

SERVICE_URL = 'https://seafile.howtoforge.local'

Aggiungi l’opzione ‘ FILE_SERVER_ROOT ‘ come segue con il tuo nome di dominio.

FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'

Infine, aggiungi l’impostazione ‘ CACHES ‘ per integrare Seafile con il sistema di cache Memcached.

CACHES = {  
'default': {  
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',  
'LOCATION': '127.0.0.1:11211',  
},  
}

Quando hai finito, salva il file ed esci dall’editor.

Ora torna nella directory ‘ /opt/seafile/seafile-server-latest/ ‘ ed esegui gli script ‘ seafile.sh ‘ e ‘ seahub.sh ‘ per eseguire Seafile.

cd /opt/seafile/seafile-server-latest/  

./seafile.sh start  
./seahub.sh start

Quando Seafile si avvia, vedrai un output ‘ Seafile server started ‘. Ti verrà anche chiesto di impostare un utente amministratore per Seafile, quindi assicurati di inserire il tuo nome utente, email e password.

Start Seafile and Seahub

Configurazione di Nginx come reverse proxy

Ora che Seafile è attivo e funzionante con MariaDB e Memcached, il passo successivo è configurare Nginx come reverse proxy per Seafile. Assicurati di avere un nome di dominio pronto e puntato all’indirizzo IP del tuo server.

Crea una nuova configurazione del blocco server Nginx ‘ /etc/nginx/sites-available/seafile ‘ con l’editor ‘ nano ‘.

sudo nano /etc/nginx/sites-available/seafile

Inserisci la configurazione qui sotto e assicurati di cambiare l’opzione ‘ server_name ‘ con il tuo nome di dominio.

log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';  
  
server {  
listen 80;  
server_name seafile.howtoforge.local;  
  
proxy_set_header X-Forwarded-For $remote_addr;  
  
location / {  
proxy_pass http://127.0.0.1:8000;  
proxy_set_header Host $http_host;  
proxy_set_header X-Real-IP $remote_addr;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header X-Forwarded-Host $server_name;  
proxy_read_timeout 1200s;  
  
# usato per visualizzare/modificare file di ufficio tramite Office Online Server  
client_max_body_size 0;  
  
access_log /var/log/nginx/seahub.access.log seafileformat;  
error_log /var/log/nginx/seahub.error.log;  
}  
  
location /seafhttp {  
rewrite ^/seafhttp(.*)$ $1 break;  
proxy_pass http://127.0.0.1:8082;  
client_max_body_size 0;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  
proxy_connect_timeout 36000s;  
proxy_read_timeout 36000s;  
proxy_send_timeout 36000s;  
  
send_timeout 36000s;  
  
access_log /var/log/nginx/seafhttp.access.log seafileformat;  
error_log /var/log/nginx/seafhttp.error.log;  
}  
location /media {  
root /opt/seafile/seafile-server-latest/seahub;  
}  
}

Salva ed esci dal file quando hai finito.

Ora esegui il comando qui sotto per attivare il blocco server ‘seafile’ e verificare la sintassi di Nginx. Vedrai un output ‘ syntax is ok - test is successful ‘ quando hai una corretta configurazione di Nginx.

sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/  
sudo nginx -t

Infine, esegui il comando qui sotto per riavviare il server web Nginx e applicare le tue modifiche.

sudo systemctl restart nginx

setup Nginx as a reverse proxy

Proteggere Seafile con UFW e HTTPS

Dopo aver configurato Nginx come reverse proxy, proteggerai Seafile con HTTPS e UFW (Uncomplicated Firewall). Installerai UFW e Certbot, aprendo servizi come SSH, HTTP e HTTPS, e poi genererai nuovi certificati SSL con Certbot da Letsencrypt.

Per prima cosa, esegui il comando qui sotto per installare i pacchetti ‘ ufw ‘ e ‘ certbot ‘.

sudo apt install ufw certbot -y

install certbot and ufw

Ora esegui il comando qui sotto per abilitare i profili ‘ OpenSSH ‘ e ‘ Nginx Full ‘. Il profilo ‘ OpenSSH ‘ aprirà la porta SSH predefinita ‘ 22 ‘, e il profilo ‘ Nginx Full ‘ consentirà sia le connessioni HTTP che HTTPS al server.

sudo ufw allow OpenSSH  
sudo ufw allow 'Nginx Full'

Successivamente, esegui il seguente comando per avviare e abilitare UFW. Inserisci ‘ y ‘ per confermare, e vedrai un output ‘ Firewall is active and enabled at system startup ‘.

sudo ufw enable

enable ufw

Infine, puoi ora generare certificati SSL e proteggere la tua installazione di Seafile con il comando ‘ certbot ‘ qui sotto. Assicurati di cambiare il nome di dominio e l’indirizzo email con le tue informazioni.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.local

Dopo che il processo è completato, il tuo Seafile dovrebbe essere protetto con HTTPS e i tuoi certificati saranno disponibili nella directory ‘ /etc/letsencrypt/live/domain.com ‘.

Accesso a Seafile

Apri il tuo browser web e visita il tuo nome di dominio Seafile come https://seafile.howtoforge.local. Se l’installazione è riuscita, ti verrà mostrata la pagina di accesso di Seafile.

Inserisci il tuo indirizzo email amministrativo e la password, quindi fai clic su ‘ Accedi ‘.

Login Seafile

Se hai le credenziali amministrative corrette, puoi vedere il seguente cruscotto di Seafile.

dashboard

Puoi ora provare a caricare file su Seafile per garantire che l’installazione sia riuscita.

Conclusione

Congratulazioni! Hai completato l’installazione di Seafile Cloud Storage self-hosted sul server Debian 12. Hai Seafile attivo e funzionante con il server database MariDB e Nginx come reverse proxy. Hai anche protetto Seafile con UFW (Uncomplicated Firewall) e SSL tramite Certbot e Letsencrypt. Ora che Seafile è installato, puoi integrare Seafile con altre applicazioni come ONLYOFFICE Document Server o LibreOffice Online (Collabora Online).

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.