Εισαγωγή

Shout out στον φίλο μου τον Δημήτρη, που η παρέα του μου ζήτησε να τους βοηθήσω να στήσουν server. Σαν υποστηρικτής του αποκεντροποιημένου διαδικτύου, θα ήθελα να τους βοηθήσω με ένα απλό tutorial ώστε να μπορέσουν να κάνουν τα βασικά. Αφού το γράφω γιατί να μην μπει και σαν ένα ωραίο post στη σελιδούλα μου, σε περίπτωση που κανένας άλλος θελήσει να βαδίσει στα βήματά τους.

Βήμα 1: Hardware

Αρχικά, θα πρέπει να επιλέξεις το σωστό hardware για το σωστό project. Δεν χρειάζεσαι να τρέχεις 8 GPU ταυτόχρονα εάν έχεις μια απλή στατική ιστιοσελίδα, και δεν μπορείς να τρέξεις Minecraft server σε ένα esp32 (νομίζω τουλάχιστον, αν κάποιος το κάνει θα γαμούσε πάντως). Σε γενικές γραμμές, μία αποδεκτή λύση είναι ένα παλιό PC που δεν χρησιμοποιείς. Ο αξιότιμος yiannikos.gr λειτουργεί από τον παλιό μου υπολογιστή από τις μέρες του Λυκείου μου. Έχει 8GiB RAM και για επεξεργαστή έχει τον “θρυλικό” AMD FX-3600. Είναι η βέλτιστη λύση; Όχι. Έχει την ελάχιστη κατανάλωση ρεύματος; Ούτε καν. Αυτό που έχει σημασία όμως είναι πως το πήρα στην χαμηλή τιμή των FREE.99 και έδωσα νέα πνοή σε έναν υπολογιστή που θα θεωρούνταν e-waste (το οπίο είναι καλό για το περιβάλλον - άρα δίνει έξτρα πόντους όταν μιλάς με art hoes). Οπότε για να δούμε τις επιλογές που έχεις, σε αύξουσα τιμή:

  • αν έχεις εσύ ή ένας φίλος σου έναν παλιό υπολογιστή που δεν χρησιμοποιείς, είσαι οκ.
  • μπορείς να πάρεις ένα παλιό Dell Optiplex/ Lenovo ThinkStation σε πολύ χαμηλότερη τιμή από το να φτιάξεις νεό PC.
  • στην περίπτωση που σε νοιάζει πολύ η κατανάλωση ενέργειας και θες ντε και καλά να έχεις νέο υπολογιστή, φτιάξε έναν με μία απλή CPU (4 πυρήνες είναι υπέρ αρκετοί) και γύρω στα 8GiB RAM. 16 είναι υπερβολή και με τις σημερινές τιμές δεν συμφέρει καθόλου.

Αυτό που θα έδινα παραπάνω σημασία είναι το τροφοδοτικό. Ειδικά στην περίπτωση που ο υπολογιστής σου είναι παλιός δεν είναι καλή ιδέα να έχεις ένα τροφοδοτικό δεκαετίας ανοιχτό 24/7, ειδικότερα εάν είναι από άγνωστη μάρκα. Τείνω να προτιμάω bequiet! τροφοδοτικά, αλλά οποιοδήποτε γνωστής εταιρείας βρεις λογικά θα είναι οκ. Πάρε Seasonic αν θες να είσαι ο #1 Stunna του IT department.

Εξίσου σηματνικοί είναι οι δίσκοι που θα πάρεις. Το setup είναι απλό:

  • έναν SSD για boot drive, αν έχει M.2 η μητρική σου πλάκα καλώς, αλλιώς και SATA δεν πειράζει
  • έναν έως a milli HDD που θα έχουν τα πολλά σου δεδομένα (σκέψου τις ταινίες σου κτλ).

Μπορείς να βρεις πολύ φθηνούς HDD δίσκους αν είναι salvaged, αλλά δεν ξέρω πολύ από αυτό το scene. Για SSD θα πρότεινα μόνο καινούργιους, μου άρεσε η crucial αλλά RIP crucial. Όπου και να βρεις HDD δίσκους φρόντισε να είναι CMR αντί για SMR. Η τιμή σπάνια διαφέρει και μερικά πράγματα όπως data recovery είναι πολύ πιο αργά σε SMR δίσκους. Οι δίσκοι για NAS (κόκκινοι σε χρώμα συνήθως) είναι πιο κατάλληλοι για server, καθώς είναι σχεδιασμένοι να τρέχουν συνεχώς, σε αντίθεση με αυτούς για κανονική χρήση. Από καινούργιους HDD εμένα μου αρέσουν οι Seagate Ironwolf.

Αν έχεις το PC και τους δίσκους σου, στήσε το PC κανονικά (υπάρχουν και άλλα tutorial για αυτό) και φρόντισε να φτιάξεις και ένα bootable Linux φλασάκι με το distro της επιλογής σου. Προτείνω Debian για μέγιστη σταθερότητα.

Βήμα 2: Linux installation

Πρώτα από όλα, μην αγχώνεσαι, δεν θα χρειαστεί να γίνουμε Bare Metal Alchemist. Αυτά που θα κάνουμε για αρχή θα είναι τα εξής:

  • Στήσιμο δίσκων και mountpoints
  • SSH server αποκλειστικά μέσω key authentication
  • Απλό web-server, για να προσθέσουμε μετά ότι service θέλουμε
  • Στήσιμο Router (port forwarding) και επιλογές domain
  • Στήσιμο docker-compose, για να προσθέσεις ότι άλλο θελεις, και γρήγορα.

Όταν τελειώσουμε, θα έχεις πρόσβαση στη σέρβερ σου μέσω ssh για να σετάρεις πράγματα, και μία απλή σελίδα (απλά για να λέμε πως δουλεύει ο web server) προσβάσιμη από το browser σου.

Για αρχή, βάλε το φλασάκι με το bootable linux image και ακολούθα τις οδηγίες από το installer. Αν έχεις εμπειρία με το να εγκαθιστάς Windows θα σου φανεί ακόμα ευκολότερο. Στήσε τους δίσκους έτσι ώστε να έχεις τον ssd σαν boot drive (δηλαδή το root να είναι σε αυτόν) και τον HDD σου (ας υποθέσουμε για ευκολία πως έχεις μόνο έναν) σε ένα mountpoint που σε βολεύει (ας πούμε /media εγώ αυτό κάνω συνήθως)
Ορίστε ένα tutorial για το partitioning. Δεν χρειάζεται να κάνεις ξεχωριστό /home partition όπως δείχνει, όμως με τις οδηγίες που έχει μπορείς να καταλάβεις πως να μπορέσεις να βάλεις στον HDD ένα ξεχωριστό partition.

Αφότου έχεις τελειώσει με την εγκατάσταση και έχεις ένα απλό σύστημα με user και τους δίσκους σου στημένους, πάμε να κάνουμε το ssh (θα ανέβει σε λίγες μέρες)