Seafile è un software di file hosting gratuito con funzionalità simili a Dropbox o Google Drive che può essere installato sul tuo server. Seafile è rilasciato con una licenza OpenSource. Puoi creare la tua sincronizzazione di file sicura e condividere server con seafile, è un software di condivisione file affidabile che consente agli utenti di crittografare i propri dati sul server. Seafile è scritto in C e python.
In questo tutorial, ti mostrerò come creare la tua sincronizzazione di file e condividere il server con seafile su openSUSE Leap 42.1. Ti guideremo attraverso l'installazione di seafile e quindi configureremo la GUI web con crittografia https dietro un server proxy inverso nginx.
Prerequisito
- OpenSUSE Leap 42.1 - 64 bit
- Privilegi di root
- Comprendi il comando zypper
Passaggio 1:configura il nome host
Accedi al tuo server openSUSE:
ssh [email protected]
dopo aver effettuato l'accesso al server, modifica il file hosts con vim:
vim /etc/hosts
Incolla la configurazione (sostituisci l'IP e il nome host con i tuoi valori):
192.168.1.101 cloud.kuonseafile.co cloud
Salva ed esci.
Nota:
192.168.1.101 =indirizzo IP del mio server.
Cloud =il nome host del mio server.
kuonseafile.co =il mio nome di dominio.
Verifica nome host e FQDN (Fully Qualified Domain Name):
hostname
hostname -f
Passaggio 2:installazione delle dipendenze
Seafile è scritto in python, quindi abbiamo bisogno di diverse librerie python per l'installazione. Per il database, seafile supporta SQLite e MySQL, in questo tutorial utilizzerò un database MySQL che offre prestazioni migliori rispetto a SQLite.
Installa tutti i pacchetti incluso il server MySQL/MariaDB con il comando zypper di seguito:
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client
Al termine dell'installazione, vai al passaggio successivo.
Passaggio 3:configurazione del database
C'è una cosa che dovresti sapere quando vuoi distribuire seafile. Seafile ha bisogno di 3 database:
- database ccnet
- database Seafile
- database seahub
Al passaggio 2 abbiamo installato correttamente il server MySQL/MariaDB, ora avvialo con il comando seguente:
rcmysql start
Imposta una nuova password per l'utente root mysql con il comando mysqladmin:
/usr/bin/mysqladmin -u root password 'aqwe123'
Quindi, accedi alla shell MySQL e crea 3 database per seafile e un nuovo utente per quei 3 database.
Accedi alla shell MySQL:
mysql -u root -p
DIGITARE PASSWORD "aqwe123"
Crea i tre database per l'installazione di seafile: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';
E crea un nuovo utente seafilecloud con la password '[email protected]':
create user [email protected] identified by '[email protected]';
Ora concedi l'accesso per l'utente seafilecloud a tutti i database:
grant all privileges on ccnet_db.* to [email protected] identified by '[email protected]';
grant all privileges on seafile_db.* to [email protected] identified by '[email protected]';
grant all privileges on seahub_db.* to [email protected] identified by '[email protected]';
flush privileges;
Tutti i database sono pronti per l'installazione di seafile.
Fase 4 - Installa e configura Seafile
In questo passaggio installeremo e configureremo seafile. Installeremo seafile sotto l'utente seafile e la directory home, quindi dobbiamo creare un nuovo utente Linux con il nome "seafile".
Crea il nuovo utente
Crea un nuovo utente con il nome seafile per l'installazione:
useradd -m -s /bin/bash seafile
Nota:
-m =Crea una nuova home directory per l'utente in "/home/".
-s /bin/bash =Definisci la shell per l'utente.
Scarica Seafile
Passa all'utente seafile con il comando su di seguito:
su - seafile
Ora sei nella home directory di seafile, scarica il server 5 di seafile con il comando wget:
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz
Estrarre l'archivio seafile e rinominarlo:
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
Installa Seafile 5
Vai alla directory seafile-server ed esegui il file di installazione per installare seafile:
cd seafile-server/
Installeremo seafile con il database MySQL, quindi esegui il file di installazione MySQL:
./setup-seafile-mysql.sh
Ora ti verranno chiesti i dettagli del server.
nome server =usa il nome host del server.
IP server o dominio =usa l'indirizzo IP del mio server.
Seafile Data direcoty =basta premere Invio.
Porta per il file server seafile =basta premere Invio.
Quindi, configura il database. Abbiamo creato il nostro database per l'installazione, quindi scegli il numero "2" .
Ora ti verrà chiesto del profilo del database:
Host di MySQL =L'impostazione predefinita è localhost.
Porta predefinita =3306.
Utente MySQL per seafile =Utilizza l'utente che abbiamo creato nel passaggio 3 - "seafilecloud".
Password MySQL =password per l'utente seafilecloud.
database ccnet =Abbiamo creato il databsae - ccnet_db.
database seafile =seafile_db.
database seahub =seahub_db.
Se non si sono verificati errori, puoi confermare l'installazione premendo "Invio".
attendi che lo script generi la configurazione e il database.
Avvia Seafile e Seahub
Seafile è installato, ora puoi avviarlo con il comando seguente:
./seafile.sh start
./seahub.sh start
Ti verrà chiesto di creare un utente amministratore per seafile, inserisci l'email e la password di amministratore.
A questo punto, puoi accedere alla GUI web di seafile sulla porta 8000.
Fase 5 - Installa e configura Nginx
Nginx è un server Web leggero con basso utilizzo di memoria e consumo di CPU. In questo passaggio, installeremo nginx, quindi creeremo un nuovo host virtuale per l'accesso proxy inverso a seafile. Abiliteremo https per le connessioni sul server.
Installa Nginx
Installa il server web nginx con il comando zypper:
zypper in nginx
Genera il certificato SSL
Quindi, vai alla directory nginx e crea una nuova directory per il certificato SSL. Quindi genera il file del certificato con il comando OpenSSL:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
Ora genera il file del certificato:
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Configura host virtuale
Nella directory nginx, crea una nuova directory chiamata "vhosts.d" per archiviare il file dell'host virtuale. Crea quella directory e quindi crea un nuovo file host virtuale con vim:
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf
Incolla la configurazione dell'host virtuale di seguito:
server {
listen 80;
server_name cloud.kuonseafile.co; #Domain Name
rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem; # path to your cacert.pem
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # path to your privkey.pem
server_name cloud.kuonseafile.co; #Domain Name
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /home/seafile/seafile-server/seahub;
}
}
Sostituisci server_name con il tuo nome di dominio - riga 3 e 11.
Per la posizione del supporto riga 47, sostituisci con il percorso dell'installazione di seafile - '/home/seafile/seafile-server/seahub'.
Salvare il file ed uscire dall'editor, quindi testare la configurazione con il comando:
nginx -t
assicurati che non ci siano problemi o errori nella configurazione.
Configura Seafile per utilizzare il tuo dominio e HTTPS
Passa all'utente seafile e modifica la configurazione. Prima di modificare la configurazione, disattivare il servizio seafile e seahub.
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop
Torna alla home directory dell'utente di seafile, quindi vai alla directory conf e modifica i file ccnet.conf e seahub_settings.py.
cd ~/
cd conf/
Modifica il file ccnet.conf:
vim ccnet.conf
Alla riga 5: 'SERVICE_URL':sostituisci il dominio con il tuo nome di dominio con https.
SERVICE_URL = https://cloud.kuonseafile.co/
Salva ed esci.
Ora modifica seahub_settings.py
vim seahub_settings.py
Aggiungi la nuova riga di seguito per definire la radice del file server.
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'
Salva ed esci.
Fase 6 - Avvia seafile e test
Nginx è installato - MariaDB/MySQL sono installati e il server seafile è installato.
Fai Nginx e MySQL per iniziare all'avvio:
systemctl enable nginx
systemctl enable mysql
Riavvia i servizi:
systemctl restart nginx
systemctl restart mysql
Quindi, avvia seafile e seahub dall'utente seafile:
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi
Tutti i servizi sono avviati.
Ora puoi accedere al server seafile con l'URL del tuo server. Il mio è:
cloud.kuonseafile.co
Verrai reindirizzato alla pagina di accesso alla connessione https di seafile.
Inserisci i dettagli dell'utente amministratore che abbiamo creato nel passaggio 4.
Ora puoi vedere il file manager di seafile e iniziare a caricare i file sul tuo server seafile.