Seafile je bezplatné, open-source, self-hostované řešení pro sdílení souborů pro Linux. Jedná se o multiplatformní software pro hostování souborů, který lze použít k ukládání souborů na centrální server a jejich synchronizaci s vaším osobním počítačem nebo mobilním zařízením. Seafile je napsán pomocí frameworku Python Django a je funkčně velmi podobný Dropboxu a Disku Google. Má mnoho funkcí včetně šifrování souborů, správy verzí, dvoufaktorového ověřování, online editace, zamykání souborů a mnoha dalších.
V tomto tutoriálu vám ukážeme, jak nainstalovat Seafile s Nginx jako reverzní proxy na CentOS 8.
Předpoklady
- Nový CentOS 8 VPS na cloudové platformě Atlantic.Net
- Platný název domény odkazující na IP adresu vašeho serveru
- Na vašem serveru je nakonfigurováno heslo uživatele root
Krok 1 – Vytvoření cloudového serveru 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 CentOS 8 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 k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
yum update -y
Krok 2 – Instalace požadovaných závislostí
Nejprve budete muset nainstalovat úložiště EPEL do vašeho systému. Můžete jej nainstalovat pomocí následujícího příkazu:
yum install epel-release -y
Jakmile je úložiště EPEL nainstalováno, nainstalujte další závislosti pomocí následujícího příkazu:
yum install python3 python3-devel python3-setuptools gcc gcc-c++ freetype-devel python3-pip python3-ldap memcached java-1.8.0-openjdk libmemcached libreoffice-headless libretaroffice-wpygen libredeveloffice-wpygen před>Jakmile jsou všechny závislosti nainstalovány, použijte příkaz pip k instalaci dalších závislostí:
instalace pip3 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captchaJakmile jsou všechny balíčky nainstalovány, povolte spuštění služby Memcached při restartu systému:
systemctl enable --now memcachedKrok 3 – Nainstalujte Nginx a MariaDB
Dále budete muset do svého systému nainstalovat server Nginx a MariaDB. Oba balíčky můžete nainstalovat pomocí následujícího příkazu:
yum nainstalovat nginx mariadb-server -yPo instalaci spusťte služby Nginx a MariaDB a povolte jim spuštění při restartu systému:
systemctl spustit nginxsystemctl spustit mariadbsystemctl povolit nginxsystemctl povolit mariadbKrok 4 – Vytvořte databázi pro Seafile
Nejprve budete muset nastavit root heslo MariaDB a zabezpečit instalaci MariaDB. Můžete to udělat pomocí následujícího skriptu:
mysql_secure_installationOdpovězte na všechny otázky, jak je uvedeno níže:
Zadejte aktuální heslo pro uživatele root (zadejte pro žádné):Nastavit heslo uživatele root? [A/n] YNové heslo:Znovu zadejte nové heslo:Odstranit anonymní uživatele? [A/n] YZakázat vzdálené přihlášení root? [A/N] YOdebrat testovací databázi a získat k ní přístup? [A/n] YNačíst nyní tabulky oprávnění? [A/n] ADále se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -pPo přihlášení vytvořte databázi pro Seafile pomocí následujícího příkazu:
vytvoření databáze `ccnetdb` znaková sada ='utf8';vytvoření databáze `seafiledb` znaková sada ='utf8';vytvoření databáze `seahubdb` znaková sada ='utf8';Dále vytvořte uživatele pro Seafile pomocí následujícího příkazu:
vytvořit uživatele 'seafile'@'localhost' identifikovaného pomocí 'vašeho hesla';Dále udělte všechna oprávnění ccnetdb, seafiledb a seahubdb pomocí následujícího příkazu:
UDĚLEJTE VŠECHNA PRIVILEGIE NA `ccnetdb`.* `seafile`@localhost; UDĚLEJTE VŠECHNA PRIVILEGIE NA `seafiledb`.* `seafile`@localhost; UDĚLEJTE VŠECHNA PRIVILEGIE NA `seahubdb`.* `seafile`@lo;Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
FLUSH PRIVILEGES;EXIT;Krok 5 – Instalace Seafile
Nejprve si stáhněte nejnovější verzi Seafile pomocí následujícího příkazu:
wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.5_x86-64.tar.gzPo stažení rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf seafile-server_7.1.5_x86-64.tar.gzDále přesuňte extrahovaný adresář do /opt pomocí následujícího příkazu:
mv seafile-server-* /opt/seafilecd /opt/seafileDále změňte adresář na /opt/seafile a nastavte server Seafile spuštěním následujícího skriptu:
./setup-seafile-mysql.shBudete požádáni o zadání názvu serveru, platného názvu domény a podrobností o databázi, jak je uvedeno níže.
Kontrola pythonu na tomto počítači ...--------------------------------------- -------------------------- Tento skript vás provede nastavením vašeho seafile serveru pomocí MySQL. Ujistěte se, že jste si přečetli manuál k seafile serveru na https:/ /download.seafile.com/published/seafile-manual/home.md Pokračujte stisknutím 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 .comKterý 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 ] 2Jaký je hostitel mysql serveru?[ výchozí "localhost" ]Jaký je port mysql serveru?[ výchozí "3306" ]Který uživatel mysql použít pro seafile ?[ uživatel mysql pro seafile ] seafileJaké je heslo pro uživatele mysql "seafile"?[ heslo pro seafile ]ověřování hesla uživatele seafile ... hotovoZadejte existující název databáze pro ccnet:[ ccnet databáze ] ccnetdbverifikace přístupu uživatele "seafile" k databáze ccnetdb ... hotovoZadejte existující datab ase name for seafile:[ seafile database ] seafiledbverifying uživatel "seafile" přístup k databázi seafiledb ... hotovoZadejte název existující databáze pro seahub:[ seahub database ] seahubdbverifying user "seafile" přístup k databázi seahubdb ... hotovoPečlivě uveďte každý detail. Po dokončení instalace byste měli vidět následující výstup:
--------------------------------- Toto je vaše konfigurace----------- -----------------------název serveru:seafileserver ip/doména:seafile.example.comseafile data dir:/opt/seafile-datafileserver port:8082database:use existující ccnet databáze:ccnetdbseafile databáze:seafiledbseahub databáze:seahubdbdatabase uživatel:seafile---------------------------------- Stiskněte ENTER pro pokračování , nebo Ctrl-C pro zrušení------------------------------------------- ---------------------- Konfigurace vašeho seafile serveru byla úspěšně dokončena.------------------- ----------------------------------------------spustit seafile server:./seafile.sh { start | zastavit | restartujte }spusťte server seahub:./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 https://download.seafile.com/published/seafile-manual/home.md. Krok 6 – Nastavení účtu správce
Dále budete muset nastavit účet správce pro přístup k Seafile. Nejprve spusťte službu Seafile pomocí následujícího příkazu:
/opt/seafile/seafile.sh startDále spusťte službu Seahub a nastavte heslo správce:
/opt/seafile/seahub.sh startBudete požádáni o nastavení uživatelského jména 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-------------------- --------------------Dále zastavte služby Seafile a Seahub pomocí následujícího příkazu:
/opt/seafile/seafile.sh stop/opt/seafile/seahub.sh stopKrok 7 – Vytvořte soubor Systemd Service pro Seafile
Dále budete muset vytvořit systémové soubory služeb pro Seafile a Seahub pro správu služeb. Nejprve vytvořte soubor služby pro 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]Type=forkingExecStart=/opt/seafile-server-latest/seafile.sh startExecStop=/opt/seafile-server-latest/seafile.sh stop[Install]WantedBy=multi-user.targetUložte a zavřete soubor a poté vytvořte soubor služby 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]Type=forkingExecStart=/opt/seafile-server-latest/seahub.sh startExecStop=/opt/seafile-server-latest/seahub.sh stop[Install]WantedBy=multi-user.targetUložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reloadDále spusťte službu Seafile a Seahub a povolte jim spuštění při restartu systému pomocí následujícího příkazu:
systemctl spustit seafilesystemctl povolit seafilesystemctl spustit seahubsystemctl povolit seahubV tomto okamžiku je Seafile server spuštěn a naslouchá na portu 8000. Můžete to ověřit pomocí následujícího příkazu:
ss -tunelp | grep 8000Měli byste získat následující výstup:
tcp LISTEN 0 128 127.0.0.1:8000 0.0.0.0:* users:(("python3",pid=44925,fd=8),("python3",pid=44924,fd=8),(" python3",pid=44923,fd=8),("python3",pid=44922,fd=8),("python3",pid=44921,fd=8),("python3",pid=44916,fd =8)) ino:77620 sk:9 <->Krok 8 – Konfigurace Nginx pro Seafile
Dále budete muset nakonfigurovat Nginx jako reverzní proxy pro přístup k Seafile pomocí portu 80. Můžete jej nakonfigurovat pomocí následujícího příkazu:
nano /etc/nginx/conf.d/seafile.confPřidejte následující řádky:
server {poslechnout 80;poslechnout [::]:80;název_serveru seafile.example.com;automatický index vypnutý;client_max_body_size 100M;access_log /var/log/nginx/seafile.com.access.log;error_log /var/log /nginx/seafile.com.error.log;location / {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_set_foroxy_prwarder -Přesměrovaný-hostitel $server_name;proxy_read_timeout 1200s;}umístění /seafhttp {rewrite ^/seafhttp(.*)$ $1 break;proxy_pass http://127.0.0.1:8082;proxy_set_header X-Forwarded-For $proxy_add_x_proxy_forward_time_0; proxy_read_timeout 36000s;proxy_send_timeout 36000s;send_timeout 36000s;}umístění /media {root /opt/seafile-server-latest/seahub;}}Uložte a zavřete soubor a poté restartujte službu Nginx pomocí následujícího příkazu:
systemctl restart nginxPokud máte nějaké chyby, upravte soubor Nginx.conf:
nano /etc/nginx/nginx.confPřidejte následující řádek pod http {:
server_names_hash_bucket_size 64;Uložte a zavřete soubor a restartujte službu Nginx:
systemctl restart nginxKrok 9 – Přístup k webovému rozhraní Seafile
V tomto okamžiku je Nginx nakonfigurován tak, aby sloužil Seafile. Nyní otevřete webový prohlížeč a přejděte na webové rozhraní Seafile pomocí adresy URL http://seafile.example.com . Budete přesměrováni na přihlašovací stránku Seafile:
Zadejte své uživatelské jméno a heslo správce a klikněte na Přihlásit se knoflík. Na následující stránce byste měli vidět řídicí panel Seafile:
Závěr
Ve výše uvedeném tutoriálu jste se naučili, jak nainstalovat server Seafile s Nginx jako reverzní proxy na CentOS 8. Nyní můžete nahrávat své soubory a osobní fotografie na server Seafile, sdílet je se svými přáteli a přistupovat k nim ze svého počítače nebo mobilní zařízení. Vyzkoušejte Seafile na VPS Hosting od Atlantic.Net pomocí výše uvedeného návodu!
Jak nainstalovat a nakonfigurovat Nextcloud na Ubuntu 20.04 Jak nainstalovat Nginx s modulem RTMP na CentOS 8Linux