Raspberry Pi + Seafile (cz. 3)

Przyszła pora (z dużym opóźnieniem) na instalację serwera Seafile i jego klientów.

Serwer

  1. Loguję się na Raspberry Pi za pomocą ssh.

  2. Pobieram najświeższą stabilną wersję instalacyjną serwera dla Raspberry Pi ze strony: https://github.com/haiwen/seafile-rpi/releases (ostatnia wersja pliku to 5.1.4). Paczka ma wielkość 19,6 MB. Najlepiej skopiować linka prowadzącego do spakowanego pliku tar.gz, wpisać wget oraz wkleić skopiowany link.

  3. Rozpakowuję skompresowany plik posługując się narzędziem tar:

    tar -zxvf seafile*.tar.gz

  4. Usuwam skompresowany plik:

    rm seafile*.tar.gz

  5. Wybieram bazę, na której będzie opierał się serwer. Do wyboru mam sqlite i MySQL. W myśl zasady - im prościej, tym lepiej - wybieram sqlite (mój serwer Seafile oparty o sqlite działa bezawaryjnie już rok czasu). Na stronie twórców Seafile można znaleźć informację, że jeśli dane trzymane są na nośniku zewnętrznym, na którym jest jeden z dwóch sieciowych systemów plików NFS (Network File System) bądź CIFS (Common Internet File System) to wówczas zalecaną bazą danych jest MySQL. Wybór bazy wpływa na proces instalacji. Najprościej można to przedstawić za pomocą poniższego schematu:

    rpi01

  6. Instaluję następujące pakiety: python (2.7), python-setuptools, python-imaging, python-ldap, sqlite3.

     apt-get update
    
     apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap 
    
     apt-get install sqlite3 
    

    W przypadku wyboru drugiej bazy danych, zamiast sqlite instaluję:

     apt-get install mysql-server python-mysqldb
    

    Zaraz po instalacji dobrze jest wyczyścić lokalne repozytorium:

     apt-get clean
    
  7. Po rozpakowaniu pliku tar.gz powstał katalog, wchodzę do niego:

     cd seafile-server*
    
  8. Uruchamiam skrypt instalacyjny. W przypadku wyboru bazy sqlite należy uruchomić skrypt setup-seafile.sh. Wybór bazy MySQL skutkuje koniecznością uruchomienia skryptu setup-seafile-mysql.sh. Skrypt należy uruchomić poprzez sudo. Można bez sudo, ale tylko wówczas, gdy instalacja miałaby przebiegać wyłącznie w katalogu użytkownika i w tym samym katalogu znajdowałby się katalog z danymi Seafile. Wskazanie katalogu z danymi znajdujacego się poza katalogiem użytkownika wymaga posiadania prawa zapisu do tego katalogu.

  9. W czasie uruchomienia skryptu setup-seafile.sh jestem pytany o:

    • nazwę serwera Seafile - dozwolone są litery, cyfry, znak podkreślenia i myślnik (minus), od 3 do 15 znaków;

    • adres IP lub nazwę domeny serwera Seafile - na tym etapie najlepiej podać adres IP urządzenia w sieci LAN, np. 192.168.1.140; domeną będziesz mógł się także posługiwać, jeśli ją skonfigurujesz, dotyczy to także usługi DDNS;

    • ścieżkę katalogu, w którym będą dane serwera Seafile, domyślną ścieżką jest /home/pi/seafile-data, u mnie jest to katalog: /mnt/Data, będący odrębną partycją;

    • nr portu TCP serwera plików Seafile, domyślnym portem jest port o nr 8082; ważne, aby później ustawić odpowiednio w routerze; na chwilę obecną bez większego znaczenia.

    Na koniec dostaję podsumowanie odpowiedzi. Naciśnięcie przycisku Enter oznacza akceptację konfiguracji.

  10. Jeśli zdecydowałbym się na bazę MySQL, to uruchamiam skrypt setup-seafile-mysql.sh. Poza poprzednimi pytaniami musiałbym jeszcze dodatkowo podać:

    • host i port serwera bazy MySQL,

    • hasło konta root serwera bazy MySQL (ten, który podałbym podczas instalacji bazy),

    • nazwę użytkownika bazy MySQL (jeśli takiego nie ma, zostanie utworzony),

    • nazwę bazy konfiguracji Seafile (ccnet) oraz nazwę bazy serwera Seafile.

    Najczęściej odpowiedziami będą domyślne wartości.

  11. Konfiguracja obu skryptów zostaje zapisana w katalogu $HOME/ccnet. Zostaje też utworzona konfiguracja w katalogu, który wskazałem do przechowywania danych. Dostaję informację o sposobie uruchomienia, zatrzymania i zrestartowania serwera.

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

    Muszę teraz uruchomić serwer, aby dokończyć jego konfiguracji, czyli wydać polecenie:

    sudo ./seafile.sh start
    

    a następnie

    sudo ./seahub.sh start
    

    Podczas pierwszego uruchomienia skryptu seahub.sh jestem pytany o dane konta administratorta serwera Seafile (adres email i hasło).

    rpi02

    To ostatni etap konfiguracji serwera Seafile. W tym momencie serwer jest uruchomiony. Można się o tym przekonać logując się na konto administratora z adresu, który został podany w pkt. 9 wraz z podaniem nr portu, np. http://192.168.1.140:8000. Domyślne nr portów to 8000 dla interfejsu WWW serwera oraz 8082 dla samego serwera.

  12. Po zalogowaniu się na stronie serwera do konta administratora przywita nas następujący komunikat:

    rpi03

    Oznacza to, że nasz serwer Seafile jest gotowy i działa!

Klienci

  1. Na stronie firmowej są do pobrania wszystkie niezbędne pliki do instalacji klientów serwera Seafile. Dla systemu GNU/Linux dostępne są paczki deb 32-bitowe i 64-bitowe.

    Dla dystrybucji debianopodobnych najlepszym rozwiązaniem jest pobranie paczki i jej instalacja za pomocą polecenia:

     dpkg -i seafile*.deb
    

    Najczęściej próba instalacji zakończy się informacją o niespełnionych zależnościach, dlatego zaraz po tym, powinna zostać podana komenda naprawiająca brak zależności w postaci:

     apt-get install -f
    

    Z reguły chodzi o brakujące biblioteki libqt5.

  2. Nieco inaczej będzie przybiegała instalacja klienta w dystrybucji Fedora. Procedura ta jest dobrze opisana na stronie repozytorium Fedory Copr. Instalację klienta Seafile w Fedorze należy rozpocząć właśnie od dodania tego repozytorium:

     dnf copr enable pkerling/seafile
    

    a następnie można zainstalować klienta:

     dnf install seafile-client-qt 
    

    W instrukcji jest podane polecenie yum, ja w Fedorze posługuję się już dnf.

    Niestety, w repozytorium Copr nie ma najświeższej paczki klienta Seafile - dostępna jest 5.1.1 (najnowsza 5.1.3).

  3. W przypadku innych dystrybucji należy szukać konkretnych stron z instrukcjami instalacji - przykładem jest choćby strona poświęcona dystrybucji Arch.

  4. Seafile posiada też aplikacje klienckie dla systemów mobilnych - Android i iOS. Paczkę dla Androida można z powowodzeniem zainstalować na systemie Blackberry OS 10. Zresztą nie tylko zainstalować - działa bezbłędnie.

    rpi04

    Ważne! W przypadku wersji androidowej klienta (iOS nie miałem okazji sprawdzić, może jednak być podobnie) możemy korzystać z jego wszystkich funkcji - z wyjątkiem jednej. Jeśli chcemy edytować pliki za pomocą klienta Seafile, musimy mieć jeszcze zainstalowaną w systemie aplikację obsługującą dany format pliku. W przypadku notatek wzbogaconych językiem znaczników Markdown mam zainstalowaną dodatkowo aplikację Writer Plus, dzięki czemu mogę tworzyć pliki Markdown i je edytować z poziomu klienta Seafile.

  5. Obojętne na jakim systemie zainstalujemy aplikację klienta Seafile, po procesie instalacji należy dokonać konfiguracji aplikacji. Zaczynamy od wskazania katalogu, w którym będą znajdoway się biblioteki Seafile (nie dotyczy wersji mobilnej):

    rpi05

    Następnie podajemy adres serwera i login do konta użytkownika:

    rpi06

    Aplikacja jest gotowa!

    rpi07

Na zakończenie mamy w pełni sprawne środowisko Seafile działające w ramach sieci LAN składające się z serwera i klienta. Pozostaje jeszcze napisać kilka słów na temat użytkowania Seafile, zarządzania serwerem oraz jego otwarcia poza sieć LAN. Wkrótce.

greyseal

comments powered by Disqus