GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Server Seafile dengan Nginx di Ubuntu 18.04

Seafile adalah platform berbagi file berbasis cloud gratis dan open-source yang dapat digunakan untuk menyimpan file dan menyinkronkan data di beberapa perangkat. Seafile adalah sistem penyimpanan yang dihosting sendiri dan berkinerja tinggi yang memungkinkan Anda untuk meng-hosting di server pribadi Anda sendiri. Seafile gratis untuk digunakan dan sangat mirip dengan penyedia penyimpanan lainnya termasuk OwnCloud, NextCloud, Google Drive, dan DropBox.

Dengan Seafile, Anda dapat mengakses dan menyinkronkan file, kontak, dan data Anda di seluruh PC dan perangkat seluler.

Seafile hadir dengan serangkaian fitur yang kaya termasuk dukungan untuk enkripsi klien, dukungan untuk kontrol versi, autentikasi LDAP, autentikasi dua faktor, integrasi antivirus, integrasi aplikasi web Office, berbagi tautan publik, sinkronisasi file yang andal, dukungan Klien Drive, dan banyak lagi .

Dalam tutorial ini, kami akan menjelaskan cara menginstal dan mengkonfigurasi server Seafile dengan Nginx sebagai proxy terbalik di Ubuntu 18.04.

Prasyarat

  • VPS Ubuntu 18.04 baru di Platform Cloud Atlantic.Net.
  • Nama domain yang valid menunjuk ke alamat IP VPS Anda. Dalam tutorial ini, kita akan menggunakan seafile.example.com.

Catatan :Anda dapat merujuk ke Atlantic DNS Guide untuk mengelola catatan DNS.

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 18.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server Ubuntu 18.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

apt-get update -y

Langkah 2 – Instal Dependensi yang Diperlukan

Pertama, Anda perlu menginstal semua dependensi yang diperlukan untuk instalasi server Seafile. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

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 wget -y

Setelah semua dependensi terinstal, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 3 – Instal Nginx dan MariaDB

Selanjutnya, Anda perlu menginstal server web Nginx dan server database MariaDB di server Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:

apt-get install nginx mariadb-server mariadb-client -y

Setelah instalasi selesai, mulai layanan Nginx dan MariaDB dan aktifkan untuk memulai setelah sistem reboot:

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 4 – Buat Database untuk Seafile

Seafile terdiri dari tiga komponen utama:Seahub, server Seafile dan server CCnet. Setiap komponen memerlukan database terpisah untuk menyimpan datanya. Anda perlu membuat database terpisah untuk setiap komponen ini.

Untuk melakukannya, login ke shell MariaDB dengan perintah berikut:

mysql -u root -p

Berikan kata sandi root Anda saat diminta kemudian buat database yang diperlukan dengan perintah berikut:

CREATE DATABASE seafiledb character set = 'utf8';
CREATE DATABASE ccnetdb character set = 'utf8';
CREATE DATABASE seahubdb character set = 'utf8';

Selanjutnya buat database user dengan perintah berikut:

CREATE USER 'seafileuser'@'localhost' IDENTIFIED BY 'password';

Selanjutnya, berikan semua hak istimewa kepada pengguna database Seafile dengan perintah berikut:

GRANT ALL ON seafiledb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON ccnetdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON seahubdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB dengan perintah berikut:

FLUSH PRIVILEGES;
EXIT;

Pada titik ini, Anda telah membuat semua database yang diperlukan untuk menyimpan data Seafile.

Langkah 5 – Instal Server Seafile

Selanjutnya, unduh Seafile versi terbaru dari situs web resmi mereka dengan perintah wget:

wget https://download.seadrive.org/seafile-server_7.0.5_x86-64.tar.gz

Setelah diunduh, ekstrak file yang diunduh dengan perintah berikut:

tar -xvzf seafile-server_7.0.5_x86-64.tar.gz

Selanjutnya, salin direktori yang diekstrak ke direktori root web Nginx:

cp -r seafile-server-7.0.5 /var/www/html/seafile

Selanjutnya, jalankan skrip instalasi Seafile dengan perintah berikut:

cd /var/www/html/seafile
./setup-seafile-mysql.sh

Selama instalasi, Anda akan diminta untuk menjawab beberapa pertanyaan seperti yang ditunjukkan di bawah ini:

Checking python on this machine ...
  Checking python module: python-mysqldb ... Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://github.com/haiwen/seafile/wiki

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] seafile

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] seafile.example.com

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/var/www/html/seafile-data" ]

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 2

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

Which mysql user to use for seafile?
[ mysql user for seafile ] seafileuser

What is the password for mysql user "seafileuser"?
[ password for seafileuser ]

verifying password of user seafileuser ...  done

Enter the existing database name for ccnet:
[ ccnet database ] ccnetdb

verifying user "seafileuser" access to database ccnetdb ...  done

Enter the existing database name for seafile:
[ seafile database ] seafiledb

verifying user "seafileuser" access to database seafiledb ...  done

Enter the existing database name for seahub:
[ seahub database ] seahubdb

verifying user "seafileuser" access to database seahubdb ...  done

---------------------------------
This is your configuration
---------------------------------

    server name:            seafile
    server ip/domain:       seafile.example.com

    seafile data dir:       /var/www/html/seafile-data
    fileserver port:        8082

    database:               use existing
    ccnet database:         ccnetdb
    seafile database:       seafiledb
    seahub database:        seahubdb
    database user:          seafileuser



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Setelah instalasi berhasil diselesaikan, Anda akan mendapatkan output berikut:

-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki

for information.

Selanjutnya, berikan izin ke Seafile dengan perintah berikut:

chown -R www-data:www-data /var/www/html/

Selanjutnya, Anda perlu menambahkan pengaturan FILE_SERVER_ROOT di file seahub_settings.py:

nano /var/www/html/conf/seahub_settings.py

Tambahkan pengaturan FILE_SERVER_ROOT seperti yang ditunjukkan di bawah ini:

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',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

Simpan dan tutup file setelah Anda selesai.

Langkah 6 – Buat Pengguna Admin untuk Seafile

Selanjutnya, Anda perlu membuat pengguna admin dan mengatur kata sandi untuk Seafile. Untuk melakukannya, ubah direktori menjadi seafile dan mulai layanan seafile dengan perintah berikut:

cd /var/www/html/seafile
su -p -l www-data -s /bin/bash -c "./seafile.sh start"

Selanjutnya, mulai layanan seahub dan buat akun admin dengan perintah berikut:

su -p -l www-data -s /bin/bash -c "./seahub.sh start"

Anda akan diminta untuk memberikan alamat email dan kata sandi admin Anda seperti yang ditunjukkan di bawah ini:

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] [email protected]

What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]



----------------------------------------
Successfully created seafile admin
----------------------------------------

Seahub is started

Done.

Setelah selesai, hentikan layanan seafile dan 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"

Langkah 7 – Buat File Systemd untuk Seafile dan Seahub

Selanjutnya, Anda perlu membuat file unit systemd untuk Seafile dan Seahub untuk mengelola layanan.

Pertama, buat file layanan seafile dengan perintah berikut:

nano /etc/systemd/system/seafile.service

Tambahkan baris berikut:

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

[Service]
User=www-data
Group=www-data

Type=forking
ExecStart=/var/www/html/seafile-server-latest/seafile.sh start
ExecStop=/var/www/html/seafile-server-latest/seafile.sh stop

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Kemudian, buat file layanan systemd untuk Seahub dengan perintah berikut:

nano /etc/systemd/system/seahub.service

Tambahkan baris berikut:

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

[Service]
User=www-data
Group=www-data
Type=forking

ExecStart=/var/www/html/seafile-server-latest/seahub.sh start
ExecStop=/var/www/html/seafile-server-latest/seahub.sh stop

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Kemudian, muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, restart layanan Seafile dan Seahub dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub

Untuk memverifikasi layanan Seafile, jalankan perintah berikut:

systemctl status seafile

Keluaran:

● seafile.service - Seafile
   Loaded: loaded (/etc/systemd/system/seafile.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:48:31 UTC; 8s ago
  Process: 15487 ExecStart=/var/www/html/seafile-server-latest/seafile.sh start (code=exited, status=0/SUCCESS)
    Tasks: 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 -P

Nov 28 08:48:28 ubuntu1804 systemd[1]: Starting Seafile...

Untuk memverifikasi layanan Seahub jalankan perintah berikut:

systemctl status seahub

Keluaran:

● seahub.service - Seafile
   Loaded: loaded (/etc/systemd/system/seahub.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:50:49 UTC; 18s ago
  Process: 15547 ExecStart=/var/www/html/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS)
 Main PID: 15573 (python2.7)
    Tasks: 6 (limit: 1150)
   CGroup: /system.slice/seahub.service
           ├─15573 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15579 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15580 python2.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/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           └─15583 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel

Nov 28 08:50:43 ubuntu1804 systemd[1]: Starting Seafile...

Langkah 8 – Konfigurasi Reverse Proxy dengan Nginx

Selanjutnya, Anda perlu menginstal dan mengonfigurasi Nginx sebagai proxy terbalik untuk Seafile untuk meneruskan permintaan klien dari port 8000 dan 8082 ke port Nginx 80.

Untuk melakukannya, buat file konfigurasi virtual host Nginx dengan perintah berikut:

nano /etc/nginx/sites-available/seafile

Tambahkan baris berikut:

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/seafile;
    server_name  seafile.example.com;

     client_max_body_size 100M;

     autoindex off;

     access_log /var/log/nginx/example.com.access.log;
     error_log /var/log/nginx/example.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_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            proxy_read_timeout  1200s;
        }

     location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            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;
        }
}

Simpan dan tutup file setelah Anda selesai. Kemudian, aktifkan virtual host Nginx dengan perintah berikut:

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

Terakhir, restart layanan Nginx dengan perintah berikut:

systemctl restart nginx

Langkah 9 – Akses Antarmuka Web Seafile

Sekarang, buka browser web Anda dan navigasikan URL http://seafile.example.com. Anda akan melihat halaman login Seafile:

Berikan nama pengguna, kata sandi admin Anda, dan klik Masuk tombol. Anda akan melihat dasbor default Seafile:

Kesimpulan

Dalam tutorial di atas, kita belajar cara menginstal server Seafile dengan Nginx sebagai proxy terbalik di Ubuntu 18.04 VPS. Saya harap Anda sekarang memiliki pengetahuan yang cukup untuk meng-host server berbagi file Anda sendiri menggunakan Seafile. Mulailah dengan Seafile hari ini di VPS dari Atlantic.Net!


Linux
  1. Cara Mengatur Nginx sebagai Proxy Terbalik di Ubuntu 20.04

  2. Cara Mengatur Beberapa SSL pada Satu IP Dengan Nginx

  3. Instal phpMyAdmin di Ubuntu 20.04 dengan Nginx

  1. Cara Mengatur Blok Server Nginx di Ubuntu 18.04

  2. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  3. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Mengatur Blok Server Nginx di Ubuntu 20.04

  3. Cara Menginstal Seafile dengan Nginx di Ubuntu 20.04 LTS