Instaliranje Seafile (sigurne pohrane u oblaku) s MySQL bazom podataka u RHEL/CentOS/SL 7.x/6.x


Seafile je napredna aplikacija otvorenog koda za kolaboracijsku pohranu u oblaku napisana u Pythonu s podrškom za dijeljenje datoteka i sinkronizaciju, timsku suradnju i zaštitu privatnosti pomoću enkripcije na strani klijenta. Izgrađen je kao multiplatformska datoteka koja se sinkronizira s klijentima koji radi na svim glavnim platformama (Linux, Raspberry Pi, Windows, Mac, iPhone i Android) i može se lako integrirati s lokalnim uslugama kao što su LDAP i WebDAV ili se može implementirati pomoću naprednih mrežne usluge i baze podataka kao što su MySQL, SQLite, PostgreSQL, Memcached, Nginx ili Apache Web Server.

Ovaj vodič će vas voditi korak po korak u instalaciji Seafile poslužitelja na RHEL/CentOS/Scientific Linux 7.x/6.x implementiranom s MySQL bazom podataka, s početnim init skripte za pokretanje poslužitelja na zadanom Seafile portu (8000/TCP) i zadanom HTTP transakcijskom portu (80/TCP), kreirajte potrebna pravila vatrozida za otvaranje potrebnih portova.

Zahtjevi

  1. Minimalna instalacija CentOS 6.5 sa statičkom IP adresom.
  2. MySQL/MariaDB baza podataka
  3. Python 2.6.5+ ili 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python slikanje
  7. Python-mysqldb

Ova instalacijska procedura testirana je na CentOS 6.4 64-bitnom sustavu, ali se može koristiti i na drugim distribucijama Linuxa sa specifikacijom da se skripte za pokretanje init razlikuju od jedne distribucije do druge .

Korak 1: Instalirajte Python module

1. Prvo izvršite Ažuriranje sustava, zatim instalirajte sve potrebne Python module pomoću sljedećih naredbi.

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

2. Ako koristite Debian ili Ubuntu poslužitelj instalirajte sve Python module sa sljedećim naredbama.

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

Korak 2: Instalirajte Seafile poslužitelj

3. Nakon što su svi Python moduli instalirani, stvorite novog korisnika sustava sa jakom lozinkom koja će se koristiti za host konfiguracije Seafile poslužitelja i svih podataka u njegovom početnom direktoriju, a zatim se prebacite na novostvoreni korisnički račun.

adduser seafile
passwd seafile
su - seafile

4. Zatim se prijavite u MySQL bazu podataka i kreirajte tri baze podataka, po jednu za svaku komponentu Seafile poslužitelja: ccnet poslužitelj, seafile poslužitelj i seahub s jednim korisnikom za sve baze podataka.

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. Sada je vrijeme za preuzimanje i instaliranje Seafile poslužitelja. Idite na službenu stranicu za preuzimanje Seafilea i preuzmite posljednje izdanje arhive .Tar Linuxa za svoju arhitekturu poslužitelja koristeći naredbu wget, zatim je raspakirajte u svoj kućni Seafile korisnik koji je kreiran ranije i unesite Seafile ekstrahirani imenik.

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. Za instalaciju Seafile poslužitelja koristeći MySQL bazu podataka pokrenite setup-seafile-mysql.sh inicijalizacijsku skriptu i odgovorite na sva pitanja koristeći sljedeće opcije konfiguracije, nakon što skripta potvrdi postojanje svi moduli potrebni za Python.

./setup-seafile-mysql.sh
  1. Kako se zove vaš server?=odaberite opisni naziv (razmaci nisu dopušteni).
  2. Što je IP ili domena poslužitelja?=unesite IP adresu vašeg poslužitelja ili valjani ime domene.
  3. Koji port želite koristiti za ccnet poslužitelj?=pritisnite [Enter] – ostavite zadano – 10001.
  4. Gdje želite staviti podatke morske datoteke?=pritisnite [Enter] – zadana lokacija bit će vaš direktorij $HOME/seafile-data.
  5. Koji port želite koristiti za poslužitelj morske datoteke?=pritisnite [Enter] – ostavite zadano – 12001.

  1. Koji port želite koristiti za httpsserver seafilea?=pritisnite [Enter] – ostavite zadano – 8082.
  2. Odaberite način za inicijaliziranje baza podataka s morskim datotekama:=odaberite 1 i navedite zadane MySQL vjerodajnice: localhost, 3306 i root lozinku.
  3. Unesite ime za MySQL korisnika seafile:=seafile (ako ste stvorili drugo korisničko ime unesite to korisničko ime) i seafile MySQL korisničku lozinku.
  4. Na ccnet-poslužitelju, seafile-poslužitelju i seahub bazama podataka samo pritisnite tipku [Enter] – zadano.

Nakon što se Seafile Server uspješno instalira, on će generirati neke korisne informacije kao što su koji portovi moraju biti otvoreni na Vašem Vatrozidu da bi se omogućila vanjska veza i kojim skriptama treba rukovati da bi se pokrenuo poslužitelj.

Korak 3: Otvorite vatrozid i stvorite init skriptu za Seafile

7. Prije pokretanja Seafile poslužitelja iz lokalne skripte za test, vratite se na root račun i otvorite konfiguraciju datoteke vatrozida iptables koja se nalazi na /etc/sysconfig/ sistemsku stazu i dodajte sljedeća pravila retka prije prvog retka REJECT, zatim ponovno pokrenite iptables za primjenu novih pravila.

su - root
nano /etc/sysconfig/iptables

Dodajte sljedeća pravila.

-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

Ponovno pokrenite iptables za primjenu pravila pomoću sljedeće naredbe.

service iptables restart

NAPOMENA: Ako ste promijenili Seafile standardne priključke u procesu instalacije, ažurirajte pravila Vatrozida iptables u skladu s tim.

8. Sada je vrijeme za testiranje Seafile poslužitelja. Prebacite se na Seafile korisnika i direktorij seafile-server i pokrenite poslužitelj pomoću skripti seafile.sh i seahub.sh.

Prvi put kada pokrenete skriptu seahub.sh, stvorite administrativni račun za Seafile poslužitelj koristeći svoju adresu e-pošte i odaberite jaku lozinku za administrativni račun, posebno ako implementirate ovu konfiguraciju u proizvodnom okruženju.

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

9. Nakon što je poslužitelj uspješno pokrenut, otvorite preglednik i idite na IP adresu ili naziv domene vašeg poslužitelja na portu 8000 koristeći HTTP protokol, a zatim se prijavite pomoću svog administratorskog računa na gornjem koraku.

http://system_IP:8000

OR 

http://domain_name:8000

10. Nakon prvih konfiguracijskih testova, zaustavite Seafile poslužitelj i izradite init skriptu koja će vam pomoći da lakše upravljate cijelim procesom, baš kao i bilo kojim drugim demon procesom Linux sustava.

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

Dodajte sljedeći sadržaj ovoj init skripti – Ako je Seafile instaliran na drugom korisniku sustava, obavezno ažurirajte korisnika i staze u skladu s tim na su – $USER -c redovima.

#!/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. Nakon što je datoteka init stvorena, provjerite ima li dopuštenja za izvršavanje i upravljajte procesom koristeći start, stop i ponovno pokretanje sklopke. Sada možete dodati uslugu Seafile pri pokretanju sustava pomoću naredbe chkconfig.

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

12. Seafile poslužitelj prema zadanim postavkama koristi 8000/TCP HTTP port za web transakcije. Ako želite pristupiti Seafile poslužitelju iz preglednika na standardnom HTTP portu, koristite sljedeću init skriptu koja pokreće poslužitelj na portu 80 (imajte na umu da pokretanje usluge na portovima ispod < b>1024 zahtijeva root povlastice).

nano /etc/init.d/seafile

Dodajte sljedeći sadržaj ovoj init skripti da pokrenete Seafile na standardnom HTTP priključku. Ako je Seafile instaliran na drugom korisniku sustava, obavezno ažurirajte korisnika i staze u skladu s tim u redovima su – $USER -c i $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. Ako ste prethodno pokrenuli Seafile na portu 8000 provjerite jesu li svi procesi prekinuti, pokrenite poslužitelj na portu 80.

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

Otvorite preglednik i usmjerite ga na sljedeću adresu.

http://system_ip 

OR

http://domain_name.tld

14. Također možete provjeriti na kojim portovima radi Seafile pomoću naredbe netstat.

netstat -tlpn

To je to! Seafile može sretno zamijeniti druge platforme za suradnju u oblaku i sinkronizaciju datoteka kao što su javni Dropbox, Owncloud, Pydio, OneDrive itd. na vašoj organizaciji, dizajniran za bolji timski rad i potpunu kontrolu nad vašom pohranom uz naprednu sigurnost u korisničkom prostoru.

U svom nadolazećem članku opisat ću kako instalirati Seafile klijent na Linux i Windows sustave i pokazati vam kako se spojiti na Seafile poslužitelj. Do tada pratite Tecmint i ne zaboravite dati svoje vrijedne komentare.