Seafile je bezplatná a open source cloudová platforma pro sdílení souborů, kterou lze použít k ukládání souborů a synchronizaci dat mezi více zařízeními. Seafile je samoobslužný a vysoce výkonný úložný systém, který vám umožňuje hostovat na vašich vlastních soukromých serverech. Seafile je zdarma k použití a je velmi podobný ostatním poskytovatelům úložiště, včetně OwnCloud, NextCloud, Google Drive a DropBox.
Se Seafile můžete přistupovat a synchronizovat své soubory, kontakty a data napříč PC a mobilními zařízeními.
Seafile přichází s bohatou sadou funkcí, včetně podpory šifrování klientů, podpory pro správu verzí, ověřování LDAP, dvoufaktorové ověřování, integrace antiviru, integrace webových aplikací Office, sdílení veřejných odkazů, spolehlivé synchronizace souborů, podpora klienta Drive a mnoho dalších .
V tomto tutoriálu vysvětlíme, jak nainstalovat a nakonfigurovat server Seafile s Nginx jako reverzní proxy na Ubuntu 18.04.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Platný název domény odkazující na vaši IP adresu VPS. V tomto tutoriálu budeme používat seafile.example.com.
Poznámka :Pro správu DNS záznamů se můžete podívat na Atlantic DNS Guide.
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace požadovaných závislostí
Nejprve budete muset nainstalovat všechny závislosti potřebné pro instalaci serveru Seafile. Všechny je můžete nainstalovat spuštěním následujícího příkazu:
apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests unzip - wgety unzipJakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.
Krok 3 – Nainstalujte Nginx a MariaDB
Dále budete muset na svůj server nainstalovat webový server Nginx a databázový server MariaDB. Můžete je nainstalovat spuštěním následujícího příkazu:
apt-get install nginx mariadb-server mariadb-client -yPo dokončení instalace spusťte službu Nginx a MariaDB a povolte její spuštění po restartu systému:
systemctl spustit nginxsystemctl spustit mariadbsystemctl povolit nginxsystemctl povolit mariadbJakmile budete hotovi, můžete přejít k dalšímu kroku.
Krok 4 – Vytvořte databázi pro Seafile
Seafile se skládá ze tří hlavních komponent:Seahub, Seafile server a CCnet server. Každá komponenta vyžaduje samostatnou databázi pro ukládání dat. Pro každou z těchto komponent budete muset vytvořit samostatnou databázi.
Chcete-li tak učinit, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -pNa výzvu zadejte heslo uživatele root a poté vytvořte požadované databáze pomocí následujících příkazů:
CREATE DATABASE znaková sada seafiledb ='utf8';CREATE DATABASE znaková sada ccnetdb ='utf8';CREATE DATABASE znaková sada seahubdb ='utf8';Dále vytvořte uživatele databáze pomocí následujícího příkazu:
VYTVOŘTE UŽIVATELE 'seafileuser'@'localhost' IDENTIFIKOVANÉHO PODLE 'hesla';Dále udělte všechna oprávnění uživateli databáze Seafile pomocí následujícího příkazu:
GRANT ALL ON seafiledb.* TO 'seafileuser'@'localhost' IDENTIFIKOVANÉ PODLE 'hesla' S MOŽNOSTÍ GRANT; GRANT ALL ON ccnetdb.* 'seafileuser'@'localhost' IDENTIFIKOVANÉ PODLE MOŽNOSTI 'heslo' S MOŽNOSTÍ GRANT VŠE NA seahubdb.* PRO 'seafileuser'@'localhost' IDENTIFIKOVANÉ PODLE 'hesla' S MOŽNOSTÍ GRANT;Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
FLUSH PRIVILEGES;EXIT;V tomto okamžiku jste vytvořili všechny databáze potřebné k uložení dat Seafile.
Krok 5 – Instalace serveru Seafile
Dále si stáhněte nejnovější verzi Seafile z jejich oficiálních stránek pomocí příkazu wget:
wget https://download.seadrive.org/seafile-server_7.0.5_x86-64.tar.gzPo stažení rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf seafile-server_7.0.5_x86-64.tar.gzDále zkopírujte extrahovaný adresář do kořenového webového adresáře Nginx:
cp -r seafile-server-7.0.5 /var/www/html/seafileDále spusťte instalační skript Seafile pomocí následujícího příkazu:
cd /var/www/html/seafile./setup-seafile-mysql.shBěhem instalace budete vyzváni k zodpovězení několika otázek, jak je uvedeno níže:
Kontrola pythonu na tomto počítači... Kontrola modulu pythonu:python-mysqldb ... Hotovo.--------------------------- -------------------------------------- Tento skript vás provede nastavením serveru seafile pomocí MySQL .Ujistěte se, že jste si přečetli příručku k serveru seafile na adrese https://github.com/haiwen/seafile/wikiPro pokračování stiskněte ENTER------------------------- -----------------------------------------Jaký je název serveru? Zobrazí se na klientovi.3 – 15 písmen nebo číslic[ název serveru ] seafileJaká je ip nebo doména serveru? Například:www.mojefirma.com, 192.168.1.101[ IP nebo doména tohoto serveru ] seafile.příklad .comKam chcete umístit svá data seafile?Použijte prosím svazek s dostatkem volného místa[ výchozí "/var/www/html/seafile-data" ]Který port chcete použít pro souborový server seafile?[ výchozí "8082 "]------------------------------------------------ -------Zvolte prosím způsob inicializace databází seafile:---------------------------------- ---------------------[1] Vytvořit nové databáze ccnet/seafile/seahub[2] Použít existující databáze ccnet/seafile/seahub[1 nebo 2] 2Co je hostitel mysql serveru?[ výchozí "localhost" ]Jaký je port mysql serveru?[ výchozí "3306" ]Kterého uživatele mysql použít pro seafile?[ uživatel mysql pro seafile ] seafileuserJaké je heslo pro uživatele mysql "seafileuser" ?[ heslo pro seafileuser ]ověřování hesla uživatele seafileuser ... hotovoZadejte e xisting název databáze pro ccnet:[ ccnet databáze ] ccnetdbověřující uživatel "seafileuser" přístup k databázi ccnetdb ... hotovoZadejte existující název databáze pro seafile:[ seafile database ] seafiledbverifying user "seafileuser" přístup k databázi seafiledb ... hotovo Zadejte existující databázi název pro seahub:[ databáze seahub ] seahubdbverifikace přístupu uživatele "seafileuser" k databázi seahubdb ... hotovo----------------------------- ----Toto je vaše konfigurace-------------------------------- název serveru: seafile IP/doména serveru:Data SeaFile.example.com SeaFile Dir:/var/www/html/seaFile-data fileserver Port:8082 Databáze:Použijte existující databáze CCNET:CCNETDB SeaFile Database:SeaFiledB SeaHub Database:SeaHubdb Uživatel:SeaFileuser ------- -------------------------- Chcete-li pokračovat, stiskněte ENTER, nebo Ctrl-C pro přerušení-------------- --------------------Po úspěšném dokončení instalace byste měli získat následující výstup:
----------------------------------------------- ------------------ Konfigurace vašeho seafile serveru byla úspěšně dokončena.----------------------- ------------------------------------------spusťte server seafile: ./seafile. sh { start | zastavit | restartujte }spusťte seahub server: ./seahub.sh { start| zastavit | restartovat }--------------------------------------------- --------------------Pokud jste za firewallem, nezapomeňte povolit vstup/výstup těchto tcp portů:------------ -------------------------------------------------- ---port souborového serveru seafile: 8082port seahub: 8000Pokud se vyskytnou problémy, informace naleznete na adrese https://github.com/haiwen/seafile/wiki. Dále udělte oprávnění Seafile pomocí následujícího příkazu:
chown -R www-data:www-data /var/www/html/Dále budete muset přidat nastavení FILE_SERVER_ROOT do souboru seahub_settings.py:
nano /var/www/html/conf/seahub_settings.pyPřidejte nastavení FILE_SERVER_ROOT, jak je uvedeno níže:
SECRET_KEY ="x)0=j*l6b+4amq2n^&)c=q5p==exn13%s&6x!*48u4p0p97k)4"FILE_SERVER_ROOT ='http://seafile.example.com/seafhttp'DATABASES ={ 'default':{ 'ENGINE':'django.db.backends.mysql',: 'NAME':'seahubdb', 'USER':'seafileuser', . : 'HESLO 7' : 'Heslo 7' .0.1', 'PORT':'3306' }}Po dokončení uložte a zavřete soubor.
Krok 6 – Vytvořte administrátora pro Seafile
Dále budete muset vytvořit administrátora a nastavit heslo pro Seafile. Chcete-li tak učinit, změňte adresář na seafile a spusťte službu seafile pomocí následujícího příkazu:
cd /var/www/html/seafilesu -p -l www-data -s /bin/bash -c "./seafile.sh start"Dále spusťte službu seahub a vytvořte účet správce pomocí následujícího příkazu:
su -p -l www-data -s /bin/bash -c "./seahub.sh start"Budete požádáni o zadání své e-mailové adresy a hesla správce, jak je uvedeno níže:
LC_ALL není nastaveno v ENV, nastaveno na en_US.UTF-8Spouštění seahub na portu 8000 ...-------------------------- --------------Je to poprvé, co spustíte server seafile. Nyní vytvoříme účet správce---------------------------------------------------------------------------- pro účet správce?[ e-mail správce ] [email protected]é je heslo pro účet správce?[ heslo správce ]Zadejte heslo znovu:[ heslo správce znovu ]-------------- --------------------------Úspěšně vytvořený správce mořského souboru-------------------- --------------------Seahub je spuštěn Hotovo.Jakmile budete hotovi, zastavte služby seafile a seahub:
su -p -l www-data -s /bin/bash -c "./seafile.sh stop"su -p -l www-data -s /bin/bash -c "./seahub.sh stop" "."Krok 7 – Vytvořte soubor Systemd pro Seafile a Seahub
Dále budete muset vytvořit soubor systémové jednotky pro Seafile a Seahub pro správu služby.
Nejprve vytvořte soubor služby seafile pomocí následujícího příkazu:
nano /etc/systemd/system/seafile.servicePřidejte následující řádky:
[Unit]Description=SeafileAfter=mysql.serviceAfter=network.target[Service]User=www-dataGroup=www-dataType=forkingExecStart=/var/www/html/seafile-server-latest/seafile.sh startExecStop=/var/www/html/seafile-server-latest/seafile.sh stop[Install]WantedBy=multi-user.targetUložte a zavřete soubor. Poté vytvořte soubor služby systemd pro Seahub pomocí následujícího příkazu:
nano /etc/systemd/system/seahub.servicePřidejte následující řádky:
[Unit]Description=SeafileAfter=mysql.serviceAfter=network.target[Service]User=www-dataGroup=www-dataType=forkingExecStart=/var/www/html/seafile-server-latest/seahub.sh startExecStop=/var/www/html/seafile-server-latest/seahub.sh stop[Install]WantedBy=multi-user.targetUložte a zavřete soubor. Poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reloadDále restartujte službu Seafile a Seahub a povolte jim spuštění po restartu systému pomocí následujícího příkazu:
systemctl spustit seafilesystemctl povolit seafilesystemctl spustit seahubsystemctl povolit seahubChcete-li ověřit službu Seafile, spusťte následující příkaz:
systemctl status seafileVýstup:
● seafile.service – Seafile Načteno:načteno (/etc/systemd/system/seafile.service; zakázáno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od čt 2019-11-28 08:48:31 UTC; Před 8s Proces:15487 ExecStart=/var/www/html/seafile-server-latest/seafile.sh start (code=exited, status=0/SUCCESS) Úkoly:16 (limit:1150) CGroup:/system.slice/ seafile.service ├─15522 /var/www/html/seafile/seafile/bin/seafile-controller -c /var/www/html/ccnet -d /var/www/html/seafile-data -F /var/www /html/c ├─15524 ccnet-server -F /var/www/html/conf -c /var/www/html/ccnet -f /var/www/html/logs/ccnet.log -d -P /var /www/html/pids/ccnet.pid └─15527 seaf-server -F /var/www/html/conf -c /var/www/html/ccnet -d /var/www/html/seafile-data -l /var/www/html/logs/seafile.log -PNov 28 08:48:28 ubuntu1804 systemd[1]:Spouštění Seafile...Chcete-li ověřit službu Seahub, spusťte následující příkaz:
systemctl status seahub
Výstup:
● seahub.service – Seafile Načteno:načteno (/etc/systemd/system/seahub.service; zakázáno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od čt 2019-11-28 08:50:49 UTC; před 18s Proces:15547 ExecStart=/var/www/html/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS) Hlavní PID:15573 (python2.7) Úkoly:6 (limit:1150) CGroup:/system.slice/seahub.service ├─15573 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /f/wwwgun/html. conf --prel ├─15579 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel 0 15. 5. .7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel ├─15581 python2.7 /var/www/html /seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel ├─15582 python2.7 /var/www/html/seafile/part/seahub/third seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel └─15583 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicor n seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prelNov 28 08:50:43 ubuntu1804 systemd[1]:Spouštění Seafile...Krok 8 – Konfigurace reverzního proxy pomocí Nginx
Dále budete muset nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro Seafile k předávání požadavků klientů z portů 8000 a 8082 na port Nginx 80.
Chcete-li tak učinit, vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
nano /etc/nginx/sites-available/seafilePřidejte následující řádky:
server { listen 80; poslouchej [::]:80; root /var/www/html/seafile; název_serveru seafile.example.com; client_max_body_size 100M; autoindex vypnuto; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; umístění / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $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; } umístění /seafhttp { přepsat ^/seafhttp(.*)$ $1 přestávka; proxy_pass http://127.0.0.1:8082; 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; } location /media { root /var/www/html/seafile-server-latest/seahub; }}Po dokončení uložte a zavřete soubor. Poté povolte virtuálního hostitele Nginx pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/Nakonec restartujte službu Nginx pomocí následujícího příkazu:
systemctl restart nginxKrok 9 – Přístup k webovému rozhraní Seafile
Nyní otevřete webový prohlížeč a přejděte na adresu URL http://seafile.example.com. Měli byste vidět přihlašovací stránku Seafile:
Zadejte své administrátorské uživatelské jméno, heslo a klikněte na Přihlásit se knoflík. Měli byste vidět výchozí řídicí panel Seafile:
Závěr
Ve výše uvedeném tutoriálu jsme se naučili, jak nainstalovat server Seafile s Nginx jako reverzní proxy na Ubuntu 18.04 VPS. Doufám, že nyní máte dostatek znalostí pro hostování vlastního serveru pro sdílení souborů pomocí Seafile. Začněte se Seafile ještě dnes na VPS od Atlantic.Net!
Linux