GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Seafile dengan Nginx di Ubuntu 20.04 LTS

Seafile adalah open source file-hosting dan sistem penyimpanan cloud dengan fungsi-fungsi lanjutan seperti sinkronisasi dari berbagai platform (sistem lintas platform), perlindungan privasi dengan enkripsi file built-in, dan dukungan untuk Two-Factor Authentication (TFA), kontrol versi, penguncian file, pengeditan online, dan banyak lagi. Seafile ditulis dalam bahasa pemrograman C dan Python dan menyediakan fitur serupa seperti Dropbox, mega.co.nz, dan lainnya.

Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi server Seafile dengan server web Nginx dan database MariaDB. Kami akan menginstal server seafile di bawah server web Nginx dengan HTTPS SSL Letsencrypt diaktifkan, menggunakan MariaDB terbaru pada sistem Ubuntu 20.04.

Prasyarat

  • Ubuntu 20.04
  • Hak istimewa root

Apa yang akan kita lakukan?

  • Instal Ketergantungan Seafile Python
  • Instal dan Konfigurasi MariaDB
  • Unduh Server Seafile untuk Server Linux
  • Instal Server Seafile dengan MariaDB
  • Konfigurasi Seafile dengan Nama Domain
  • Menjalankan Seafile sebagai Layanan Systemd
  • Buat SSL Letsencrypt dan DHPARAM
  • Instal dan Konfigurasi Nginx sebagai Proxy-Terbalik
  • Menyiapkan Firewall
  • Pengujian

Langkah 1 - Instal Ketergantungan Python Seafile

Langkah pertama yang harus kita lakukan sebelum menginstal seafile server pada sistem adalah menginstal dependensinya. Seafile adalah aplikasi berbasis python, dan membutuhkan python 3.x untuk berjalan di server.

Sebelum menginstal paket apa pun, kita perlu memperbarui repositori Ubuntu.

sudo apt update

Sekarang instal python 3.x dengan semua dependensi yang diperlukan untuk instalasi server seafile menggunakan perintah apt di bawah ini.

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

Setelah itu, instal paket python tambahan dari repositori PyPI menggunakan perintah pip di bawah ini.

instal pip3 --timeout=3600 Bantal pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap

Hasilnya, semua dependensi paket untuk Seafile telah diinstal.

Langkah 2 - Instal dan Konfigurasi MariaDB

Seafile menawarkan dukungan untuk SQLite dan server database MariaDB. Untuk panduan ini, kami akan menggunakan server database MariaDB untuk instalasi kami. Kami akan menerapkan server seafile menggunakan versi MariaDB terbaru.

Instal server MariaDB menggunakan perintah apt di bawah ini.

sudo apt install mariadb-server -y

Setelah penginstalan selesai, mulai layanan MariaDB dan aktifkan untuk diluncurkan setiap kali sistem boot.

systemctl start mariadb
systemctl aktifkan mariadb

Server MariaDB diinstal pada sistem Ubuntu, periksa menggunakan perintah berikut.

systemctl status mariadb

Layanan MariaDB aktif dan berjalan.

Selanjutnya, kita perlu mengkonfigurasi kata sandi root MariaDB menggunakan perintah 'mysql_secure_installation'.

mysql_secure_installation

Sekarang Anda akan ditanya tentang konfigurasi MariaDB, dan ketikkan kata sandi root yang kuat untuk MariaDB.

Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada):Tekan Enter
Tetapkan kata sandi root? [Y/n] Y
Hapus pengguna anonim? [Y/n] Y
Larang login root dari jarak jauh? [Y/n] Y
Hapus database pengujian dan akses ke sana? [Y/n] Y  
Muat ulang tabel hak istimewa sekarang? [Y/n] Y

Selanjutnya, kita akan membuat database baru untuk server Seafile. Kami akan membuat 3 database untuk setiap komponen seafile dan membuat pengguna database baru. Kami akan membuat pengguna baru bernama 'seafile' dan itu akan memiliki semua hak istimewa untuk semua 3 database 'ccnet-db', 'seafile-db', dan 'seahub-db'.

Masuk ke shell MySQL menggunakan perintah di bawah ini.

mysql -u root -p

Sekarang buat database baru 'ccnet-db', 'seafile-db', 'seahub-db', dan buat pengguna baru 'seafile'. Kemudian berikan semua 3 hak istimewa basis data kepada pengguna 'seafile'.

Jalankan kueri MySQL di bawah ini.

create database `ccnet-db` character set ='utf8';
buat database `seafile-db` character set ='utf8';
buat database `seahub-db` character set =' utf8';

buat pengguna 'seafile'@'localhost' yang diidentifikasi oleh '[email protected]';

BERIKAN SEMUA HAK ISTIMEWA PADA `ccnet-db`.* ke ` seafile`@localhost;
BERIKAN SEMUA HAK ISTIMEWA `seafile-db`.* ke `seafile`@localhost;
BERIKAN SEMUA HAK ISTIMEWA PADA `seahub-db`.* ke `seafile`@localhost;

Server MariaDB telah diinstal, kata sandi root telah disiapkan, dan database untuk instalasi seafile telah dibuat.

Langkah 3 - Unduh Seafile Server untuk Server Linux

Dalam tutorial ini, server seafile akan berjalan sebagai layanan pada sistem systemd, dan akan berjalan di bawah pengguna non-root.

Buat pengguna baru bernama 'ryujin'.

useradd -m -s /bin/bash ryujin

Sekarang login pengguna 'ryujin' dan unduh versi terbaru server seafile menggunakan wget.

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

Ekstrak file 'seafile-server.tar.gz' dan ubah nama direktori master menjadi 'seafile-server'.

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

Kode sumber server seafile telah diunduh ke direktori '/home/ryujin/seafile-server'.

Langkah 4 - Instal Server Seafile dengan MariaDB

Pada langkah ini, kita akan menginstal server seafile menggunakan skrip setup MariaDB yang disediakan oleh Seafile.

Masuk sebagai pengguna 'ryujin' dan buka direktori 'seafile-server'.

su - ryujin
cd seafile-server/

Sekarang jalankan skrip 'setup-seafile-mysql.sh'.

./setup-seafile-mysql.sh

Skrip instalasi akan melakukan pemeriksaan modul python. Pastikan semua dependensi terinstal, lalu tekan Enter.

Sekarang Anda akan masuk ke konfigurasi Seafile.

  • nama server:masukkan nama server file laut Anda seperti 'hakase-cloud'.
  • nama domain server:ketik nama domain untuk server seafile Anda 'cloud.hakase-labs.io'.
  • direktori data seafile:biarkan konfigurasi default dan tekan enter.
  • port server file seafile:biarkan pada port default '8082'.

Sekarang untuk konfigurasi database. Anda akan diminta untuk 2 opsi:biarkan skrip membuat database untuk Anda, atau gunakan database yang sudah ada.

Pilih opsi '2' untuk menggunakan pengaturan database yang ada.

  • host basis data:host lokal default
  • port database:default pada port normal mysql '3306'
  • pengguna database adalah 'seafile' dengan sandi '[email protected]'
  • basis data ccnet:'ccnet-db'
  • basis data seafile:'seafile-db'
  • database seahub:'seahub-db'

Sekarang tekan enter lagi untuk mengkonfirmasi konfigurasi server seafile kita.

Dan ketika instalasi selesai, Anda akan mendapatkan hasil seperti gambar di bawah ini.

Instalasi dan konfigurasi server seafile telah berhasil diselesaikan. Dan file server seafile akan berjalan di bawah port '8082', layanan seahub akan berjalan di bawah port '8000'.

Selanjutnya kita akan menguji untuk menjalankan seafile server dan seahub server menggunakan start script.

Sebagai pengguna 'ryujin', buka direktori '~/seafile-server-latest'.

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

Sekarang jalankan server seafile dengan menjalankan perintah di bawah ini.

./seafile.sh mulai

Kemudian jalankan server seahub.

./seahub.sh mulai

Saat pertama kali menjalankan skrip start 'seahub.sh', Anda akan diminta untuk membuat pengguna admin dan kata sandi untuk server seafile.

Ketik email dan kata sandi admin Anda, lalu tekan Enter.

Dan pengguna dan kata sandi admin telah dibuat - sekarang periksa port layanan seafile dan seahub '8082' dan '8080' menggunakan perintah netstat.

ss -plnt4

Dan Anda akan melihat server seafile dan server seahub aktif dan berjalan di sistem Ubuntu 20.04.

Sekarang hentikan server seafile dan seahub.

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

Langkah 5 - Konfigurasi Seafile dengan Nama Domain

Untuk tutorial ini, kita akan menjalankan Seafile dengan nama domain 'seafile.hakase-labs.io'. Untuk melakukannya, kita perlu mengedit beberapa konfigurasi Seafile.

Masuk ke pengguna 'ryujin' dan buka direktori 'conf'.

su - ryujin
cd conf/

Edit konfigurasi 'ccnet.conf' menggunakan editor vim.

vim ccnet.conf

pada opsi 'SERVICE_URL', ubah nilainya dengan nama domain, dan pastikan untuk mengubah protokol HTTP default dengan protokol aman HTTPS seperti di bawah ini.

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

Simpan dan tutup.

Selanjutnya, edit konfigurasi 'seafile.conf'.

vim seafile.conf

Pada bagian '[fileserver]', tentukan alamat IP 'host' untuk layanan seafile. Layanan seafile akan berjalan pada alamat lokal seperti di bawah ini.

[fileserver]
host =127.0.0.1
port =8082

Simpan dan tutup.

Selanjutnya, edit 'seahub_settings.py' menggunakan editor vim.

vim seahub_settings.py

Tambahkan opsi 'FILE_SERVER_ROOT' seperti di bawah ini ke bagian bawah baris.

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

Simpan dan tutup.

Dan konfigurasi Seafile telah selesai, maka akan berjalan dengan nama domain 'seafile.hakase-labs.io'.

Langkah 6 - Menjalankan Seafile sebagai Layanan Systemd

Setelah mengkonfigurasi Seafile dengan nama domain, kita akan mengatur seafile dan seahub sebagai layanan systemd.

Buka direktori '/etc/systemd/system' dan buat file layanan baru untuk seafile bernama 'seafile.service'.

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

Rekatkan konfigurasi berikut ke dalamnya.

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

[Layanan]
Type=forking
ExecStart=/home/ryujin/seafile-server-latest/seafile.sh start
ExecStop=/home/ryujin/seafile-server-latest/seafile.sh stop
User=ryujin
Grup =ryujin

[Instal]
WantedBy=multi-user.target

Simpan dan tutup.

Selanjutnya, buat file layanan seahub bernama 'seahub.service'.

vim seahub.service

Rekatkan konfigurasi berikut ke dalamnya.

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

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

[Instal]
WantedBy=multi-user.target

Simpan dan tutup.

Dan file layanan seafile dan seahub telah dibuat.

Selanjutnya, reload systemd manager dan pastikan tidak ada error.

systemctl daemon-reload

Sekarang mulai layanan seafile dan tambahkan ke boot sistem.

systemctl start seafile
systemctl aktifkan seafile

Setelah itu, mulai dan aktifkan layanan seahub.

systemctl start seahub
systemctl aktifkan seahub

Layanan seafile dan seahub aktif dan berjalan, periksa menggunakan perintah berikut.

systemctl status seafile seahub

Di bawah ini adalah hasil yang akan Anda dapatkan.

Hasilnya, konfigurasi Seafile dan Seahub sebagai layanan systemd telah selesai.

Langkah 7 - Buat SSL Letsencrypt dan DHPARAM

Pada langkah ini, kita akan membuat SSL Letsencrypt dan sertifikat DHPARAM. Kami akan menggunakan alat certbot untuk menghasilkan SSL Letsencrypt dan menggunakan perintah openssl untuk menghasilkan sertifikat dhparam.

Untuk membuat SSL Letsencrypt, pastikan Anda telah mendapatkan nama domain asli dan menunjuk ke alamat IP server Anda.

Instal alat certbot ke sistem Ubuntu menggunakan perintah apt di bawah ini.

sudo apt install certbot

Setelah itu, buat Letsencrypt SSL untuk nama domain seafile 'seafile.hakase-labs.io' menggunakan perintah certbot seperti di bawah ini.

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

Setelah semua proses selesai, sertifikat Anda akan tersedia di direktori '/etc/letsencrypt/live/seafile.hakase-labs.io'.

Selanjutnya, buat sertifikat DHPARAM menggunakan perintah openssl seperti di bawah ini.

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

Sertifikat DHAPRAM akan dibuat dan tersedia di '/etc/nginx/dhparam.pem'.

Hasilnya, SSL Letsencrypt untuk nama domain Seafile dan sertifikat DHPARAM telah dibuat.

Langkah 8 - Instal dan Konfigurasi Nginx sebagai Reverse-Proxy

Pada langkah ini, kita akan menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk layanan Seafile. Server web Nginx akan berjalan di bawah protokol HTTPS aman dengan SSL Letsencrypt dan sertifikat DHPARAM yang dihasilkan di atasnya.

Instal Nginx ke server Ubuntu 20.04 menggunakan perintah apt di bawah ini.

sudo apt install nginx -y

Setelah semua instalasi selesai, mulai layanan Nginx dan tambahkan ke boot sistem.

systemctl start nginx
systemctl aktifkan nginx

Dan layanan Nginx aktif dan berjalan di sistem Ubuntu.

Selanjutnya, masuk ke direktori '/etc/nginx/sites-available' dan buat konfigurasi virtualhost baru 'seafile' menggunakan editor vim.

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

Rekatkan konfigurasi berikut ke dalamnya.

server {
        listen       80;
       server_name  seafile.hakase-labs.io;
       rewrite ^ https://$http_host$request_uri? permanen;
        server_tokens off;
    }
    server {
       listen 443 ssl http2;
       server_name seafile.hakase-labs.io;
        
        ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/privkey.pem;
        ssoutl;
        ssl_session_cache shared:SSL:5m;

        ssl_dhparam /etc/nginx/dhparam.pem;

       #SSL Security
    1.1_   ssl TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128';        ssl_ecdh_curve secp384r1;
        ssl_prefer_server_ciphers aktif;
       server_token nonaktif;
      ssl_session_tickets off;

       proxy_set_header X-Forwarded-For $remote_addr;

       location / {
          proxy_pass      :http://127.0.0.1 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;;

           # digunakan untuk melihat/mengedit file office melalui Server Office Online
           client_max_body_size 0;

          access_log     /var/log/nginx/seahub.access.log;
           error_log       /var/log/nginx/seahub.error.log;
       }

       location /seafdav {
           proxy_     7.0 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-forwarded-host $ server_name;
proxy_set_header x-forwarded-proto $ skema; ​​
proxy_read_timeout 1200s;
klien; br />
            access_log      /var/log/nginx/seafdav.access.log;
          error_log      /var/log/nginx/seafdav.error.log;
  

        location /seafhttp {
           rewrite ^/seafhttp(.*)$ $1 break;
           proxy_pass http://127.0.0.1:8082;
           klien  proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;

/>           root /home/ryujin/seafile-server-latest/seahub;
       }
    }

Simpan dan tutup.

Selanjutnya, aktifkan konfigurasi virtualhost untuk seafile dan uji konfigurasi Nginx.

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

Pastikan tidak ada error, lalu restart layanan Nginx.

systemctl restart nginx

Hasilnya, instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk Seafile telah berhasil diselesaikan.

Langkah 9 - Siapkan Firewall

Untuk tutorial ini, kita akan menjalankan Seafile dengan firewall UFW diaktifkan. Dan kita perlu menambahkan layanan SSH, HTTP, dan HTTPS ke konfigurasi firewall UFW.

Tambahkan layanan SSH, HTTP, dan HTTPS ke firewall UFW menggunakan perintah berikut.

untuk svc di ssh http https
lakukan
ufw izinkan $svc
selesai

Sekarang aktifkan firewall UFW dan periksa status konfigurasi.

ufw aktifkan
status ufw diberi nomor

Dan Anda akan mendapatkan hasil seperti di bawah ini.

Firewall UFW diaktifkan, dan layanan SSH, HTTP, dan HTTPS telah ditambahkan.

Sekarang kita siap untuk menggunakan Seafile.

Langkah 10 - Pengujian

Buka browser web Anda dan ketik nama domain instalasi Seafile di bilah alamat.

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

Sekarang Anda akan diarahkan ke koneksi HTTPS yang aman dan akan mendapatkan halaman login Seafile seperti di bawah ini.

Ketik kata sandi pengguna seafile yang baru saja Anda buat di atas dan klik tombol 'Masuk'.

Sekarang Anda akan mendapatkan dashboard Seafile seperti di bawah ini.

Di bawah ini adalah hasil setelah membuat folder baru dan mengunggah file ke server Seafile.

Hasilnya, instalasi dan konfigurasi Seafile dengan server web Nginx dan database MariaDB di Ubuntu 20.04 telah berhasil diselesaikan.


Ubuntu
  1. Cara Menginstal MariaDB di Ubuntu 20.04 LTS

  2. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  3. Cara Menyebarkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  1. Cara Menginstal Seafile dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  3. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10

  1. Cara Instal Redmine 3 dengan Nginx di Ubuntu 15.10

  2. Cara menginstal Wordpress dengan Nginx, MariaDB dan HHVM di Ubuntu 16.04 LTS

  3. Cara Menginstal GitBucket dengan Nginx di Ubuntu 18.04 LTS