Home Server: Εγκατάσταση Nextcloud – σύνδεση NAS για αρχεία – SSL – PHP 7 – MariaDB (Μέρος 5)


Έχουμε τελειώσει με την προπαρασκευή του Home Server μας οπότε με το σημερινό μάθημα θα δούμε την εγκατάσταση του Nextcloud για όποιον ενδιαφέρεται να αντικαταστήσει / συμπληρώσει το Dropbox, Google Drive, OneDrive ή όποια άλλη υπηρεσία κοινόχρηστων αρχείων διαθέτει.

Εισαγωγή

Το Nextcloud για όποιον δεν γνωρίζει, δημιουργήθηκε όταν οι Core Developers και οι Top 10 contributors έκαναν fork το ownCloud. Η εξέλιξή του απο τότε ήταν ραγδαία και σε συνεργασία με Canonical και WesternDigital είδαμε και ένα προϊόν, το Nextcloud Box για όποιον ενδιαφέρετε να έχει ένα έτοιμο σύστημα (δείτε και το άρθρο «Μερικές σκέψεις περί Nextcloud box«).

Στο παρόν άρθρο θα δούμε την εγκατάσταση του Nextcloud στον προσωπικό μας Home Server μιας και ήδη έχουμε ολοκληρώσει τις βασικές του ρυθμίσεις. Για όσους δεν τα έχουν δει, μπορείτε να τα διαβάσετε στο tag #home-server

Υπάρχουν πολλαπλοί τρόποι με τους οποίους μπορείτε να κάνετε εγκατάσταση το Nextcloud. Απο έτοιμα πακέτα έως και επίσημα αποθετήρια από όπου μπορείτε σε ελάχιστα λεπτά να έχετε εγκατεστημένο και έτοιμο για χρήση Nextcloud στο σπίτι σας.

Στο παρόν οδηγό θα δούμε πως γίνεται η εγκατάσταση «χεράτα»…

Προετοιμασία του Home Server μας

Στον Home Server μας, θα πρέπει να εγκαταστήσουμε τις απαραίτητες υπηρεσίες Apache και Mariadb όπως επίσης και την PHP7 μαι με κάποια πρόσθετα της.

sudo apt install apache2 mariadb-server libapache2-mod-php7.0

sudo apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php7.0-mbstring php7.0-xml php7.0-zip php-imagick

Σημείωση: Σε Debian και παρεμφερείς, το πακέτο php-imagick θα το βρείτε ως php5-imagick

Αφού ολοκληρωθεί η εγκατάστασή τους θα χρειαστεί να γίνει και λήψη της τελευταίας έκδοσης του Nextcloud μαζί με τα αρχεία πιστοποίησης αυθεντικότητας και ακεραιότητας:

wget https://download.nextcloud.com/server/releases/latest.zip

wget https://download.nextcloud.com/server/releases/latest.zip.sha256

wget https://download.nextcloud.com/server/releases/latest.zip.asc

wget https://nextcloud.com/nextcloud.asc

Ωραία, τώρα θα πρέπει να πιστοποιήσουμε ότι το Nexcloud που κατεβάσαμε δεν έχει παραποιηθεί από κάποιον κακόβουλο χρήστη:

sha256sum -c latest.zip.sha256 < latest.zip

latest.zip: OK

Εφόσον δούμε «ΟΚ» δεν έχουμε να φοβηθούμε τίποτα. Οτιδήποτε άλλο θα πρέπει αν μας βάλει σε υποψίες είτε κάποιας διακοπής στην λήψη του Nextcloud είτε κάποιας παραποίησης που έχει γίνει οπότε δεν θα πρέπει να συνεχίσετε σε καμία περίπτωση.

Ας εισάγουμε επίσης, την ψηφιακή υπογραφή των δημιουργών του Nextcloud:

gpg --import nextcloud.asc

Τώρα, μπορούμε να ελέγξουμε με την υπογραφή τους για την αυθεντικότητα του Nextcloud που κατεβάσαμε:

gpg --verify latest.zip.asc latest.zip

gpg: Signature made Tue 13 Dec 2016 03:27:47 PM EET using RSA key ID A724937A
gpg: Good signature from "Nextcloud Security <security@nextcloud.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2880 6A87 8AE4 23A2 8372 792E D758 99B9 A724 937A

Εφόσον βλέπουμε το Good signature μπορούμε να συνεχίσουμε με την δουλειά μας.

Εγκατάσταση Nextloud

Έχουμε κατεβάσει την τελευταία έκδοση του Nextcloud οπότε πάμε:

  1. Να το αποσυμπιέσουμε
  2. Να το μεταφέρουμε στον φάκελο του server
  3. Να δώσουμε τα δικαιώματα χρήσης του φακέλου του Nextcloud στον χρήστη του Apache (www-data στις Debian διανομές, ενώ στις Red Hat διανομές είναι Apache)
  4. Να ρυθμίσουμε τον Apache να «σερβίρει» το Nextcloud
unzip latest.zip

sudo cp -r nextcloud /var/www/html/

sudo chown -R www-data:www-data /var/www/html/nextcloud/

Πάμε, όπως είπαμε να ρυθμίσουμε τον Apache. Θα χρειαστεί να δημιουργήσουμε ένα αρχείο «nextcloud.conf»:

sudo nano /etc/apache2/sites-available/nextcloud.conf

και να προσθέσουμε τα παρακάτω:

Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

Αποθηκεύουμε και κλείνουμε το αρχείο ( Ctrl+X –> Y –> Enter). Τέλος το ενεργοποιούμε ενεργοποιούμε, έπειτα ενεργοποιούμε και κάποια module του Apache και τέλος, κάνουμε επανεκκίνηση τον Apache.

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

sudo systemctl restart apache2.service

Ενεργοποίηση SSL για κρυπτογραφημένη σύνδεση με το Nextcloud

Η χρήση SSL είναι απαραίτητη ιδιαίτερα σε όσους επιθυμούν να έχουν πρόσβαση στο Nextcloud τους και εκτός σπιτιού μιας και παρέχει κρυπτογραφημένη διασύνδεση μεταξύ του υπολογιστή σας και του Server σας στο σπίτι. Παρόλο που θα μπορούσατε να χρησιμοποιήσετε κάποια υπηρεσία όπως το «Let’s Encrypt», εμείς όμως θα δημιουργήσουμε το δικό μας και θα το χρησιμοποιήσουμε για το Nextcloud μας.

Δημιουργούμε το ζεύγος κλειδιού και πιστοποιητικού:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt

όπου θα σας γίνουν κάποιες ερωτήσεις και απαντάτε όπως σας βολεύει. Η πιο σημαντική γραμμή είναι αυτή που ζητά το Domain Name (π.χ. FQDN του διακομιστή ή το όνομά σας). Θα πρέπει να εισάγετε το όνομα τομέα (όπως είδαμε στο άρθρο «Πρόσβαση στον Server μας και εκτός σπιτιού«) που σχετίζεται με το διακομιστή σας ή, πιο πιθανό, την Στατική δημόσια διεύθυνση IP του διακομιστή σας. Τέλος να σημειώσουμε ότι το πιστοποιητικό θα ισχύει για 1 χρόνο οπότε και μπορούμε να ξαναδημιουργήσουμε ένα φρέσκο όταν λήξει, με την ίδια εντολή

Η ερωτήσεις θα είναι όπως παρακάτω:

Generating a 2048 bit RSA private key
...........+++
..........................................................................................+++
writing new private key to '/etc/ssl/private/selfsigned.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:GR
State or Province Name (full name) [Some-State]:Greece
Locality Name (eg, city) []:Thessaloniki
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cerebrux.net
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:to-domain-tou-servermou.com
Email Address []:to-email-epikinonias@kapou.gr

Δημιουργούμε ένα backup του default-ssl.conf και έπειτα το επεξεργαζόμαστε:

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

sudo nano /etc/apache2/sites-available/default-ssl.conf

και αλλάζουμε δύο σημεία, το ServerName όπου βάζουμε το Domain Name η την στατική IP που δηλώσαμε κατα την δημιουργία του πιστοποιητικού και το SSLCertificateFile και SSLCertificateKeyFile όπου γράφουμε το όνομα των αρχείων του ζεύγους κλειδιού και πιστοποιητικού που δημιουργήσαμε πριν. Λογικά θα μοιάζει με το παρακάτω:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName TO_IP_H_TO_DOMAIN_TOU_SERVER
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLCertificateFile      /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/selfsigned.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>

</VirtualHost>
</IfModule>

Τώρα, πάμε να πούμε στον Apache να χρησιμοποιεί εξορισμού SSL.

sudo nano /etc/apache2/sites-available/000-default.conf

στο οποίο κάτω απο το <VirtualHost *:80> βάζουμε:

Redirect "/" "https://Το_Domain_ή_την_IP/"

Το αποθηκεύουμε και κλείνουμε. Τέλος, ίσως να χρειαστεί να ρυθμίσετε το Firewall σας να επιτρέπει τις διασυνδέσεις με SSL (που συνήθως χρησιμοποιεί την Port 443). Μπορείτε να διαβάσετε και να θυμηθείτε πως το κάνουμε στο άρθρο «Τα πρώτα 10 λεπτά στον server μας«.

Αφού ολοκληρώσατε τις ρυθμίσεις και στο Firewall σας, μένει μόνο να πούμε στον Apache ότι από εδώ και πέρα θα σερβίρεις με SSL.

sudo a2ensite default-ssl

sudo systemctl restart apache2.service

Ωραία…. δοκιμάστε τώρα στον browser σας να επισκεφτείτε το Domain η την IP του server σας. Λογικά θα σας ανακατευθύνει σε https:// και θα σας τρομάξει με την παρακάτω εικόνα :

 

Μην τρομάζετε ! Είναι απόλυτα λογικό η Mozilla Foundation να μην γνωρίζει το πιστοποιητικό μας και να θεωρεί ότι είναι επικίνδυνο. Απλά πατάμε «Advanced» και «Add Exeption» και στο παράθυρο που θα ανοίξει θα πατήσουμε «Confirm exeption».

Προετοιμασία και ρύθμιση της Βάσης Δεδομένων MariaDB

Πριν ξεκινήσουμε, ας τρέξουμε το «mysql_secure_installation» για να έχουμε μια βάση δεδομένων με ρυθμισμένη «βασική» ασφάλεια:

sudo mysql_secure_installation

Στο οποίο απαντάμε με πολύ προσοχή. Θα μας ζητήσει να βάλουμε ένα password στον root χρήστη της βάσης δεδομένων (ΠΡΟΣΟΧΗ δεν είναι ο Root χρήστης του λειτουργικού !) ενώ σε όλα τα άλλα απλά πατάμε ένα «Y».

Πάμε τώρα να δημιουργήσουμε την βάση δεδομένων που χρειάζεται το Nextcloud μας:

sudo mysql -u root -p

όπου θα μας ζητήσει να βάλουμε το συνθηματικό (password) που ορίσαμε με το mysql_secure_installation και έπειτα θα μπούμε στο περιβάλλον εργασίας της MariaDB βάσης δεδομένων. Εκεί γράφουμε μια μια τις εντολές και πατάμε enter. Οι εντολές όπως θα δείτε είναι πολύ απλές και επεξηγηματικές. Προσέξτε μόνο στο IDENTIFIED BY να γράψετε το συνθηματικό που θα έχει ο χρήστης (nextclouduser) που φτιάχνουμε.

CREATE DATABASE nextcloud;

CREATE USER nextclouduser@localhost IDENTIFIED BY 'Συνθηματικό του Χρήστη';

GRANT ALL PRIVILEGES ON nextcloud.* TO nextclouduser@localhost;

EXIT

Προετοιμασία του NAS ως χώρου αποθήκευσης αρχείων για το Nextcloud

Πριν συνεχίστε, θα πρέπει να έχετε προετοιμάσει τον NAS όπως διαβάσατε στο άρθρο «Σύνδεση με δικτυακό δίσκο«.

Σε γενικές γραμμές θα πρέπει στο NAS σας:

  • Να έχετε δημιουργήσει έναν φάκελο π.χ. data
  • Να έχετε ενεργοποιήσει την υπηρεσία Samba/Windows share
  • Να ορίσετε έναν χρήστη / συνθηματικό για την πρόσβαση στον φάκελο data που θα γίνει μέσω Samba

Το Nextcloud πέρα από την βάση δεδομένων, χρειάζεται και έναν φάκελο «data» για να αποθηκεύει τα αρχεία μας.  Στον Home Server μας λοιπόν θα πάμε να τον δημιουργήσουμε και να δώσουμε τα δικαιώματα χρήσης του στον χρήστη του Apache:

sudo mkdir /var/www/html/nextcloud/data sudo chmod -R 770 /var/www/html/nextcloud/data sudo chown -R www-data:www-data /var/www/html/nextcloud/ 

Επίσης, επιβεβαιώστε ότι έχετε εγκαταστήσει στον Home Server το πακέτο cifs-utils.

sudo apt install cifs-utils

Εφόσον έχετε προετοιμάσει το NAS, πριν προχωρήσετε θα πρέπει να δοκιμάσετε ότι όντως μπορείτε να προσαρτήσετε τον φάκελο data του NAS στον φάκελο data του Nextcloud στον Home Server σας. Οπότε τρέχετε:

sudo mount -t cifs //ip-tou-nas-diskou/Volume/data /var/www/html/nextcloud/nas -o username=XRISTIS-NAS

Αν προσαρτηστεί χωρίς να εμφανίσει κάποιο σφάλμα, όλα καλά !. Τώρα μπορούμε να το απο-προσαρτήσουμε:

sudo umount /var/www/html/nextcloud/data

Τώρα θα χρειαστεί να προσθέσουμε στο fstab του Home Server μας μια εγγραφή για την αυτόματη προσάρτηση του φακέλου data του NAS στον φάκελο data του Nextcloud. Για να γίνει αυτό, θα πρέπει να πάρουμε την «ταυτότητα» του χρήστη Apache του Home Server μας ώστε να γίνει η χρήση του ως UID. Ο λόγος είναι να μπορεί ο χρήστης Apache να μπορεί να διαβάζει/γράφει δεδομένα στον φάκελο data ο οποίος όμως είναι σε εξωτερικό δικτυακό δίσκο NAS.

id www-data

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Οπότε το UID είναι 33. Προσθέτουμε λοιπόν την γραμμή στο /etc/fstab:

//ip-tou-nas-diskou/Volume/data /var/www/html/nextcloud/nas cifs user,uid=33,rw,suid,username=XRISTIS_NAS,password=PASSWORD_XRISTI_NAS,file_mode=0770,dir_mode=0770,noperm 0 0 

Αποθηκεύστε και κλείστε το αρχείο /etc/fstab. Σε αυτή την φάση, κάνουμε επανεκκίνηση τον server μας.

Ολοκλήρωση της εγκατάστασης Nextcloud

Έχουμε ολοκληρώσει την διαμόρφωση του Home Server μας για να φιλοξενήσει το Nextcloud:

  • Εγκαταστήσαμε και ρυθμίσαμε τον Apache
  • Εγκαταστήσαμε την PHP7
  • Εγκαταστήσαμε και ρυθμίσαμε την βάση δεδομένων MariaDB
  • Ρυθμίσαμε την SSL διασύνδεση για την ασφάλεια στην «επικοινωνία» με τον Home Server
  • Ρυθμίσαμε τον δικτυακό δίσκο NAS να χρησιμοποιείται ως χώρος αποθήκευσης των αρχείων μας για το Nextcloud

Το μόνο που μένει τώρα είναι να ξεκινήσουμε το Nextcloud για να ολοκληρωθεί η εγκατάστασή του. Πάμε λοιπόν στον browser μας και γράφουμε την διεύθυνση του Home Server μας:

http://ip-h-domain/nextcloud

Λογικά αν όλα έχουν πάει καλά θα πρέπει να δείτε την αρχική σελίδα του Nextcloud όπως παρακάτω:

pos-ftiaxnoume-server-egkatastasi-nextcloud-me-nas

Τα στοιχεία που πρέπει να συμπληρώσετε, τα έχουμε ήδη προετοιμάσει:

  • Όνομα χρήστη διαχειριστή : Εδώ δημιουργείτε ένα διαχειριστή
  • Συνθηματικό του διαχειριστή: Εδώ καλό είναι να δημιουργήσετε ένα ισχυρό συνθηματικό όπως έχουμε πεί παλιότερα
  • MariaDB Username: Εδώ βάζετε το όνομα Χρήστη της βάσης που φτιάξαμε
  • MariaDB Password: Εδώ βάζετε το συνθηματικό του Χρήστη της βάσης που φτιάξαμε
  • MariaDB Database: Εδώ βάζετε το όνομα της βάσης που φτιάξαμε

Πατάμε «Finish Setup» και περιμένουμε λίγα έως αρκετά λεπτά να ολοκληρωθεί η εγκατάσταση του Nextcloud. Μόλις ολοκληρωθεί, θα δείτε την παρακάτω εικόνα:

pos-ftiaxnoume-server-nextcloud-nas-firtsscreen

Αν όλα έχουν πάει καλά, Συγχαρητήρια ! Καταφέρατε να έχετε ένα προσωπικό Dropbox / Onedrive / Google Drive. Από εδώ και πέρα σας προτείνω να :

  • Ρυθμίσετε κάποια θέματα επιδόσεων τα οποία προτείνει το Nextcloud στις Ρυθμίσεις του διαχειριστή
  • Να γίνετε μέλη της Ελληνικής Ομάδας Nextcloud στο Facebook
  • Αν έχετε Smartphone, να κατεβάσετε την εντίστοιχη εφαρμογή
  • Να κάνετε εγκατάσταση σε όσους υπολογιστές θέλετε την εφαρμογή του Nextcloud για συγχρονισμό των αρχείων σας.

Πριν κλείσουμε να αναφέρω δύο tips που αναφέρθηκαν στα σχόλια:

  1. Μετα την εγκατάσταση και αφού κάνουμε login στον Nextcloud μας, στις πληροφορίες βγάζει ένα μήνυμα κόκκινο HTSP bla bla bla…..Για να φύγει το επιλύσετε:Ανοίξτετο αρχείο /etc/apache2/sites-available/default-ssl.conf και κάτω από τη γραμμή ServerName προσθέστε αυτό:
    <VirtualHost *:443>
    
     ServerName ΟΝΟΜΑ_DOMAIN
    
     <IfModule mod_headers.c>
    
     Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
    
     </IfModule>
    
     </VirtualHost>
  2. Για να βελτιώσετε τις επιδόσεις, θα δείτε επίσης ένα μήνυμα σχετικά με την εγκατάσταση κάποιας memcache υπηρεσίας:
    Κάντε εγκατάσταση το πακέτο php-apcu και έπειτα στο αρχείο /var/www/html/nextcloud/config/config.php προσθέτουμε την γραμμή:

    'memcache.local' => '\OC\Memcache\APC',

Μετά τις παραπάνω αλλαγές θα χρειαστεί να κάνετε επανεκκίνηση τον Apache.

Για περισσότερα, μπορείτε να απευθυνθείτε στην επίσημη τεκμηρίωση του Nextcloud : Nextcloud Server Administration Manual

Θα χαρώ να ακούσω την δική σας εμπειρία ή και τυχών προβλήματα που αντιμετωπίσατε.

 

Advertisements

15 thoughts on “Home Server: Εγκατάσταση Nextcloud – σύνδεση NAS για αρχεία – SSL – PHP 7 – MariaDB (Μέρος 5)

  1. Πολύ ωραίο άρθρο! Απαντάει και σε πολλές απορίες χρηστών που δεν ξέρουν και θέλουν να το ψάξουν, πόσο εύκολο είναι να δημιουργήσει κανεις το δικό του προσωπικό cloud hosting, έχοντας τα αρχεία του προσβάσιμα από παντού, και ασφαλή!
    Δεν ξέρω μήπως ήταν χρήσιμο να αναφερθεί, ότι για να δουλέψει σωστά θα πρέπει να γίνει και το ανάλογο port forward στον router μας (καλά, ίσως να έχει αναφερθεί στο σχετικό άρθρο του Home Server που δεν άνοιξα τώρα!)…
    Με έβαλε τώρα, στην εξής σκέψη: έχω ένα NAS, που έχει επάνω του εφαρμογή owncloud. Θα μπορούσα ίσως, με την παρούσα διαδικασία, να καταργήσω το Owncloud από πάνω του να μην του τρώει και μνήμη, και να βάλω ένα raspberry να παίζει το ρόλο του Home server για αυτό τον σκοπό, έχοντας και ότι πρόσθετο χαρακτηριστικό μπορεί να προσφέρει τόσο το nextcloud σε σχέση με την παλιά έκδοση owncloud που φοράει το nas, όσο και γενικά άλλες υπηρεσίες που θα μπορούσε να τρέξει το σμέουρο, καθώς και από άποψη ταχύτητας φόρτωσης (αν και το σμέουρο έχει 100ρι ethernet controller αν δεν κάνω λάθος, ενώ το nas έχει gigabit)…

  2. Είχα κάνει το ίδιο με Owncloud σε raspberry pi 2 όμως μου φάνηκαν αρκετά αργές οι ταχύτητες download/upload και δν ξέρω αν γι αυτο φτάει η συνδεση μου η το raspberry. Επείσης το owncloud με το nextcloud διαφορές έχουν ; Εμένα μ φάνηκαν σχεδον ίδια

    1. Έχουν αρκετές διαφορές όσον αφορά κυρίως την φιλοσοφία ανάπτυξης και τις διαθέσιμες εξορισμού, εφαρμογές. Το Owncloud στοχεύει κυρίως στο να είναι ένα «File Sync Server» στην βάση του και τα υπόλοιπα τα φτιάχνει η κοινότητα. Αντίθετα, το Nextcloud θέλει να είναι ένα All in one personal cloud.

    2. Και τα δυο το ίδιο αργά θα είναι. Εάν δεν βελτιώσεις την ταχύτητα της γραμμής σου (VDSL ή οπτική ίνα που έχουμε στη Θεσσαλονίκη) δεν θα δεις διαφορά.
      Όσον αφορά τις διαφορές τις αναφέρει επιγραμματικά ο Salih. To ownCloud στοχεύει στην σταθερότητα-ασφάλεια (δες το σαν lts) ενώ το Nextcloud έχει προσθέσει πολλές εφαρμογές που αφήνουν αρκετά κενά ασφαλείας (δες το σαν τις 6μηνιαίες εκδόσεις διανομών).

  3. Η δική μου εμπειρία είναι λίγο διαφορετική. Το πρόβλημα που είχα (και πιστεύω δεν είμαι ο μόνος) είναι ότι δεν ήθελα να ασχολούμαι με το maintenance του nextcloud, τον server, το monitoring και όλα όσα έχουν να κάνουν μαζί του. Ήθελα να το στήσω μία φορά, και μετά απλά να είμαι ‘πελάτης’ σε αυτό. Η λύση που βρήκα συνδέει τρία πράγματα: Continuous Delivery, Microservices, Containers. Με απλά λόγια έστησα κάθε service να λειτουργεί σαν app μέσω του Docker. Δηλαδή, ένα container για το netxloud, τρία για το ELK Stack (1xLogstash, 1xElasticSearch, 1xKubana), ένα για το CI/CD, ένα για το MicroOS, και ένα για το Kubernetes. Η όλη φάση λειτουργεί ως εξής: κάθε φορά που υπάρχει μία καινούρια stable έκδοση του nextcloud ή του ELK Stack, τρέχω κάποια δικά μου test για να σιγουρευτώ ότι τα features που χρησιμοποιώ, εξακολουθούν να δουλεύουν. Αν περάσει το test, τότε γίνεται αυτόματα deploy καινούριο container με αυτά. Η διαχείριση αυτού του cluster γίνεται με το Kubernetes, το οποίο χρησιμοποιεί από πίσω salt. Στο configuration έχω βάλει να λειτουργούν 2 nodes, οπότε ακόμα κι αν πέσει το ένα δεν έχω πρόβλημα (load balancing) γιατί θα λειτουργεί το άλλο, ενώ εν το μεταξύ το k8n το παίρνει πρέφα και σετάρει ξανά το 2ο container (self healing) έτσι ώστε να εξακολουθώ να έχω load balancing. Το storage το έχω σε 2 μέρη, το ένα στην Θεσσαλονίκη σε ένα RasPi3 και το άλλο στην Νυρεμβέργη, πάλι σε ένα RasPi. Το kubernetes το έχω να τρέχει στο Google Cloud. Συγκεκριμένα έχω 2 kubernetes να τρέχουν (ναι, ακόμα και εδώ redudancy) κάτω από την επίβλεψη του Magnum. Τα δε containers τρέχουν επίσης εκεί. Οπότε στην ουσία, το μόνο που έχω στο σπίτι είναι αυτό που κοστίζει και με ενδιαφέρει = τα Data. Το όλο σύστημα μπορώ να το ξαναστήσω — αν χρειαστεί — σε 5 λεπτά, χρησιμοποιώντας το Salt 🙂

    1. Και πότε είπαμε θα μας γράψεις για αυτό το ζήτημα ?? 🙂 Έλα… μην αντιστέκεσαι …. λογικά έχεις σημειώσεις 😛

  4. Ερώτηση: Απαιτεί PHP7? Γιατί έχω σε ένα laptop έτοιμο το ubuntu server 14.04, αλλά επάνω τρέχει το vtiger που δουλεύει σε παλαιότερη έκδοση, και δεν θέλω να το χαλάσω!
    Αυτά που έγραψε ο Panos Georgiadis με ζάλισαν (είδα αστεράκια!!!)

    1. Όχι δεν χρειάζεται την PHP7. Μπορεί να δουλέψει και στην προηγούμενη. O λόγος που το έγραψα για την 7 είναι επειδή το προτείνει το Nextcloud ως καλύτερη και πιο ταχύτερη έκδοση. Αλλά αυτό είναι προαιρετικό. Δούλεψέ το σε αυτό που έχεις

  5. Καταρχην συγχαρητηρια για τον αναλυτικο οδηγο. Θα ηθελα να κανω καποιες παρατηρησεις σχετικα με την εγκατασταση των πακετων. Δεν ξερω ποια διανομη χρησιμοποιεις και σε τι μηχανημα το εστησες αλλα σε raspbian jessie ολα τα πακετα που εχουν σχεση με php7.0 δεν υπαρχουν στα κανονικα repositories αλλα μονο στα jessie-backports. Tο πακετο php-imagick δεν το βρηκα ετσι αλλα μονο σαν php5-imagick.
    Επισης επειδη καποιοι ισως δυσκολευτουν να το βρουν το παρακατω. Μετα την εγκατασταση και αφου κανουμε login στο σερβερ μας, στις πληροφοριες βγαζει ενα μηνυμα κοκκινο HTSP bla bla bla…..Για να φυγει το μηνυμα καντε το εξης:
    Ανοιξτε το αρχειο /etc/apache2/sites-available/default-ssl.conf και κατω απο τη γραμμη ServerName προσθεστε αυτο:

    Header always set Strict-Transport-Security «max-age=15552000; includeSubDomains; preload»

    Σωστε το αρχειο, καντε επανεκκινηση τον apache, καντε ανανεωση στην σελιδα του σερβερ και ωωωπ…το κοκκινο μηνυμα θα εχει φυγει.
    Εγω ειχα το nextcloud στημενο με nginx, mysql & php5. Ηθελα να αλλαξω τον nginx αλλα βαριομουν να πω την αληθεια. Με αφορμη το αρθρο σου ομως την εκανα την αλλαγη και ειναι ολα οκ.

    1. Κατι εγινε και αλλαξε λιγο το μηνυμα. Αυτη ειναι η γραμμη που πρεπει να προστεθει χωρις τα εισαγωγικα στην αρχη και το τελος:
      »
      Header always set Strict-Transport-Security «max-age=15552000; includeSubDomains; preload»
      «

    2. Σε ευχαριστώ για τις χρήσιμες παρατηρήσεις ! Αν μου επιτρέπεις θα προσθέσω την συμβουλή σου στο άρθρο. Η διανομή είναι σε Ubuntu based όπου πράγματι το πακέτο εκεί είναι php-imagick, οπότε είναι σημαντικό αυτό που λες.

      1. Φυσικα και σου επιτρεπω να το προσθεσεις, δεν θα επρεπε να με ρωτησεις καθολου. Σε αυτο το link https://docs.nextcloud.com/server/10/admin_manual/configuration_server/harden_server.html εχει ολες τις πληροφοριες για το nextcloud και καποιες επιπλεον ρυθμισεις τις οποιες εχεις γραψει.
        Επισης τωρα που το θυμηθηκα, στις πληροφοριες του server μου εβγαζε και ενα μηνυμα για την memcache. Για να φυγει και αυτο το μηνυμα εγκατεστησα το πακετο php-apcu και στο αρχειο /var/www/html/nextcloud/config/config.php προσθετουμε την γραμμη ‘memcache.local’ => ‘\OC\Memcache\APCu’,
        Αυτα ειχα να προσθεσω μονο.

        1. Σε ευχαριστώ πολύ ! Το άρθρο ενημερώθηκε με τις παρατηρήσεις σου !

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s