Menginstal Seafile (Penyimpanan Cloud Aman) dengan Database MySQL di RHEL/CentOS/SL 7.x/6.x


Seafile adalah aplikasi penyimpanan cloud kolaboratif Sumber Terbuka canggih yang ditulis dengan Python dengan dukungan berbagi dan sinkronisasi file, kolaborasi tim, dan perlindungan privasi menggunakan enkripsi sisi klien. Itu dibangun sebagai sinkronisasi file multi-platform dengan klien yang berjalan di semua platform utama (Linux, Raspberry Pi, Windows, Mac, iPhone dan Android) dan dapat dengan mudah diintegrasikan dengan layanan lokal seperti LDAP dan WebDAV atau dapat digunakan menggunakan layanan tingkat lanjut. layanan jaringan dan database seperti MySQL, SQLite, PostgreSQL, Memcached, Nginx atau Apache Web Server.

Tutorial ini akan memandu Anda langkah demi langkah instalasi Seafile Server di RHEL/CentOS/Scientific Linux 7.x/6.x yang diterapkan dengan database MySQL, dengan init skrip untuk menjalankan server pada port Seafile default (8000/TCP) dan port transaksi HTTP default (80/TCP), buat aturan Firewall yang diperlukan untuk membuka port yang diperlukan.

Persyaratan

  1. Instalasi minimal CentOS 6.5 dengan alamat IP statis.
  2. Basis data MySQL/MariaDB
  3. Python 2.6.5+ atau 2.7
  4. Alat pengaturan Python
  5. Python-simplejson
  6. Pencitraan Python
  7. Python-mysqldb

Prosedur instalasi ini diuji pada sistem CentOS 6.4 64-bit, namun juga dapat digunakan pada distribusi Linux lainnya dengan spesifikasi skrip start-up init yang berbeda antara satu distribusi dengan distribusi lainnya. .

Langkah 1: Instal Modul Python

1. Pertama-tama lakukan Perbarui sistem, lalu instal semua modul Python yang diperlukan menggunakan perintah berikut.

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. Jika Anda menggunakan server Debian atau Ubuntu, instal semua modul Python dengan perintah berikutnya.

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

Langkah 2: Instal Server Seafile

3. Setelah semua modul Python diinstal, buat pengguna sistem baru dengan kata sandi yang kuat yang akan digunakan untuk meng-host konfigurasi server Seafile dan semua data di direktori home-nya, lalu beralih ke akun pengguna yang baru dibuat.

adduser seafile
passwd seafile
su - seafile

4. Kemudian login ke database MySQL dan buat tiga database, satu untuk setiap komponen Seafile Server: ccnet server, seafile server dan seahub dengan satu pengguna untuk semua database.

mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

5. Sekarang saatnya mengunduh dan menginstal Seafile Server. Buka halaman unduh resmi Seafile dan ambil rilis arsip Linux .Tar terakhir untuk arsitektur server Anda menggunakan perintah wget, lalu ekstrak ke pengguna Seafile rumah Anda yang dibuat sebelumnya dan masukkan Seafile direktori yang diekstraksi.

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. Untuk menginstal Seafile Server menggunakan database MySQL, jalankan skrip inisialisasi setup-seafile-mysql.sh dan jawab semua pertanyaan menggunakan opsi konfigurasi berikut, setelah skrip memverifikasi keberadaan semua modul yang dibutuhkan Python.

./setup-seafile-mysql.sh
  1. Apa nama server Anda?=pilih nama deskriptif (tidak boleh ada spasi).
  2. Apa IP atau domain servernya?=masukkan alamat IP server Anda atau nama domain Anda yang valid.
  3. Port mana yang ingin Anda gunakan untuk server ccnet?=tekan [Enter] – biarkan default – 10001.
  4. Di mana Anda ingin meletakkan data seafile?=tekan [Enter] – lokasi defaultnya adalah direktori $HOME/seafile-data Anda.
  5. Port mana yang ingin Anda gunakan untuk server seafile?=tekan [Enter] – biarkan default – 12001.

  1. Port mana yang ingin Anda gunakan untuk httpserver seafile?=tekan [Enter] – biarkan default – 8082.
  2. Silakan pilih cara untuk menginisialisasi database seafile:=pilih 1 dan berikan kredensial MySQL default: localhost, 3306 dan kata sandi root.
  3. Masukkan nama pengguna MySQL seafile:=seafile (jika Anda membuat nama pengguna lain, masukkan nama pengguna tersebut) dan kata sandi pengguna seafile MySQL.
  4. Pada database ccnet-server, seafile-server dan seahub cukup tekan tombol [Enter] – default.

Setelah Seafile Server berhasil diinstal, ini akan menghasilkan beberapa informasi berguna seperti port apa yang perlu dibuka di Firewall Anda untuk mengizinkan koneksi eksternal dan skrip apa yang harus ditangani untuk memulai server.

Langkah 3: Buka Firewall dan Buat Skrip init Seafile

7. Sebelum memulai server Seafile dari skrip lokal untuk pengujian, ubah kembali ke akun root dan buka konfigurasi file firewall iptables yang terletak di /etc/sysconfig/ jalur sistem dan tambahkan aturan baris berikut sebelum baris REJECT pertama, lalu mulai ulang iptables untuk menerapkan aturan baru.

su - root
nano /etc/sysconfig/iptables

Tambahkan aturan berikut.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

Mulai ulang iptables untuk menerapkan aturan menggunakan perintah berikut.

service iptables restart

CATATAN: Jika Anda mengubah port standar Seafile pada proses instalasi, perbarui aturan iptables Firewall Anda sesuai dengan itu.

8. Sekarang saatnya menguji Seafile Server. Beralih ke pengguna Seafile dan direktori seafile-server dan mulai server menggunakan skrip seafile.sh dan seahub.sh.

Pertama kali Anda memulai skrip seahub.sh, buat akun administratif untuk Seafile Server menggunakan alamat email Anda dan pilih kata sandi yang kuat untuk akun admin, terutama jika Anda menerapkan konfigurasi ini di lingkungan produksi.

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. Setelah server berhasil dimulai, buka browser dan navigasikan ke alamat IP server atau nama domain Anda di port 8000 menggunakan protokol HTTP, lalu login menggunakan akun admin yang Anda buat pada langkah di atas.

http://system_IP:8000

OR 

http://domain_name:8000

10. Setelah pengujian konfigurasi pertama, hentikan server Seafile dan buat skrip init yang akan membantu Anda mengelola seluruh proses dengan lebih mudah, sama seperti proses daemon sistem Linux lainnya.

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

Tambahkan konten berikut pada skrip init ini – Jika Seafile diinstal pada pengguna sistem lain, pastikan untuk memperbarui pengguna dan jalur yang sesuai pada baris su – $USER -c.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. Setelah file init dibuat, pastikan file tersebut memiliki izin eksekusi dan kelola prosesnya menggunakan start, stop dan tombol restart. Sekarang Anda dapat menambahkan layanan Seafile pada permulaan sistem menggunakan perintah chkconfig.

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. Secara default, server Seafile menggunakan port HTTP 8000/TCP untuk transaksi web. Jika Anda ingin mengakses Server Seafile dari browser pada port HTTP standar, gunakan skrip init berikut yang memulai server pada port 80 (perhatikan bahwa memulai layanan pada port di bawah < b>1024 memerlukan hak akses root).

nano /etc/init.d/seafile

Tambahkan konten berikut pada skrip init ini untuk memulai Seafile pada port HTTP standar. Jika Seafile diinstal pada pengguna sistem lain, pastikan untuk memperbarui pengguna dan jalur yang sesuai pada baris su – $USER -c dan $HOME.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. Jika sebelumnya Anda memulai Seafile pada port 8000 pastikan semua proses dihentikan, mulai server pada port 80.

chmod +x /etc/init.d/seafile
service seafile start | stop | restart

Buka browser dan arahkan ke alamat berikut.

http://system_ip 

OR

http://domain_name.tld

14. Anda juga dapat memverifikasi port mana yang dijalankan Seafile menggunakan perintah netstat.

netstat -tlpn

Itu dia! Seafile dengan senang hati dapat menggantikan platform kolaboratif cloud dan sinkronisasi file lainnya seperti Dropbox publik, Owncloud, Pydio, OneDrive, dll. di Organisasi Anda, dirancang untuk kerja tim yang lebih baik dan kontrol penuh atas penyimpanan Anda dengan keamanan tingkat lanjut di ruang pengguna.

Dalam artikel saya yang akan datang, saya akan membahas cara menginstal klien Seafile di sistem Linux dan Windows dan juga menunjukkan cara terhubung ke Server Seafile. Sampai saat itu pantau terus Tecmint dan jangan lupa berikan komentar Anda yang berharga.