Seafile adalah perangkat lunak hosting file gratis dengan fungsi seperti Dropbox atau Google Drive yang dapat diinstal di server Anda sendiri. Seafile dirilis di bawah lisensi OpenSource. Anda dapat membangun sinkronisasi file aman Anda sendiri dan berbagi server dengan seafile, ini adalah perangkat lunak berbagi file yang andal yang memungkinkan pengguna untuk mengenkripsi data mereka di server. Seafile ditulis dalam C dan python.
Dalam tutorial ini, saya akan menunjukkan kepada Anda bagaimana membangun sinkronisasi file Anda sendiri dan berbagi server dengan seafile di openSUSE Leap 42.1. Kami akan memandu Anda melalui penginstalan seafile lalu mengonfigurasi GUI web dengan enkripsi https di belakang server proxy terbalik nginx.
Prasyarat
- OpenSUSE Leap 42.1 - 64bit
- Hak istimewa root
- Pahami perintah zypper
Langkah 1 - Konfigurasi Hostname
Masuk ke server openSUSE Anda:
ssh [email protected]
setelah Anda masuk ke server, edit file host dengan vim:
vim /etc/hosts
Tempel konfigurasi (ganti IP dan nama host dengan nilai Anda sendiri):
192.168.1.101 cloud.kuonseafile.co cloud
Simpan dan keluar.
Catatan:
192.168.1.101 =alamat IP server saya.
Cloud =nama host server saya.
kuonseafile.co =nama domain saya.
Verifikasi hostname dan FQDN (Fully Qualified Domain Name ):
hostname
hostname -f
Langkah 2 - Instal Dependensi
Seafile ditulis dalam python, jadi kami membutuhkan beberapa pustaka python untuk instalasi. Untuk database, seafile mendukung SQLite dan MySQL, dalam tutorial ini, saya akan menggunakan database MySQL yang memberikan performa lebih baik dari SQLite.
Instal semua paket termasuk server MySQL/MariaDB dengan perintah zypper di bawah ini:
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client
Setelah penginstalan selesai, lanjutkan ke langkah berikutnya.
Langkah 3 - Konfigurasi Basis Data
Ada satu hal yang harus Anda ketahui ketika Anda ingin menggunakan seafile. Seafile membutuhkan 3 database:
- basis data ccnet
- database file laut
- basis data hub laut
Pada langkah 2 kita telah berhasil menginstal server MySQL/MariaDB, sekarang mulai dengan perintah di bawah ini:
rcmysql start
Tetapkan kata sandi baru untuk pengguna root mysql dengan perintah mysqladmin:
/usr/bin/mysqladmin -u root password 'aqwe123'
Selanjutnya, login ke shell MySQL dan buat 3 database untuk seafile dan satu pengguna baru untuk 3 database tersebut.
Masuk ke shell MySQL:
mysql -u root -p
KETIK SANDI "aqwe123"
Buat tiga database untuk penginstalan seafile - ccnet_db, seafile_db, dan seahub_db:
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
Dan buat pengguna baru seafilecloud dengan sandi '[email protected]':
create user [email protected] identified by '[email protected]';
Sekarang berikan akses untuk pengguna seafilecloud ke semua database:
grant all privileges on ccnet_db.* to [email protected] identified by '[email protected]';
grant all privileges on seafile_db.* to [email protected] identified by '[email protected]';
grant all privileges on seahub_db.* to [email protected] identified by '[email protected]';
flush privileges;
Semua database siap untuk instalasi seafile.
Langkah 4 - Instal dan Konfigurasi Seafile
Pada langkah ini, kita akan menginstal dan mengkonfigurasi seafile. Kita akan menginstal seafile di bawah user seafile dan direktori home, jadi kita perlu membuat user Linux baru dengan nama "seafile".
Buat Pengguna Baru
Buat user baru dengan nama seafile untuk instalasi:
useradd -m -s /bin/bash seafile
Catatan:
-m =Buat direktori home baru untuk pengguna di bawah "/home/".
-s /bin/bash =Tentukan shell untuk pengguna.
Unduh Seafile
Beralih ke pengguna seafile dengan perintah su di bawah ini:
su - seafile
Sekarang Anda berada di direktori home seafile, unduh seafile server 5 dengan perintah wget:
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz
Ekstrak arsip seafile dan ganti namanya:
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
Instal Seafile 5
Buka direktori seafile-server dan jalankan file setup untuk menginstal seafile:
cd seafile-server/
Kami akan menginstal seafile dengan database MySQL, jadi jalankan file setup MySQL:
./setup-seafile-mysql.sh
Sekarang Anda akan dimintai detail server.
nama server =gunakan nama host server.
IP server atau Domain =gunakan alamat ip server saya.
Direcoty Data Seafile =cukup tekan Enter.
Port untuk file server seafile =cukup tekan Enter.
Selanjutnya, konfigurasikan database. Kami telah membuat database kami sendiri untuk instalasi, jadi pilih nomor "2" .
Sekarang Anda akan ditanya tentang profil database:
Host mysql =Defaultnya adalah localhost.
Port default =3306.
Pengguna MySQL untuk file laut =Menggunakan pengguna yang telah kita buat di langkah 3 - "seafilecloud".
sandi MySQL =kata sandi untuk pengguna seafilecloud.
database ccnet =Kami telah membuat database - ccnet_db.
database file laut =seafile_db.
basis data seahub =seahub_db.
Jika tidak ada kesalahan yang terjadi, Anda dapat mengonfirmasi pemasangan dengan menekan "Enter".
tunggu skrip menghasilkan konfigurasi dan database.
Mulai Seafile dan Seahub
Seafile terinstal, sekarang Anda dapat memulainya dengan perintah di bawah ini:
./seafile.sh start
./seahub.sh start
Anda akan diminta untuk membuat pengguna admin untuk seafile, cukup masukkan email dan kata sandi admin Anda.
Pada tahap ini, Anda dapat mengakses GUI web seafile pada port 8000.
Langkah 5 - Instal dan Konfigurasi Nginx
Nginx adalah server web ringan dengan penggunaan memori dan konsumsi CPU yang rendah. Pada langkah ini, kita akan menginstal nginx, lalu membuat virtual host baru untuk akses reverse proxy ke seafile. Kami akan mengaktifkan https untuk koneksi di server.
Instal Nginx
Instal server web nginx dengan perintah zypper:
zypper in nginx
Buat Sertifikat SSL
Selanjutnya, buka direktori nginx dan buat direktori baru untuk sertifikat SSL. Kemudian buat file sertifikat dengan perintah OpenSSL:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
Sekarang buat file sertifikat:
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Konfigurasikan Host Virtual
Di direktori nginx, buat direktori baru bernama "vhosts.d" untuk menyimpan file virtual host. Buat direktori itu dan kemudian buat file host virtual baru dengan vim:
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf
Tempel konfigurasi host virtual di bawah ini:
server {
listen 80;
server_name cloud.kuonseafile.co; #Domain Name
rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem; # path to your cacert.pem
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # path to your privkey.pem
server_name cloud.kuonseafile.co; #Domain Name
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /home/seafile/seafile-server/seahub;
}
}
Ganti nama_server dengan nama domain Anda sendiri - baris 3 dan 11.
Untuk lokasi media baris 47, ganti ke jalur instalasi seafile - '/home/seafile/seafile-server/seahub'.
Simpan file dan keluar dari editor, lalu uji konfigurasi dengan perintah:
nginx -t
pastikan tidak ada masalah atau kesalahan pada konfigurasi.
Konfigurasikan Seafile untuk Menggunakan Domain dan HTTPS Anda sendiri
Beralih ke seafile pengguna dan edit konfigurasi. Sebelum mengedit konfigurasi, matikan layanan seafile dan seahub.
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop
Kembali ke direktori home user seafile, lalu pergi ke direktori conf dan edit file ccnet.conf dan seahub_settings.py.
cd ~/
cd conf/
Edit file ccnet.conf:
vim ccnet.conf
Pada baris 5: 'SERVICE_URL' - ganti domain dengan nama domain Anda sendiri dengan https.
SERVICE_URL = https://cloud.kuonseafile.co/
Simpan dan keluar.
Sekarang edit seahub_settings.py
vim seahub_settings.py
Tambahkan baris baru di bawah ini untuk menentukan root server file.
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'
Simpan dan keluar.
Langkah 6 - Mulai seafile dan pengujian
Nginx diinstal - MariaDB/MySQL diinstal dan server seafile diinstal.
Jadikan Nginx dan MySQL untuk memulai saat boot:
systemctl enable nginx
systemctl enable mysql
Mulai ulang layanan:
systemctl restart nginx
systemctl restart mysql
Selanjutnya, mulai seafile dan seahub dari pengguna seafile:
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi
Semua layanan dimulai.
Sekarang Anda dapat mengakses server seafile dengan URL server Anda. Milik saya adalah:
cloud.kuonseafile.co
Anda akan diarahkan ke halaman login koneksi https dari seafile.
Masukkan detail pengguna admin yang telah kita buat di langkah 4.
Sekarang Anda dapat melihat pengelola file seafile dan mulai mengunggah file ke server file laut Anda.