Στην νέα σειρά οδηγού που ξεκινάμε, θα δούμε έναν ασφαλή και εύκολο τρόπο για να φιλοξενήσετε μόνοι σας έναν Οικιακό Διακομιστή (Home Server). Στόχος του είναι να λύσει το όλο και πιο ανησυχητικό πρόβλημα των ευάλωτων Self Hosted web υπηρεσιών και των προσωπικών server.
Την σειρά οδηγών Self Hosted Cloud Server γράφει ο φίλος Μητσaker. Θα τα βρείτε όλα στο link : Cosmos Server.
Αν θέλετε και εσείς να συνεισφέρετε μπορείτε να δείτε τους τρόπους : Συνεισφορά στο Cerebrux
Πρόλογος – Self Hosted Cloud Server
Είναι ωραίο να έχεις τον πλήρη έλεγχο των ευαίσθητων προσωπικών σου δεδομένων και πόσο μάλλον όταν δεν εμπιστεύεσαι τη φύλαξή τους σε τρίτους, μέσω ιδιόκτητων εφαρμογών.
Στην σειρά οδηγών που θα δημοσιεύσω στο Cerebrux, θα ‘‘χτίσουμε’’ το δικό μας server με εργαλεία ανοιχτού κώδικα, προσέχοντας πάντα να είναι ασφαλής και λειτουργικός.
Οι συνδυασμοί του λογισμικού που δύναται να χρησιμοποιήσουμε είναι πραγματικά ανεξάντλητοι. Μετά από πολύμηνες δοκιμές σε Virtual Machine, αποφασίσαμε να το κάνουμε με Docker containers τα οποία θα διαχειριζόμαστε μέσω εντολών docker και γραφικού περιβάλλοντος του Cosmos-Server και θα τα ασφαλίσουμε με το τελευταίο, το οποίο θα λειτουργεί πρωτίστως ως το reverse proxy μας με αυτόματη έκδοση πιστοποιητικών SSL και δευτερευόντως, επειδή διαθέτει anti-DDOS attack, anti-Bot, Geo-blocking και Smart Shield με πολιτικές περιορισμού πρόσβασης και αυθεντικοποίησης.
Δε θα έχουμε πολύ πιπίλα με χαβαλέ γιατί είναι πολλά αυτά που πρέπει να καλύψουμε. Θα συμπεριλάβουμε κάποια βασικά screenshots και ίσως όχι όσα θα περίμενες, γιατί κρίνεται απαραίτητο να επισκεφτείς τις πηγές, οι οποίες τα περιλαμβάνουν αναλυτικά, εμπεριστατωμένα και ανανεωμένα.
Ως τελευταίους δύο, αλλά σημαντικότατους λόγους για την υλοποίηση, αναφέρουμε την αγάπη μας για την τεχνολογία και τη χαρά μας να βλέπουμε να αναβοσβήνουν λαμπάκια σε ένα μαραφέτι στο σαλόνι μας.
Ξεκινάμε!
Domain Name και Cloudflare
Σε πρώτη φάση θα πρέπει να έχει έναν δωρεάν Cloudflare λογαριασμό.: https://www.cloudflare.com/. Αν δεν γνωρίζετε την χρήση του Cloudflare ολοκληρώστε τον επίσημο οδηγό τους : Get started with Cloudflare
Στην συνέχεια θα αγοράσεις ένα φθηνό domain name της τάξης του ~ 1$ τον χρόνο. Πάμε π.χ. στο NameCheap και στο πεδίο της αναζήτησης του domain φτιάχνουμε ένα domain name με αριθμούς και κατάληξη .xyz (π.χ 123.xyz). Ούτως η άλλως, το domain name θα είναι για χρήση από εμάς και δεν θα είναι για χρήση π.χ. ιστοσελίδας που θα επισκέπτονται άλλοι.
Ονόματα τομέων με αριθμούς και κατάληξη xyz είναι φθηνότεροι σε σχέση με κανονικά domain names. Οι αριθμοί μπορεί να είναι, μία ημερομηνία, ο αριθμός ταυτότητας, κάτι άλλο συμβολικό ή κάτι τυχαίο.
Πάμε στο Cloudflare λογαριασμό και προσθέτουμε το νέο domain name που αγοράσαμε κάνοντας κλικ στο Add Site (Οδηγίες). Διαγράφουμε τα όποια μεταφερόμενα DNS records και ρυθμίζουμε ένα Α record με την public IP του σπιτιού μας (https://whatismyipaddress.com/ χρήση του IPv4), χωρίς να είναι proxied, για παράδειγμα: 123.xyz (Cloudflare Home->To active domain μας->DNS->Records->Add record).

Μπορούμε προαιρετικά να δημιουργούμε ένα CNAME με το subdomain για την εφαρμογή που θα εγκαταστήσουμε και προσέχουμε να από-επιλέξουμε το proxied γιατί αυτό το ρόλο θα τον αναλάβει ο server μας. Εάν θέλουμε για παράδειγμα να εγκαταστήσουμε το Nextcloud: nextcloud.123.xyz, για το Odoo: odoo.123.xyz κ.ο.κ.
Είναι όμως πιο γρήγορο και βολικό να κάνουμε ένα ‘A’ της μορφής ‘*.123.xyz’ (χωρίς να είναι proxied) και όχι το ‘123.xyz’, ώστε όταν επιλέγουμε subdomains για τις εφαρμογές μας μέσα από τον Server μας, αυτό να καταχωρείται αυτόματα χωρίς να απαιτείται να επισκεπτόμαστε διαρκώς την Cloudflare για προσθήκες και τροποποιήσεις. Αυτή «τεχνική» ονομάζεται wildcard ή catchall domain που είχαμε δει στα μαθήματα docker.

Δεν είναι λάθος η πρώτη μέθοδος με τα στατικά subdomains, αλλά είναι λιγότερο βολική. Η δεύτερη καταχώρηση, δημιουργείται αυτόματα μετά την πρώτη χρήση μέσω του Server μας.

Έχουμε τελειώσει με το Domain μας, το οποίο λογικά πλέον «κοιτάει» στην IP του σπιτιού μας. Παρόλα αυτά, έχουμε να ρυθμίσουμε πολλά ακόμα… όπως την dynamic IP του σπιτιού μας που αλλάζει από τον πάροχο του internet μας, να ρυθμίσουμε τον server μας και πολλά άλλα…
Θα τα δούμε σταδιακά στα επόμενα κεφάλαια.
Μέχρι να βγει κάντε μια επανάληψη στα παρακάτω άρθρα τα οποία θα σας φανούν χρήσιμα ως γνωστικά αντικείμενα για την σειρά άρθρων Self Hosted Cloud:
- Ας φτιάξουμε έναν Home Server : Διαβάστε Home Server
- Οδηγός χρήσης Docker: Διαβάστε: Εισαγωγή στο Docker
- Βασικά ζητήματα ασφάλειας Server: Διαβάστε: Τα πρώτα 10 λεπτα σε έναν Linux Server
Εδώ να σχολιάσω ότι εάν έχεις κάποιο dynamic dns resolver, βλέπε ddns,duckdns,afraid, μπορείς να βάλεις ακριβώς με τον ίδιο τρόπο `CNAME` αντί για `A` record απλά το πεδίο της ip θα γράψεις το ddns σου, π.χ. `serverbox.duckdns.com` και πάλι να μην είναι proxied