Installéiere vun Seafile (Secure Cloud Storage) mat MySQL Datebank an RHEL/CentOS/SL 7.x/6.x


Seafile ass eng fortgeschratt Open Source Zesummenaarbecht Cloud Storage Applikatioun geschriwwen am Python mat Datei Sharing an Synchroniséierung Ënnerstëtzung, Team Zesummenaarbecht a Privatsphär Schutz mat Client Säit Verschlësselung. Et ass gebaut als Multi-Plattform Dateisynchroniséierung mat Clienten déi op all gréisser Plattformen leeft (Linux, Raspberry Pi, Windows, Mac, iPhone an Android) a ka liicht integréiert ginn mat lokalen Servicer wéi LDAP a WebDAV oder ka mat fortgeschrattem ofgebaut ginn. Netzwierkservicer an Datenbanken wéi MySQL, SQLite, PostgreSQL, Memcached, Nginx oder Apache Web Server.

Dësen Tutorial féiert Iech op eng Schrëtt fir Schrëtt Installatioun vun Seafile Server op RHEL/CentOS/Scientific Linux 7.x/6.x mat MySQL Datebank ofgebaut, mat Start-up init Scripte fir de Server op Standard Seafile Hafen (8000/TCP) a Standard HTTP Transaktiounsport (80/TCP) ze lafen, erstellt néideg Firewall Regelen fir erfuerderlech Ports opzemaachen.

  1. Minimal CentOS 6.5 Installatioun mat statescher IP Adress.
  2. MySQL/MariaDB Datebank
  3. Python 2.6.5+ oder 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python-Imaging
  7. Python-mysqldb

Dës Installatiounsprozedur ass op CentOS 6.4 64-Bit System getest, awer kann och op anere Linux Verdeelungen benotzt ginn mat der Spezifizéierung datt init Start-up Scripte vun enger Verdeelung zu engem aneren ënnerscheeden .

Schrëtt 1: Installéiere Python Moduler

1. Fir d'éischt e System Aktualiséieren, installéiere dann all erfuerderlech Python Moduler mat de folgende Kommandoen.

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

2. Wann Dir e Debian oder Ubuntu Server benotzt, installéiere all Python Moduler mat den nächsten Kommandoen.

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

Schrëtt 2: Installéiert Seafile Server

3. Nodeems all Python Moduler installéiert sinn, erstellt en neie System Benotzer mat engem staarke Passwuert, deen benotzt gëtt fir d'Seafile Server Konfiguratioun an all Donnéeën op säin Heemverzeechnes ze hosten, da schalt op nei Benotzerkont erstallt.

# adduser seafile
# passwd seafile
# su - seafile

4. Login dann op MySQL Datebank a erstellt dräi Datenbanken, eng fir all Seafile Server Komponenten: ccnet Server, Seafile Server an Seahub mat engem eenzegen Benotzer fir all Datenbanken.

$ 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. Elo ass et Zäit fir Seafile Server erofzelueden an z'installéieren. Gitt op Seafile offiziell Download Säit a gräift déi lescht .Tar Linux Archiv Verëffentlechung fir Är Serverarchitektur mat wget Kommando, Extrait et dann op Ären Heem Seafile Benotzer erstallt virdrun a gitt Seafile an extrahéiert Verzeechnes.

$ 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. Fir Seafile Server mat MySQL Datebank z'installéieren lafen setup-seafile-mysql.sh Initialiséierungsskript an äntweren all Froen déi folgend Konfiguratiounsoptiounen benotzen, nodeems de Skript d'Existenz vun all Python erfuerderlech Moduler verifizéiert.

$ ./setup-seafile-mysql.sh

  1. Wat ass den Numm vun Ärem Server? = wielt en beschreifenden Numm (keng Plazen erlaabt).
  2. Wat ass d'IP oder d'Domain vum Server? = gitt Äre Server IP Adress oder Äre gültege Domain Numm.
  3. Wéi engem Port wëllt Dir fir ccnet Server benotzen? = dréckt [Enter] - loosst et als Standard - 10001.
  4. Wou wëllt Dir Seafile-Daten setzen? = dréckt [Enter] - de Standardplaz ass Ären $HOME/seafile-data Verzeichnis.
  5. Wéi engem Port wëllt Dir fir de Seafile-Server benotzen? = dréckt [Enter] - loosst et als Standard - 12001.

  1. Wéi engem Port wëllt Dir fir de Seafile httpserver benotzen? = dréckt [Enter] - loosst et als Standard - 8082.
  2. Wielt w.e.g. e Wee fir d'Seafile-Datebanken ze initialiséieren: = wielt 1 a gitt Standard MySQL Umeldungsinformatiounen: localhost, 3306 a root Passwuert.
  3. Gitt den Numm fir MySQL Benotzer vun seafile: = seafile (wann Dir en anere Benotzernumm erstallt hutt, gitt dee Benotzernumm) an de seafile MySQL Benotzerpasswuert.
  4. Op ccnet-Server, Seafile-Server an Seahub-Datenbanken dréckt just op [Enter] Schlëssel - Standard.

Nodeems de Seafile Server erfollegräich installéiert ass, generéiert et e puer nëtzlech Informatioun wéi wéi eng Ports op Ärer Firewall musse sinn fir extern Verbindung z'erméiglechen a wéi eng Skripte fir ze handhaben fir de Server ze starten.

Schrëtt 3: Firewall opmaachen a Seafile init Skript erstellen

7. Ier Dir Seafile Server vum lokalen Skript fir en Test starten, ännert zréck op root Kont an oppen iptables Firewall Dateikonfiguratioun op /etc/sysconfig/ Systemwee a füügt déi folgend Zeilregele virun der éischter REJECT Linn, da starten iptables nei fir nei Reegelen anzesetzen.

$ su - root
# nano /etc/sysconfig/iptables

Fëllt déi folgend Regelen un.

-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

Restart iptables fir Reegele mat dem folgenden Kommando z'applizéieren.

# service iptables restart

NOTÉIERT: Wann Dir Seafile Standard Ports am Installatiounsprozess geännert hutt, update Är Firewall iptables Regelen entspriechend.

8. Elo ass et Zäit Seafile Server ze testen. Wiesselt op Seafile Benotzer an seafile-server Verzeichnis an start de Server mat seafile.sh an seahub.sh Skripte.

Déi éischte Kéier wann Dir de seahub.sh Skript ufänkt, erstellt en Verwaltungskonto fir Seafile Server mat Ärer E-Mailadress a wielt e staarkt Passwuert fir den Administratorkonto, besonnesch wann Dir dës Konfiguratioun an engem Produktiounsëmfeld setzt.

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

9. Nodeems de Server erfollegräich gestart ass, öffnen e Browser a navigéiert op Är Server IP Adress oder Domain Numm um Hafen 8000 mat HTTP Protokoll, dann aloggen mat Ärem Admin Kont erstallt op der uewen Schrëtt.

http://system_IP:8000

OR 

http://domain_name:8000

10. No der éischter Konfiguratiounstester, stoppt de Seafile-Server an erstellt en init-Skript, deen Iech hëllefe méi einfach de ganze Prozess ze verwalten, grad wéi all aner Linux System-Daemon-Prozesser.

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

Füügt de folgenden Inhalt op dësem init Skript - Wann Seafile op engem anere System Benotzer installéiert ass, vergewëssert Iech de Benotzer a Weeër deementspriechend op su - $USER -c Linnen ze aktualiséieren.

#!/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. Nodeems init Datei erstallt gouf, gitt sécher datt et Ausféierungsrechter huet a verwalt de Prozess mat Start, Stop an Restart schalt. Elo kënnt Dir de Seafile Service beim Systemstart mat der chkconfig Kommando addéieren.

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

12. Par défaut benotzt Seafile Server 8000/TCP HTTP-Port fir Webtransaktiounen. Wann Dir Zougang zum Seafile Server vum Browser um Standard HTTP Port wëllt benotzen, benotzt de folgenden init Skript deen de Server um Port 80 ufänkt (bewosst datt e Service op Ports ënner b>1024 erfuerdert Root Privilegien).

# nano /etc/init.d/seafile

Füügt de folgenden Inhalt op dësem init Skript fir Seafile um Standard HTTP-Port ze starten. Wann Seafile op engem anere Systembenotzer installéiert ass, vergewëssert Iech de Benotzer a Weeër deementspriechend op su - $USER -c an $HOME Linnen ze aktualiséieren.

#!/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. Wann Dir virdru Seafile um Port 8000 gestart hutt, vergewëssert Iech datt all Prozesser ëmbruecht ginn, start de Server um Port 80.

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

Öffnen e Browser a riicht se op déi folgend Adress.

http://system_ip 

OR

http://domain_name.tld

14. Dir kënnt och verifizéieren op wéi eng Ports Seafile leeft mat netstat Kommando.

# netstat -tlpn

Dat ass et! Seafile ka glécklech aner Cloud Kollaboratiouns- a Dateisynchroniséierungsplattformen ersetzen wéi ëffentlech Dropbox, Owncloud, Pydio, OneDrive, etc. op Ärer Organisatioun, entwéckelt fir besser Teamwork a voll Kontroll iwwer Är Späichere mat fortgeschratt Sécherheet am Benotzerraum.

A mengem nächsten Artikel wäert ech decken wéi Dir de Seafile Client op Linux a Windows Systemer installéiere wëllt an Iech och weisen wéi Dir mam Seafile Server verbënnt. Bis dann bleift op Tecmint ofgeschloss a vergiesst net Är wäertvoll Kommentarer ze ginn.