Seafile je bezplatný software pro hostování souborů s funkčně jako Dropbox nebo Google Drive, který lze nainstalovat na váš vlastní server. Seafile je vydán pod licencí OpenSource. Můžete si vytvořit vlastní zabezpečenou synchronizaci souborů a sdílet server s seafile, je to spolehlivý software pro sdílení souborů, který uživatelům umožňuje šifrovat data na serveru. Seafile je napsán v C a pythonu.
V tomto tutoriálu vám ukážu, jak vytvořit vlastní synchronizaci souborů a sdílet server s seafile na openSUSE Leap 42.1. Provedeme vás instalací seafile a poté nakonfigurujeme webové GUI se šifrováním https za reverzním proxy serverem nginx.
Předpoklad
- OpenSUSE Leap 42.1 – 64bit
- Oprávnění uživatele root
- Pochopte příkaz Zypper
Krok 1 – Konfigurace názvu hostitele
Přihlaste se k vašemu serveru openSUSE:
ssh [email protected]
po přihlášení k serveru upravte soubor hosts pomocí vim:
vim /etc/hosts
Vložte konfiguraci (nahraďte IP a název hostitele svými vlastními hodnotami):
192.168.1.101 cloud.kuonseafile.co cloud
Uložte a ukončete.
Poznámka:
192.168.1.101 =IP adresa mého serveru.
Cloud =název hostitele mého serveru.
kuonseafile.co =název mé domény.
Ověřte název hostitele a FQDN (plně kvalifikovaný název domény):
hostname
hostname -f
Krok 2 – Instalace závislostí
Seafile je napsán v pythonu, takže pro instalaci potřebujeme několik knihoven pythonu. Pro databázi, seafile podporuje SQLite a MySQL, v tomto tutoriálu použiji databázi MySQL, která poskytuje lepší výkon než SQLite.
Nainstalujte všechny balíčky včetně serveru MySQL/MariaDB pomocí příkazu zypper níže:
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client
Po dokončení instalace přejděte k dalšímu kroku.
Krok 3 – Konfigurace databáze
Je jedna věc, kterou byste měli vědět, když chcete nasadit seafile. Seafile potřebuje 3 databáze:
- databáze ccnet
- databáze mořských souborů
- databáze seahub
V kroku 2 jsme úspěšně nainstalovali server MySQL/MariaDB, nyní jej spusťte příkazem níže:
rcmysql start
Nastavte nové heslo pro uživatele root mysql pomocí příkazu mysqladmin:
/usr/bin/mysqladmin -u root password 'aqwe123'
Dále se přihlaste do prostředí MySQL a vytvořte 3 databáze pro seafile a jednoho nového uživatele pro tyto 3 databáze.
Přihlaste se do prostředí MySQL:
mysql -u root -p
ZAPIŠTE HESLO "aqwe123"
Vytvořte tři databáze pro instalaci seafile – ccnet_db, seafile_db a seahub_db:
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
A vytvořte nového uživatele seafilecloud s heslem „[email protected]“:
create user [email protected] identified by '[email protected]';
Nyní udělte uživateli seafilecloud přístup ke všem databázím:
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;
Všechny databáze jsou připraveny k instalaci seafile.
Krok 4 – Instalace a konfigurace Seafile
V tomto kroku nainstalujeme a nakonfigurujeme seafile. Nainstalujeme seafile do uživatelského a domovského adresáře seafile, takže musíme vytvořit nového uživatele Linuxu s názvem "seafile".
Vytvořte nového uživatele
Vytvořte nového uživatele s názvem seafile pro instalaci:
useradd -m -s /bin/bash seafile
Poznámka:
-m =Vytvoří nový domovský adresář pro uživatele pod "/home/".
-s /bin/bash =Definuje shell pro uživatele.
Stáhnout Seafile
Přepněte se na uživatele seafile pomocí příkazu su níže:
su - seafile
Nyní jste v domovském adresáři seafile, stáhněte si seafile server 5 pomocí příkazu wget:
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz
Rozbalte archiv seafile a přejmenujte jej:
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
Nainstalujte Seafile 5
Přejděte do adresáře seafile-server a spusťte instalační soubor pro instalaci seafile:
cd seafile-server/
Nainstalujeme seafile s databází MySQL, takže spusťte instalační soubor MySQL:
./setup-seafile-mysql.sh
Nyní budete požádáni o podrobnosti o serveru.
název serveru =použijte název hostitele serveru.
IP serveru nebo doména =použít IP adresu mého serveru.
Seafile Data direcoty =stačí stisknout Enter.
Port pro souborový server seafile =stačí stisknout Enter.
Dále nakonfigurujte databázi. Pro instalaci jsme vytvořili vlastní databázi, takže zvolte číslo "2" .
Nyní budete dotázáni na profil databáze:
Hostitel mysql =Výchozí je localhost.
Výchozí port =3306.
Uživatel MySQL pro seafile =Používá uživatele, kterého jsme vytvořili v kroku 3 – „seafilecloud“.
Heslo MySQL =heslo pro uživatele seafilecloud.
databáze ccnet =Vytvořili jsme databázi - ccnet_db.
databáze mořských souborů =seafile_db.
databáze seahub =seahub_db.
Pokud nedošlo k žádné chybě, můžete instalaci potvrdit stisknutím „Enter“.
počkejte, až skript vygeneruje konfiguraci a databázi.
Spusťte Seafile a Seahub
Seafile je nainstalován, nyní jej můžete spustit příkazem níže:
./seafile.sh start
./seahub.sh start
Budete požádáni o vytvoření administrátora pro seafile, stačí zadat e-mail a heslo administrátora.
V této fázi můžete přistupovat k webovému grafickému rozhraní seafile na portu 8000.
Krok 5 – Instalace a konfigurace Nginx
Nginx je lehký webový server s nízkým využitím paměti a spotřebou CPU. V tomto kroku nainstalujeme nginx a poté vytvoříme nového virtuálního hostitele pro reverzní proxy přístup k seafile. Povolíme https pro připojení na serveru.
Nainstalujte Nginx
Nainstalujte webový server nginx pomocí příkazu zypper:
zypper in nginx
Vygenerujte certifikát SSL
Dále přejděte do adresáře nginx a vytvořte nový adresář pro certifikát SSL. Poté vygenerujte soubor certifikátu pomocí příkazu OpenSSL:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
Nyní vygenerujte soubor certifikátu:
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Konfigurace virtuálního hostitele
V adresáři nginx vytvořte nový adresář s názvem "vhosts.d" pro uložení souboru virtuálního hostitele. Vytvořte tento adresář a poté vytvořte nový soubor virtuálního hostitele pomocí vim:
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf
Níže vložte konfiguraci virtuálního hostitele:
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;
}
}
Nahraďte název_serveru svým vlastním názvem domény - řádek 3 a 11.
Řádek umístění média 47 nahraďte cestou instalace seafile - '/home/seafile/seafile-server/seahub'.
Uložte soubor a ukončete editor, poté otestujte konfiguraci příkazem:
nginx -t
ujistěte se, že v konfiguraci není žádný problém nebo chyba.
Nakonfigurujte Seafile tak, aby používal vaši vlastní doménu a HTTPS
Přepněte se do uživatelského souboru a upravte konfiguraci. Před úpravou konfigurace vypněte službu seafile a seahub.
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop
Vraťte se do domovského adresáře uživatele seafile, poté přejděte do adresáře conf a upravte soubory ccnet.conf a seahub_settings.py.
cd ~/
cd conf/
Upravit soubor ccnet.conf:
vim ccnet.conf
Na řádku 5: 'SERVICE_URL' – nahraďte doménu svým vlastním názvem domény https.
SERVICE_URL = https://cloud.kuonseafile.co/
Uložte a ukončete.
Nyní upravte seahub_settings.py
vim seahub_settings.py
Přidejte nový řádek níže, abyste definovali kořen souborového serveru.
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'
Uložte a ukončete.
Krok 6 – Spuštění seafile a testování
Nginx je nainstalován - MariaDB/MySQL jsou nainstalovány a server seafile je nainstalován.
Umožněte spuštění Nginx a MySQL při spouštění:
systemctl enable nginx
systemctl enable mysql
Restartujte služby:
systemctl restart nginx
systemctl restart mysql
Dále spusťte seafile a seahub od uživatele seafile:
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi
Všechny služby jsou spuštěny.
Nyní můžete přistupovat k serveru seafile pomocí adresy URL vašeho serveru. Můj je:
cloud.kuonseafile.co
Budete přesměrováni na přihlašovací stránku https připojení k seafile.
Zadejte uživatelské údaje správce, které jsme vytvořili v kroku 4.
Nyní můžete vidět správce souborů seafile a začít nahrávat soubory na váš server seafile.