GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

Seafile je open source systém pro hostování souborů a cloudové úložiště s pokročilými funkcemi, jako je synchronizace z více platforem (systém napříč platformami), ochrana soukromí pomocí vestavěného šifrování souborů a podpora dvoufaktorové autentizace (TFA), kontrola verzí, zamykání souborů, úpravy online a mnoho dalších. Seafile je napsán v programovacím jazyce C a Python a poskytuje podobné funkce jako Dropbox, mega.co.nz a další.

V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat server Seafile s webovým serverem Nginx a databází MariaDB. Nainstalujeme server seafile pod webový server Nginx s povoleným HTTPS SSL Letsencrypt pomocí nejnovější MariaDB na systému Ubuntu 20.04.

Předpoklady

  • Ubuntu 20.04
  • Oprávnění uživatele root

Co uděláme?

  • Nainstalujte závislosti Seafile Python
  • Nainstalujte a nakonfigurujte MariaDB
  • Stáhněte si Seafile Server pro Linux Server
  • Nainstalujte Seafile Server s MariaDB
  • Nakonfigurujte Seafile s názvem domény
  • Spuštění Seafile jako systémové služby
  • Vygenerujte SSL Letsencrypt a DHPARAM
  • Nainstalujte a nakonfigurujte Nginx jako reverzní proxy
  • Nastavení brány firewall
  • Testování

Krok 1 – Instalace závislostí Seafile Python

Prvním krokem, který musíme udělat před instalací seafile serveru do systému, je instalace jeho závislostí. Seafile je aplikace založená na pythonu a ke spuštění na serveru vyžaduje python 3.x.

Před instalací jakýchkoli balíčků musíme aktualizovat úložiště Ubuntu.

aktualizace sudo apt

Nyní nainstalujte python 3.x se všemi závislostmi potřebnými pro instalaci seafile serveru pomocí příkazů apt níže.

sudo apt install python3 libpython3.8 python3-setuptools python3-pil python3-ldap python3-urllib3 ffmpeg python3-pip python3-mysqldb python3-memcache python3-memcache python3-memcache python3-ldap 

Poté nainstalujte další balíčky pythonu z úložiště PyPI pomocí příkazu pip níže.

pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap

V důsledku toho byly nainstalovány všechny závislosti balíčků pro Seafile.

Krok 2 – Instalace a konfigurace MariaDB

Seafile nabízí podporu pro SQLite a databázový server MariaDB. Pro tuto příručku použijeme pro naši instalaci databázový server MariaDB. Nasadíme server seafile pomocí nejnovější verze MariaDB.

Nainstalujte server MariaDB pomocí příkazu apt níže.

sudo apt install mariadb-server -y

Po dokončení instalace spusťte službu MariaDB a povolte její spuštění při každém spuštění systému.

systemctl spustit mariadb
systemctl povolit mariadb

Server MariaDB je nainstalován v systému Ubuntu, zkontrolujte jej pomocí následujícího příkazu.

systemctl status mariadb

Služba MariaDB je v provozu.

Dále musíme nakonfigurovat root heslo MariaDB pomocí příkazu 'mysql_secure_installation'.

mysql_secure_installation

Nyní budete dotázáni na konfiguraci MariaDB a zadejte své silné heslo root pro MariaDB.

Zadejte aktuální heslo pro root (zadejte pro žádné):Stiskněte Enter
Nastavit heslo root? [A/n] A
Odebrat anonymní uživatele? [A/n] A
Zakázat vzdálené přihlášení root? [A/N] A
Odebrat testovací databázi a získat k ní přístup? [A/n] A  
Načíst znovu tabulky oprávnění? [A/n] A

Dále vytvoříme novou databázi pro server Seafile. Vytvoříme 3 databáze pro každou komponentu seafile a vytvoříme nového uživatele databáze. Vytvoříme nového uživatele s názvem 'seafile' a bude mít všechna oprávnění ke všem 3 databázím 'ccnet-db', 'seafile-db' a 'seahub-db'.

Přihlaste se do prostředí MySQL pomocí příkazu níže.

mysql -u root -p

Nyní vytvořte nové databáze 'ccnet-db', 'seafile-db', 'seahub-db' a vytvořte nového uživatele 'seafile'. Poté udělte všechna 3 databázová oprávnění uživateli 'seafile'.

Níže spusťte dotazy MySQL.

vytvořit databázi `ccnet-db` znaková sada ='utf8';
vytvořit databázi `seafile-db` znaková sada ='utf8';
vytvořit databázi `seahub-db` znaková sada =' utf8';

vytvořte uživatele 'seafile'@'localhost' identifikovaného pomocí '[email protected]';

UDĚLEJTE VŠECHNA PRIVILEGIA NA `ccnet-db`.* na ` seafile`@localhost;
UDĚLEJTE VŠECHNA PRIVILEGIA NA `seafile-db`.* `seafile`@localhost;
UDĚLEJTE VŠECHNA PRIVILEGIE NA `seahub-db`.* `seafile`@localhost;

Server MariaDB byl nainstalován, heslo uživatele root bylo nastaveno a databáze pro instalaci seafile byla vytvořena.

Krok 3 – Stáhnout Seafile Server pro Linux Server

V tomto tutoriálu poběží seafile server jako služba na systému systemd a bude běžet pod uživatelem bez oprávnění root.

Vytvořte nového uživatele s názvem 'ryujin'.

useradd -m -s /bin/bash ryujin

Nyní se přihlaste jako uživatel 'ryujin' a stáhněte si nejnovější verzi serveru seafile pomocí wget.

su - ryujin
wget -q https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz

Rozbalte soubor 'seafile-server.tar.gz' a přejmenujte hlavní adresář na 'seafile-server'.

tar -xf seafile-server_7.1.3_x86-64.tar.gz
mv seafile-server-*/ seafile-server/

Zdrojový kód serveru seafile byl stažen do adresáře '/home/ryujin/seafile-server'.

Krok 4 – Instalace serveru Seafile s MariaDB

V tomto kroku nainstalujeme server seafile pomocí instalačního skriptu MariaDB poskytnutého společností Seafile.

Přihlaste se jako uživatel 'ryujin' a přejděte do adresáře 'seafile-server'.

su - ryujin
cd seafile-server/

Nyní spusťte skript 'setup-seafile-mysql.sh'.

./setup-seafile-mysql.sh

Instalační skript provede kontrolu modulu python. Ujistěte se, že jsou nainstalovány všechny závislosti a poté stiskněte Enter.

Nyní budete v konfiguraci Seafile.

  • název serveru:zadejte název serveru seafile, např. „hakase-cloud“.
  • název domény serveru:zadejte název domény vašeho mořského serveru „cloud.hakase-labs.io“.
  • Datový adresář seafile:ponechte výchozí konfiguraci a stiskněte enter.
  • port souborového serveru seafile:ponechte jej na výchozím portu '8082'.

Nyní ke konfiguraci databáze. Budete požádáni o 2 možnosti:nechat skript vytvořit databázi za vás, nebo použít existující databázi.

Chcete-li použít existující nastavení databáze, vyberte možnost '2'.

  • hostitel databáze:výchozí localhost
  • port databáze:výchozí na normálním portu mysql '3306'
  • uživatel databáze je „seafile“ s heslem „[email protected]“
  • databáze ccnet:'ccnet-db'
  • databáze seafile:'seafile-db'
  • databáze seahub:'seahub-db'

Nyní znovu stiskněte enter pro potvrzení naší konfigurace mořského serveru.

A po dokončení instalace získáte výsledek, jak je znázorněno níže.

Instalace a konfigurace seafile serveru byla úspěšně dokončena. A souborový server seafile poběží pod portem '8082', služba seahub bude spuštěna pod portem '8000'.

Dále otestujeme spuštění serveru seafile a serveru seahub pomocí startovacího skriptu.

Jako uživatel 'ryujin' přejděte do adresáře '~/seafile-server-latest'.

su - ryujin
cd ~/seafile-server-latest/

Nyní spusťte server seafile spuštěním příkazu níže.

./seafile.sh start

Poté spusťte server seahub.

./seahub.sh start

Při prvním spuštění spouštěcího skriptu 'seahub.sh' budete požádáni o vytvoření administrátorského uživatele a hesla pro seafile server.

Zadejte svůj e-mail a heslo správce a stiskněte klávesu Enter.

A uživatel a heslo správce byly vytvořeny - nyní zkontrolujte porty služeb seafile a seahub '8082' a '8080' pomocí příkazu netstat.

ss -plnt4

A uvidíte, že server seafile a server seahub běží na systému Ubuntu 20.04.

Nyní zastavte server seafile a seahub.

./seafile.sh stop
./seahub.sh stop

Krok 5 – Konfigurace Seafile s názvem domény

V tomto tutoriálu spustíme Seafile s názvem naší domény 'seafile.hakase-labs.io'. K tomu potřebujeme upravit některé konfigurace Seafile.

Přihlaste se k uživateli 'ryujin' a přejděte do adresáře 'conf'.

su - ryujin
cd conf/

Upravte konfiguraci 'ccnet.conf' pomocí editoru vim.

vim ccnet.conf

u možnosti 'SERVICE_URL' změňte hodnotu s názvem domény a nezapomeňte změnit výchozí protokol HTTP na zabezpečený protokol HTTPS, jak je uvedeno níže.

SERVICE_URL =https://seafile.hakase-labs.io

Uložit a zavřít.

Dále upravte konfiguraci 'seafile.conf'.

vim seafile.conf

V sekci '[fileserver]' zadejte IP adresu 'hostitele' pro službu seafile. Služba seafile bude spuštěna na místní adrese, jak je uvedeno níže.

[fileserver]
hostitel =127.0.0.1
port =8082

Uložit a zavřít.

Dále upravte 'seahub_settings.py' pomocí editoru vim.

vim seahub_settings.py

Přidejte možnost 'FILE_SERVER_ROOT', jak je uvedeno níže, na konec řádku.

FILE_SERVER_ROOT ='https://seafile.hakase-labs.io/seafhttp'

Uložit a zavřít.

A konfigurace Seafile byla dokončena, bude běžet pod názvem domény 'seafile.hakase-labs.io'.

Krok 6 – Spuštění Seafile jako systémové služby

Po konfiguraci Seafile s názvem domény nastavíme seafile a seahub jako službu systemd.

Přejděte do adresáře '/etc/systemd/system' a vytvořte nový soubor služby pro seafile s názvem 'seafile.service'.

cd /etc/systemd/system/
vim seafile.service

Vložte do něj následující konfiguraci.

[Jednotka]
Description=Seafile
After=network.target mysql.service nginx.service

[Služba]
Typ=forking
ExecStart=/home/ryujin/seafile-server-latest/seafile.sh start
ExecStop=/home/ryujin/seafile-server-latest/seafile.sh stop
User=ryujin
Skupina =ryujin

[Instalovat]
WantedBy=multi-user.target

Uložit a zavřít.

Dále vytvořte soubor služby seahub s názvem 'seahub.service'.

vim seahub.service

Vložte do něj následující konfiguraci.

[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
Typ=forking
ExecStart=/home/ryujin/seafile-server-latest/seahub.sh start
ExecStop=/home/ryujin/seafile-server-latest/seahub.sh stop
User=ryujin
Group=ryujin

[Install]
WantedBy=multi-user.target

Uložit a zavřít.

A soubory služeb seafile a seahub byly vytvořeny.

Dále znovu načtěte správce systemd a ujistěte se, že nedošlo k chybě.

systemctl daemon-reload

Nyní spusťte službu seafile a přidejte ji do spouštění systému.

systemctl spustit seafile
systemctl povolit seafile

Poté spusťte a povolte službu seahub.

systemctl spustit seahub
systemctl povolit seahub

Služba seafile a seahub jsou v provozu, zkontrolujte to pomocí následujícího příkazu.

stav systemctl seafile seahub

Níže je výsledek, který dostanete.

V důsledku toho byla konfigurace Seafile a Seahub jako systémové služby dokončena.

Krok 7 – Vygenerování SSL Letsencrypt a DHPARAM

V tomto kroku vygenerujeme certifikát SSL Letsencrypt a DHPARAM. Pro vygenerování SSL Letsencrypt použijeme nástroj certbot a pomocí příkazu openssl vygenerujeme certifikát dhparam.

Chcete-li vygenerovat SSL Letsencrypt, ujistěte se, že máte skutečný název domény a ukazujete na IP adresu vašeho serveru.

Nainstalujte nástroj certbot do systému Ubuntu pomocí příkazu apt níže.

sudo apt install certbot

Poté vygenerujte SSL Letsencrypt pro název domény seafile 'seafile.hakase-labs.io' pomocí příkazu certbot, jak je uvedeno níže.

certbot certonly --agree-tos --no-eff-email --email [email protected] -d seafile.hakase-labs.io

Jakmile bude celý proces dokončen, váš certifikát bude dostupný v adresáři '/etc/letsencrypt/live/seafile.hakase-labs.io'.

Dále vygenerujte certifikát DHPARAM pomocí příkazu openssl, jak je uvedeno níže.

openssl dhparam -out /etc/nginx/dhparam.pem 2048

Certifikát DHAPRAM bude vygenerován a dostupný na '/etc/nginx/dhparam.pem'.

V důsledku toho byl vygenerován SSL Letsencrypt pro název domény Seafile a certifikát DHPARAM.

Krok 8 – Instalace a konfigurace Nginx jako reverzního proxy

V tomto kroku nainstalujeme a nakonfigurujeme Nginx jako reverzní proxy pro službu Seafile. Webový server Nginx poběží pod zabezpečeným protokolem HTTPS s vygenerovaným certifikátem SSL Letsencrypt a DHPARAM.

Nainstalujte Nginx na server Ubuntu 20.04 pomocí příkazu apt níže.

sudo apt install nginx -y

Po dokončení instalace spusťte službu Nginx a přidejte ji do spouštění systému.

systemctl spustit nginx
systemctl povolit nginx

A služba Nginx je spuštěna a běží na systému Ubuntu.

Dále přejděte do adresáře '/etc/nginx/sites-available' a vytvořte novou konfiguraci virtuálního hostitele 'seafile' pomocí editoru vim.

cd /etc/nginx/sites-available/
vim seafile

Vložte do něj následující konfiguraci.

server {
        listen       80;
        název_serveru  seafile.hakase-labs.io;
        přepsat ^ https://$http_host$request_uri? permanent;
        server_tokens off;
    }
    server {
        listen 443 ssl http2;
        název_serveru seafile.hakase-labs.io;
 
        ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/priv5 /session stime;
        ssl_session_cache shared:SSL:5m;

        ssl_dhparam /etc/nginx/dhparam.pem;

        #SSL Security
T sl 1. v1 pro  TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHA20-POLY1305:ECDHE-3RSA05:ECDHE-3RSA005:ECDHE-3RSA00 AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA-256-AES128-SHA-256-ECA'8 br />        ssl_ecdh_curve secp384r1;
        ssl_prefer_server_ciphers on;
        server_tokens off;
        ssl_session_tickets off;

        proxy_set_header X-Forwarded-For $remote_addr;

        umístění / {
             proxy_pass          http://127.0.0. proxy_set_header hostitel $ host;
proxy_set_header xreal-ip $ remote_addr;
proxy_set_header x-forward-for $ proxy_add_x_forwardod_for;
proxy_set_header x-forward-host_name;
;

            # používá se k zobrazení/úpravě kancelářského souboru prostřednictvím serveru Office Online Server
            client_max_body_size 0;

        .    access_log      /var/hub/ngincess log/sea
            error_log       /var/log/nginx/seahub.error.log;
        }

        umístění /seafdav {
            proxy_pass 8 7.0 20.   http:// 80.   seafdav;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_he ader X-Forwarded-for $ proxy_add_x_forwarded_for;
proxy_set_header x-forward-host $ server_name;
proxy_set_header x-forward-proto $ schéma;
proxy_read_timeout 1200s;
client_max_body_size 0; <
proxy_read_timeout 1200s;
client_max_body_size 0;
br />
            access_log      /var/log/nginx/seafdav.access.log;
            error_log       /var/log/nginx/seafdav.error.log;
  }
        umístění /seafhttp {
            přepsat ^/seafhttp(.*)$ $ 1 přestávka;
            proxy_pass http://127.0.0.1:8082;
         _      klientská hlava __       _      -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 /home/ryujin/seafile-server-latest/seahub;
        }
    }

Uložit a zavřít.

Dále aktivujte konfiguraci virtuálního hostitele pro seafile a otestujte konfiguraci Nginx.

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

Ujistěte se, že nedošlo k žádné chybě, a poté restartujte službu Nginx.

systemctl restart nginx

V důsledku toho byla instalace a konfigurace Nginx jako reverzní proxy pro Seafile úspěšně dokončena.

Krok 9 – Nastavení brány firewall

V tomto tutoriálu spustíme Seafile s povoleným firewallem UFW. A do konfigurace firewallu UFW musíme přidat služby SSH, HTTP a HTTPS.

Přidejte služby SSH, HTTP a HTTPS do brány firewall UFW pomocí následujícího příkazu.

pro svc v ssh http https
do
ufw povolit $svc
hotovo

Nyní aktivujte UFW firewall a zkontrolujte stav konfigurace.

ufw enable
číslovaný stav ufw

A dostanete výsledek, jak je uvedeno níže.

Firewall UFW je povolen a byly přidány služby SSH, HTTP a HTTPS.

Nyní jsme připraveni použít Seafile.

Krok 10 – Testování

Otevřete webový prohlížeč a do adresního řádku zadejte název instalační domény Seafile.

https://seafile.hakase-labs.io/

Nyní budete přesměrováni na zabezpečené připojení HTTPS a získáte přihlašovací stránku Seafile, jak je uvedeno níže.

Zadejte uživatelské heslo seafile, které jste právě vytvořili, a klikněte na tlačítko 'Přihlásit se'.

Nyní získáte řídicí panel Seafile, jak je uvedeno níže.

Níže je výsledek po vytvoření nové složky a nahrání souboru na server Seafile.

V důsledku toho byla instalace a konfigurace Seafile s webovým serverem Nginx a databází MariaDB na Ubuntu 20.04 úspěšně dokončena.


Ubuntu
  1. Jak nainstalovat MariaDB v Ubuntu 20.04 LTS

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  1. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Wordpress s Nginx, MariaDB a HHVM na Ubuntu 16.04 LTS

  3. Jak nainstalovat GitBucket s Nginx na Ubuntu 18.04 LTS