Συνεχίζουμε με το τέταρτο μέρος της σειράς Self Hosted Cloud Server, στο οποίο θα κάνουμε εγκατάσταση το Cosmos Server.

Την σειρά οδηγών Self Hosted Cloud Server γράφει ο φίλος Μητσaker. Θα τα βρείτε όλα στο link : Cosmos Server.
Αν θέλετε και εσείς να συνεισφέρετε μπορείτε να δείτε τους τρόπους : Συνεισφορά στο Cerebrux

Σε αυτή την φάση, υποθέτουμε ότι έχετε τελειώσει την εγκατάσταση και ρύθμιση του Ubuntu Server και όπως είπαμε στο τρίτο μέρος της σειράς:

  • Προσάρτηση των δύο επιπλέον δίσκων
  • Άνοιγμα των ports στο router μας
  • Έχετε κάνει εγκατάσταση το Docker
Advertisements

Εγκατάσταση Cosmos-Server

Το Cosmos είναι ο πιο εύκολος τρόπος για να φιλοξενήσετε έναν Home Server. Λειτουργεί ως ασφαλής πύλη στις εφαρμογές σας, καθώς και ως διαχειριστής του Home Server. Στόχος του είναι να λύσει το όλο και πιο ανησυχητικό πρόβλημα των ευάλωτων self-hosted εφαρμογών και των προσωπικών server.

Αφού συνδεθούμε στον server μας, θα κάνουμε εγκατάσταση και εκτέλεση του Cosmos Server:

docker run -d -p 80:80 -p 443:443 -p 4242:4242/udp --privileged --name cosmos-server -h cosmos-server --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /:/mnt/host -v /var/lib/cosmos:/config azukaar/cosmos-server:latest

Εναλλακτικά όσοι προτιμάτε να το τρέχετε μέσω docker compose, τότε δημιουργήστε το αρχείο docker-compose.yml με το παρακάτω περιεχόμενο:

services:
  cosmos-server:
    image: azukaar/cosmos-server:latest
    container_name: cosmos-server
    hostname: cosmos-server
    restart: always
    privileged: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /:/mnt/host
      - /var/lib/cosmos:/config
    network_mode: host

και μετά τρέξτε το:

docker compose up -d

Εκκίνηση Cosmos

Αφού έχει «σηκωθεί» το Cosmos, επισκεπτόμαστε την IP του server μας και μας παρουσιάζεται η πρώτη σελίδα για την ρύθμιση του Administrator

Στο Cosmos->Configuration->Docker αλλάζουμε το default path της εγκατάστασης των δεδομένων των containers με αυτό του σκληρού /mnt/data. Το path μπορούμε να το τροποποιήσουμε και για καθένα container που εγκαθιστούμε, ξεχωριστά.

Τις διαθέσιμες εφαρμογές που είναι και αυτές σε docker, τις βρίσκουμε στο Market όπου πληκτρολογούμε την επιθυμητή μας εφαρμογή, την κάνουμε install και προσέχουμε να δώσουμε μια διεύθυνση και εκείνη μετατρέπεται αυτόματα σε bind.

Τώρα, εάν για οποιονδήποτε λόγο, το container της MongoDB ξεκινήσει τα επαναλαμβανόμενα restarts και έχουμε όλα τα παραπάνω με διαλλειπτική λειτουργία, είναι προτιμότερο να κάνουμε μια φρέσκια εγκατάσταση του Cosmos και της MongoDB, τροποποιώντας το αρχείο cosmos.config.json (γίνεται αναφορά και παρακάτω) μέσα στη διαδρομή /var/lib/cosmos αλλάζοντας τη γραμμή "NewInstall": false, σε "NewInstall": true, και επανεκκινώντας το container cosmos-server. Σε περίπτωση που έχουμε εγκατεστημένες κάποιες εφαρμογές, τότε τους δίνουμε εκ νέου τα URLs που είχαν πριν τη δυσλειτουργία και δεν χάνουμε τα δεδομένα τους.

Κάθε φορά που εγκαθιστούμε μία εφαρμογή, με οποιοδήποτε τρόπο, το Cosmos κρατάει backup του εαυτού του, συν τα containers που έχουμε και σε περίπτωση αποτυχίας, το αρχείο .json (μέσα στο ‘cosmos-backup.zip’) που παράγει στη διαδρομή var/lib/cosmos, γίνεται import μέσα από τη φρέσκια εγκατάστασή του (Market->Install->import compose file). To concept του backup του Cosmos, είναι WIP(work in progress) γιατί θεωρείται κατά τα λεγόμενα του developer ως μία βιαστική λύση και έχει τρόπον τινά, ανόητη φιλοσοφία. Δεν είναι κάτι που μας απασχολεί ιδιαίτερα αλλά όταν ολοκληρωθεί, θα είναι ένα καλοδεχούμενο χαρακτηριστικό. Τα backup μας θα τα φροντίσουμε υπέρ του δέοντος, παρακάτω.

Τέλος, προτιμήσαμε να έχουμε αποεπιλεγμένο το ‘Auto Update Container’ για κάθε νέα εφαρμογή που εγκαθιστούμε ώστε να μηδενίσουμε το ρίσκο να εκτελεστεί μία αυτόματη αναβάθμιση την ώρα που θα εκτελείται ένα προγραμματισμένο, από εμάς, backup.

Περισσότερα για την χρήση του μπορείτε να δείτε την επίσημη τεκμηρίωση.

Στο επόμενο μέρος, θα ρυθμίσουμε την πρόσβαση με Cloudflare-DDNS για να μπαίνουμε στις εφαρμογές μας και έξω από το σπίτι