Έχεις το μηχανάκι με Docker (αν όχι: πρώτο home lab). Η ερώτηση τώρα δεν είναι «τι υπάρχει» — υπάρχουν χιλιάδες containers — αλλά τι αξίζει να τρέχει 24/7 στο ρεύμα σου. Αυτή είναι η λίστα που επιβιώθηκε από το φιλτράρισμα: κάθε service καλύπτει κάτι που σήμερα πληρώνεις συνδρομή ή παραχωρείς δεδομένα.
Η σειρά εγκατάστασης έχει σημασία
1
Pi-hole ή AdGuard Home — network-wide ad blocking. Πρώτο γιατί ωφελεί ΑΜΕΣΩΣ κάθε συσκευή του σπιτιού (και σε «εκπαιδεύει» στο DNS, που θα χρησιμοποιήσεις για τα υπόλοιπα). Βάζεις το DNS του router να δείχνει στο home lab και τέλος.
2
Uptime Kuma — monitoring. Ένα fancy dashboard που σε ειδοποιεί (push/TG/email) όταν κάτι από τα παρακάτω πέσει. Ελαφρύ, όμορφο, ένα binary.
3
Vaultwarden — self-hosted Bitwarden server. Όλοι οι κωδικοί της οικογένειας σε δικό σου server, συγχρονισμός σε όλα τα devices, εδώσια AES-256 κρυπτογράφηση client-side.
4
Nextcloud (ή Seafile) — το «δικό σου Google Drive»: αρχεία, ημερολόγιο, επαφές, sync clients για κάθε πλατφόρμα.
5
Immich — το φονιάς του Google Photos: backup κινητών αυτόματα, timeline, πρόσωπα με on-device ML, βίντεο. Το πιο εντυπωσιακό project της τελευταίας διετίας.
6
Jellyfin — δικό σου Netflix για τη βιβλιοθήκη σου (σε αρχεία που έχεις νόμιμα). Transcoding μόνο αν το hardware αντέχει (Intel QuickSync στο N100 το κάνει άνετα).
7
Home Assistant — ο εγκέφαλος του έξυπνου σπιτιού, τοπικά χωρίς cloud (δες και Home Assistant & Hubs).
8
Syncthing — P2P συγχρονισμός φακέλων συσκευών χωρίς server/central. Τέλειο και ως offsite backup hop μεταξύ δύο σπιτιών.
9
Reverse proxy — Nginx Proxy Manager (εύκολο UI) ή Caddy (αυτόματα certs): φιλόξενα ονόματα τύπου
nextcloud.home.local και HTTPS εσωτερικά.10
Restic/Borg cron — όχι app, αλλά το backup job που τρέχει μόνο του (δες κανόνα 3-2-1). Χωρίς αυτό, όλα τα παραπάνω είναι δάνεια.
Ξεκίνα με ένα πραγματικό compose
Οργάνωση: ένας φάκελος /opt/stacks/<service> ανά υπηρεσία με δικό του docker-compose.yml. Παράδειγμα με Pi-hole + Uptime Kuma (τα δύο πρώτα):
# /opt/stacks/pihole/docker-compose.yml
services:
pihole:
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "8080:80/tcp" # web UI — ΜΗΝ το ανοίγεις στο router
environment:
TZ: "Europe/Athens"
volumes:
- ./etc-pihole:/etc/pihole
cap_add:
- NET_ADMIN
restart: unless-stopped
# /opt/stacks/kuma/docker-compose.yml
kuma:
image: louislam/uptime-kuma:1
ports:
- "3001:3001"
volumes:
- ./data:/app/data
restart: unless-stopped
$ cd /opt/stacks/pihole && docker compose up -d
$ cd /opt/stacks/kuma && docker compose up -d
# δοκιμή: http://192.168.1.50:8080 (Pi-hole admin) & :3001 (Kuma)
Ετήσιο τεστ, μην το παραλείψεις
Κάθε service = ένας φάκελος με volumes. Αν ένα volume χάσεις, χάνεις τα δεδομένα του. Γι' αυτό τα backups είναι το βήμα 10 και έχουν δικό τους ξεχωριστό οδηγό — διάβασε τον πριν ανεβάσεις φωτογραφίες στο Immich.
Καθαρότητα: κανόνες που θα ευχαριστήσεις τον εαυτό σου
- Ένα stack = ένας φάκελος με δικό του compose. Ποτέ « όλα σε ένα compose» — γίνεται μπερδεμένο και ανέφικτο σε troubleshooting.
- Named volumes ή mapped φάκελοι με σαφές σχήμα (
./data,./config) — ώστε το backup script να ξέρει τι να πάρει. restart: unless-stoppedπαντού — μετά από blackout, όλα ξανασηκώνονται μόνα τους.- Ports μόνο εσωτερικά: οι web UI ακούνε στο LAN (192.168.x.x). Τίποτα δεν «δημοσιεύεται» στο internet — η έξοδος-είσοδος γίνεται μόνο μέσω VPN (δες ασφάλεια).
- Watchtower με προσοχή: auto-updates είναι ωραία, αλλά μπορεί να σπάσει κάτι σε major bump. Προτίμησε χειροκίνητο
docker compose pull && docker compose up -dανά μήνα, με backup πριν.
Τι ΔΕΝ βάλλεις στο home lab (ακόμα)
- Email server — δυσκολότερο project από όσο φαίνεται (deliverability, IPs σε blocklists). Χρησιμοποίησε πάροχο, το self-hosted mail αφήν' το για «πτυχίο».
- Δημόσιο WordPress/blog production — το home lab είναι για προσωπικά, όχι για uptime-critical public υπηρεσίες.
- Οτιδήποτε περιμένει ότι «θα το προλάβω» χωρίς backups/monitoring.