see all /posts

Selfhost Stack 2026

2026-06-09

Quasi un anno fa mi sono rotto di Spotify, Google Photos e ogni altro servizio che preda sui consumatori presentandosi come il nuovo messia che risolverà tutti i tuoi problemi per poi diventare merda nel giro di qualche anno e banchettando coi tuoi dati nel frattempo.

Questo post non vuole essere una guida tutorial: serve a me per tenere una traccia storica dello stato attuale dei miei servizi e spero serva a chi legge per prendere un po' ispirazione e metter su un progetto simile o aggiungere qualche servizio al proprio. Per questo cercherò di dare quante più definizioni possibile, anche se dovessero sembrare ovvie.

Mi sono rimboccato le maniche e ho iniziato a giochicchiare con un server domestico, che altro non è che un computer dentro casa, sempre acceso e collegato a internet, accessibile anche da fuori casa mia. Sembra complicato, ma in realtà non credo ci sia momento migliore per provarci.

Gli ingredienti#

Inizialmente non volevo comprare nulla, avevo un vecchio Raspberry PI in casa a prendere polvere e l'ho messo in funzione, ma mi sono reso conto presto dei suoi limiti hardware, un bastone tra le ruote per sperimentare. Su consiglio di un amico ho acquistato un Fujitsu Esprimo Q920 ricondizionato che è ancora la macchina principale che ospita il mio server.

Come sistema operativo ho scelto Debian 13, non sono un esperto di Linux1 e avevo bisogno di un sistema stabile, sicuro e manutenibile per cui la scelta mi è sembrata sensata.

Con l'intenzione di utilizzarlo headless, ovvero senza un monitor collegato, ma solo attraverso altri PC, ho installato qualche utility per semplificarmi la vita muovendomi nel terminale Oh My Zsh, qualche plugin come zshz, autocomplete e autosuggestions.

Dopodiché ho installato alcune cose che mi sarebbero servite per iniziare a installare i vari servizi: Docker, Git, Node e Python.

Hello, world#

Dopo aver passato le chiavi SSH2 per collegarmi dai vari PC ho disabilitato il login via password e per esporlo al mondo ho provato un paio di strade.

Inizialmente avevo creato un setup con DuckDNS e Caddy, funzionava abbastanza bene, ma preferendo usare il mio dominio (maletta.space) sono passato a Cloudflare Tunnel.

Infine ho installato Tailscale e reso il mio server un exit node, non si capisce un cazzo, spiego meglio.

Tailscale crea una rete virtuale privata che collega tutti i miei dispositivi come se fossero fisicamente collegati uno all'altro. Quando mi connetto a Tailscale mentre sono fuori, il dispositivo si comporta come se fosse ancora a casa mia.

L'exit node fa sì che tutto il mio traffico internet passi attraverso il server di casa. In questo modo anche i siti web e i servizi esterni vedono la mia connessione come se provenisse da casa mia, indipendentemente da dove mi trovo nel mondo.

In sostanza è una VPN che, invece di farti apparire da qualche altra parte del mondo per vedere un altro catalogo Netflix, ti fa apparire a casa tua anche se sei in Cina ed è tutto bloccato (storia vera dal mio scalo).

Sia Cloudflare che Tailscale sono servizi di terze parti forniti da aziende private con fini commerciali (e questo non mi piace molto), funzionano e sono gratuiti, ma è sicuramente qualcosa che vorrei migliorare.

I servizi#

Ecco la parte più succosa, l'elencone di servizi, usano tutti dei container Docker: in pratica è come se il mio server contenesse tanti piccoli computer che fanno una sola cosa, senza sapere che gli altri esistono. Questo garantisce che se si rompe qualcosa non si rompa tutto, e aiuta anche un po' a fare una manutenzione ordinata.

Li ho divisi in categorie (un po' a caso) per avere un piccolo ordine mentale.

Media#

Grimmory#

Grimmory è una libreria digitale in cui conservare eBook in vari formati.

Ha un'interfaccia molto carina che mostra la griglia dei libri e permette di organizzarli in scaffali tematici (anche automatizzati!). Grimmory è in grado di scaricare le informazioni sui libri (metadata) da varie fonti, così da avere catalogati autorɜ, generi, case editrici e ogni altra informazione utile.

Dal portale è possibile anche caricare e leggere libri direttamente nel browser. Se hai un ereader c'è un servizio di sincronizzazione per Kobo e KOReader e un server OPDS che rende molto più semplice convertire e scaricare i libri.

Komga#

Komga, somiglia un po' a Grimmory, è una libreria pensata per manga e fumetti. Dall'interfaccia si possono catalogare e leggere fumetti e poco altro, ma la vera figata è l'integrazione con Mihon per Android che sincronizza libreria e stato di avanzamento su tutti i dispositivi.

Navidrome, è un servizio di streaming musicale. Una sorta di Spotify fatto in casa in cui puoi caricare la tua musica e renderla disponibile in streaming.

Anche qua si possono creare diverse librerie e gestire a quali utenti mostrarle (ho evitato di propinare alla mia ragazza la mia libreria Dungeon Synth) ed esistono moltissime app per collegarsi ed ascoltarla. Symfonium su Android, Flo su iOS e Feishin su computer (Linux, Mac o Windows).

Cloud Personale#

Dawarich#

Dawarich, è tipo la cronologia degli spostamenti di Google Maps, ma senza dare dati a Google.

Si possono importare i dati da Google e tracciare la posizione con app come OwnTracks su Android. L'interfaccia mostra la mappa degli spostamenti e i dati sono visualizzabili in un'infinità di formati, che ti serva per ritrovare dove hai parcheggiato la macchina o ripercorrere il tragitto di una vacanza.

Home Assistant#

Home Assistant, quando la mia ragazza ha provato a sostituirmi con un roomba, la prima cosa che ho fatto è stato tagliargli l'accesso a internet, a quel punto ho provato a creare un'app apposta per gestirselo, poi mi sono reso conto che c'è già Home Assistant.

Fa una marea di robe, ma io lo uso per gestire i device smart a casa, in pratica solo il robot aspirapolvere e una lampadina dell'ufficio, ma è molto figo, si può scriptare in maniera molto fine per farlo pulire quando vuoi te, informarti di quel che sta facendo e ti puoi far mandare notifiche per ricordarti di svuotare il cestino (che poi ignorerai come facciamo noi).

Immich#

Immich, archiviazione di foto e video come Google Photos, ma senza Google.

Facilissimo da configurare, ha anche delle feature di machine learning in locale, come riconoscere il contenuto delle foto così da renderle ricercabili e simili.

Per migliorare un po' le prestazioni senza appesantire troppo il server ho disabilitato tutte le feature avanzate dal server e ho installato un container sul mio PC principale con più potenza di calcolo. Ora il server fa fare a lui il lavoro sporco quando è acceso, così non si sovraccarica, ma ho comunque le feature aggiuntive.

NextCloud#

Nextcloud, anche questo fa una marea di cose, io lo uso solamente per scrivere e condividere file, documenti, spreadsheet, presentazioni, ma ha un botto di plugin, un calendario, la gestione dei contatti. In pratica è Google Workspace senza Google.

Lo uso con l'integrazione a OnlyOffice che mi permette di usare un ecosistema office collegandomi direttamente ai file sul server.

Vaultwarden#

Vaultwarden è una copia/riscrittura di Bitwarden, il password manager che uso ormai da molto tempo.

Oltre ad essere indipendente da servizi di terze parti, Vaultwarden offre gratuitamente tutte le feature premium di Bitwarden come codici OTP e condivisione password. Si può usare con le app ufficiali di Bitwarden collegandosi al proprio server.

Assieme al container principale ho anche messo su un backup molto semplice che, attraverso Syncthing crea una copia criptata dei dati su vari computer sparsi in giro (sotto il mio controllo), così qualsiasi cosa succeda le password restano al sicuro.

Utility#

ConvertX#

ConvertX è un convertitore di file che supporta tantissimi formati. Per evitare di andare su siti loschi a caricare i propri .doc perché diventino .pdf e simili.

MeTube#

MeTube ti è mai capitato di aver bisogno di salvare un video da YouTube, Instagram o simili? Oppure qualcunə insiste a mandarti TikTok nonostante rifiuti di installarlo. MeTube ti permette di scaricare i video e convertirli nel formato di cui hai bisogno, da una marea di sorgenti. Di fatto è un wrapper per yt-dlp con tutte le funzionalità disponibili via web app.

SilverBullet#

SilverBullet, il più recente tra i servizi che ho adottato, è un database di conoscenza personale, in sostanza permette di scrivere file in Markdown (un formato molto amato da noi nerd) e tenerli organizzati in una sorta di wiki locale.

Per me è tipo un Notion semplificato dove mi appunto come faccio a fare le cose così ho un posto dove guardare quando inevitabilmente mi dimenticherò come facevo a fare quella cosa che dovevo fare.

Monitor#

Beszel#

Beszel non è altro che un'interfaccia per vedere lo stato del server e dei suoi componenti, mi mostra la RAM, lo storage, la CPU, tutte le temperature. Mi serve solo per sapere quando dovrò cambiare macchina per il server (temo sia quasi ora).

Dockge#

Dockge è un'interfaccia per controllare lo stato di docker e fare manutenzione. Si possono modificare i file di configurazione dei singoli servizi, aggiornarli e leggerne i log in un posto solo.

Sia Beszel che Dockge si possono collegare a vari server in giro per il mondo, così da avere una visione d'insieme in un posto solo.

Le briciole#

  • Il già citato Syncthing per sincronizzare file tra server e altri dispositivi.
  • Pi-hole e Unbound per bloccare la pubblicità e gestire i DNS sulla mia rete locale.
  • Gluetun per nascondere dietro VPN alcuni container docker.
  • suwayomi e slskd per uhm... ecco...
  • Una dashboard con un semplice web server statico

Propositi per il 2027#

Ci sono alcune cose che potrebbero cambiare in meglio e che vorrei esplorare nell'anno nuovo, sicuramente valuterò se cambiare server o affiancarne un altro, magari specializzato per lo storage.

Un'altra cosa che vorrei fare è affittare una VPS e staccarmi da Cloudflare e Tailscale, sostituendoli con Pangolin e Headscale così da ridurre la dipendenza da servizi privati, ma mantenendo i vantaggi di sicurezza del non esporre il proprio IP pubblicamente.

Riguardo i servizi, Dawarich mi piace sempre meno, sto valutando se passare a reitti, che mi sembra una valida alternativa, gli altri mi sembrano tutti abbastanza solidi, oltre a tenerli aggiornati non credo ci saranno grandi variazioni.

Riordinando i pensieri#

Alla fine quello che mi interessa è sempre riprendermi un po' del controllo dalla piattaforma di turno, nel mentre imparo anche cose nuove in un ambiente dove so di poter rompere tutto e aggiustare qualcosa.

Sicuramente l'obiettivo non è ottenere lo stack perfetto e se hai letto fino a qua spero di averti incuriosito abbastanza da farti venir voglia di hostare anche solo una di queste cose a casa tua, o di condividere il tuo setup così posso mettermi a copiare pure io!

Note#

  1. anche se ormai è diventato il sistema operativo standard su quasi tutti i PC che utilizzo.

  2. SSH mi vergognavo a spiegarlo nel testo perché è veramente la base, ma in sostanza è un modo per collegarsi da un terminale a un altro, di solito si fa con username e password, ma ho scelto di farlo con chiavi cifrate per maggior sicurezza.