Self Hosting Is Self Caring

Sommario

Introduzione


self-hosting-img

E se ti dicessi che è possibile riutilizzare un vecchio laptop per creare valore nella tua vita, self-hostando progetti open source che risolvono problemi reali e allo stesso tempo acquisendo esperienza preziosa nel mondo del lavoro IT?

Continua a leggere per saperne di più!

Il Self-Hosting è Hosting


start-home-server-img

Utilizzare un vecchio laptop per trasformarlo in un piccolo server personale ti permetterà di fare esperienza di come funziona un server reale. Questo perché pur essendo piccolo, rimane un server a tutti gli effetti.

Inizializzare e mantenere un home server in modo da avere il massimo delle prestazioni è un’esperienza che si trasferisce perfettamente nel mondo del lavoro.

Con un home server farai esperienza di:

  • Linux
  • Manutenzione di sistemi
  • Ottimizzazione delle prestazioni
  • Utilizzo del terminale
  • SSH
  • Connessione fra dispositivi

Tutto questo divertendoti e creando valore per la tua vita di tutti i giorni!

Come Iniziare


install-linux-img

Per prima cosa è importante installare la distribuzione di Linux che si desidera sul proprio laptop. Importante sceglierne una senza Desktop Environment. Questo perché è pesante sulle prestazioni e non ci servirà. Utilizzeremo il nostro server solo attraverso il terminale - un’esperienza fondamentale nel mondo Linux. Io consiglio Ubuntu Server. Inoltre consiglio vivamente di tenere il proprio server attaccato al router con un cavo Ethernet, questo può fare la differenza tra un’esperienza fluida e una frustrante, piena di buffering.

Sarà necessario creare una chiavetta di installazione con l’immagine del sistema operativo scelto. Io utilizzo Ventoy per avere più immagini di installazione sulla stessa chiavetta USB, ma non è necessario, è possibile anche mettere direttamente l’immagine su una chiavetta.

Una volta creata la chiavetta, potremo attaccarla al laptop ed entrare nel BIOS del computer e avviare il sistema attraverso la chiavetta. Questo avvierà il processo di installazione della distribuzione di Linux scelta. I passaggi cambiano a seconda della distribuzione. Una volta dentro potremo iniziare ad installare tutti i programmi che ci servono.

I Programmi utili ad ogni Home Server


essential-tools-img

Per iniziare aggiorniamo il sistema eseguendo questo comando (o il corrispettivo per la distribuzione di Linux scelta) Questo comando aggiorna tutti i pacchetti installati sul sistema.

sudo apt update && sudo apt upgrade

Ora installeremo dei programmi molto utili per qualsiasi server:

  • git
    • Git ci permette di installare progetti open source da GitHub
sudo apt install -y git
  • SSH
    • SSH (Secure Shell) è un protocollo che permette di connettersi in modo sicuro a un server da remoto.
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
  • Tailscale
    • Tailscale ci permette di connettere più dispositivi insieme.
    • Installandolo sul proprio telefono e/o sul proprio laptop, sarà possibile accedere al proprio home server ovunque siamo nel mondo, ci basterà avere una connessione ad internet.
    • Potremo anche accedere al terminale del server da remoto utilizzando SSH
    • Potremo inoltre usare il nostro home server come vpn, mascherando i nostri movimenti online quando ci troviamo in reti pubbliche e geo localizzandoci nella propria abitazione anche se siamo dall’altra parte del mondo.
      • Se sei in viaggio e vuoi guardare un film dal tuo server di casa con Jellyfin, Tailscale ti permette di farlo come se fossi nella tua rete domestica.
# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

# Enable and Start the Service
sudo systemctl enable --now tailscaled

# Authenticate and Connect the Device
sudo tailscale up

# Enables vpn capabilities for this device
sudo tailscale up --advertise-exit-node

# Check connection
tailscale status
  • tmux
    • Tmux è un terminal multiplexer, ci permette di avviare operazioni lunghe e lasciandole terminare in background permettendoci intanto di disconnetterci dal server.
    • Molto utile quando vogliamo scaricare qualcosa di pesante attraverso torrent ad esempio.
# Install Tmux
sudo apt install -y tmux

4 Progetti Open Source ottimi per iniziare a Self-Hostare


open-source-apps-img

Ora che abbiamo il minimo indispensabile per accedere al nostro server da remoto, possiamo iniziare ad installare i progetti veri e propri. In questo articolo ti mostrerò 4 progetti open source ottimi per iniziare la propria esperienza di system admin divertendosi e creando valore reale nella propria vita. Li elencherò e linkerò le pagine, lascerò a voi il piacere di scoprirne il funzionamento tecnico e come installarli. Leggere la documentazione è molto importante.

  • Jellyfin
    • Questo progetto Open Source permette di eseguire lo streaming dei propri contenuti come film e serie tv
    • Molto utile quando un contenuto viene rimosso da tutti i servizi di streaming a pagamento e quindi anche volendo non sarebbe possibile usufruirne
    • Essendo open source, sul server verrà installato il back end del progetto, mentre per il front end esistono varie opzioni, sia ufficiali che non ufficiali.
  • Audiobookshelf
    • Questo progetto Open Source è molto simile a Jellyfin, ma permette di eseguire lo streaming dei propri audio libri e podcast.
    • Come per Jellyfin, esistono varie soluzioni front end per usufruire del servizio con agio.
  • GameVault
    • Questo progetto Open Source permette di scaricare e installare i propri giochi, permette inoltre di salvare i propri progressi sul server, in questo modo è possibile continuare a giocare ai propri giochi da diversi dispositivi. Esattamente come Steam, ma self-hosted.
  • Syncthing
    • Questo progetto Open Source permette di mantenere sincronizzata una o più cartelle con altri dispositivi.
    • Io lo utilizzo per sincronizzare il mio Vault Obsidian.
    • Non è necessario averlo anche sul proprio Home Server, però può essere utile per un’esperienza di sincronizzazione più fluida in quanto il server è online 24 ore su 24 mentre gli altri dispositivi sui quali vogliamo sincronizzare i nostri file potrebbero non esserlo.
      • In questo modo avremo sicuramente una copia di backup sul nostro server in qualsiasi momento.

Backup


clonezilla-img

Quando parliamo di Server, non possiamo non avere un sistema di backup, tutto può andare male da un momento all’altro e reinstallare tutto è veramente un dispendio enorme di tempo ed energie.

Per questo personalmente eseguo il backup dei miei dispositivi (compreso il server) ogni 3 mesi. Utilizzo Clonezilla, un tool utile per clonare e ripristinare interi sistemi. Anche per Clonezilla è necessario creare una chiavetta usb eseguibile dal bios

Avremo bisogno della chiavetta eseguibile cloneIlla e un hard disk esterno. Il processo è semplice: clonare il proprio sistema come immagine ripristinabile sull’hard disk esterno. Quando si vuole ripristinare l’immagine sul dispositivo bisognerà semplicemente fare l’operazione inversa.

Ecco un tutorial molto utile che esegue entrambi i processi dall’inizio alla fine

Recap


empowerment-img

C’è qualcosa di veramente potente nell’idea di poter self-hostare dei servizi che apportano valore reale alla propria vita. Sento un senso di onnipotenza ogni volta che creo qualcosa di nuovo che posso utilizzare nella vita di tutti i giorni. La possibilità di poter sostituire almeno in parte servizi che sono a pagamento ci da potere. Il potere di decidere per noi stessi. All’improvviso non siamo più succubi di quello che gli altri decidono per noi. Se Netflix decide che la tua serie preferita non è più un asset sostenibile sui loro server e la eliminano dal proprio catalogo, tu puoi fare qualcosa al riguardo.

Tu puoi aggiungerla al tuo di catalogo!