Homelab / Self-hosted apps

Ik ben sinds kort helemaal in de ban van homelabs en self-hosted apps, daarmee deze thread.

Ik zou graag eens horen van anderen wat hun setup is, do’s en don’ts, resources, handige apps, …

I’ll start

Hardware

  • Beelink EQR5 MINI PC 32GB
  • Raspberry Pi 5 (2 maal)
  • Raspberry Pi 3
  • Een simpele ethernet switch

Self hosted apps

  • Traefik: The leading open-source reverse proxy and load balancer for HTTP and TCP-based applications that is easy, dynamic and full-featured.
  • Pihole: A black hole for Internet advertisements
  • Dockge: A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
  • Dozzle: Real-time logging and monitoring for Docker in the browser
  • Beszel: A lightweight server resource monitoring hub with historical data, docker stats, and alerts
  • DIUN: Docker Image Update Notifier is a CLI application to receive notifications when a Docker image is updated on a Docker registry.
  • Dashy: Self-hosted photo and video management solution.
  • Kanboard: Kanboard is a free and open source Kanban project management software
  • Wiki.js: The most powerful and extensible open source Wiki software
  • Linkwarden: Open-source collaborative bookmark manager to collect, organize and preserve webpages
  • Jellyfin: Jellyfin is the volunteer-built media solution that puts you in control of your media.
  • Immich: Self-hosted photo and video management solution.
  • Gramps Web: Web based application to build your family tree
  • Reactive Resume: Resume builder that simplifies the process of creating, updating, and sharing your resume

Alle apps draaien in aparte Docker containers. Ik gebruik vervolgens Tailscale om deze via een VPN tunnel van buiten mijn eigen netwerk te benaderen. Vervolgens wordt alle traffic via een reverse proxy afgehandeld (Traefik).

Apps die public via het internet beschikbaar zijn, manage ik met Cloudflare tunnels.

Voorlopig draaien alle apps nog op 1 device, ik zie wel wat de toekomst brengt.

Do’s

  • Backups backups backups
  • Documenteer alles wat je doet (ik gebruik Wiki.js)

Don’ts

  • Ik ben er nog niet zoveel tegengekomen omdat ik nog niet zo lang bezig ben. Ik moet dus nog tegen de lamp lopen

Resources

Ik lees heel veer over “Proxmox”, maar ik ben nog niet 100% mee. Ik heb het gevoel dat dit in mijn usecase minder toepasbaar is omdat ik alles in containers draai? not sure…

Also, ik heb m’n servertje een naam gegeven:

7 likes

Cool idee! :vb_tongue: Sinds de aankoop van ons huis hier ook mee begonnen.

Hardware:

  • 12U server rack op de muur
  • Rackmount voor Mac Mini (i know, de allernieuwste mac mini’s passen hier na 13 jaar dezelfde vorm te hebben, hier niet meer in)
  • Mac Mini 2011 en Mac Mini 2023, passen mooi in bovenstaande rack mount
  • Synology DS1019+

Momenteel nog een Ubiquiti Amplifi HD router in gebruik. Maar er is plaats in de server kast voor een Unifi Dream Machine SE, een Unifi switch, … Om op termijn dan ook in een Unifi access point, Unifi camera en Unifi doorbell te kunnen investeren $$$ :vb_rolleyes: En dan eens deftig het kabelwerk te verzorgen.

Self-hosted apps:

  • Home Assistant (docker). Het enige dat op de oude Mac Mini 2011 draait. Ik heb Ubuntu geïnstalleerd om toch docker te gebruiken, want het virtualization framework ontbrak op de nog ondersteunde macOS versies…
  • Mosquitto MQTT broker (docker): om data via MQTT van P1 elektriciteitsmeter data, Shelly energie metingen, … te ontvangen voor Home Assistant.
  • Plex (native macOS): om media te streamen naar tv, iPad, … Niet in docker draaien omdat voor transcoding van video het toch snelst als native app werkt.
  • Restic backups (docker) om backups naar Backblaze B2 of S3 te maken, met encryption, en purged automatisch oudere backups volgens gewenste retention.
  • changedetection.io (docker) de open-source docker container (not the paid platform). Is al vaak handig gebleken om een website te monitoren op pagina updates. Bv webshop product die uitverkocht is elk uur bezoeken en een mail alert instellen wanneer DOM element of structured data naar “in stock” wijzigt. Of bv. alert krijgen wanneer een website nieuwe foto’s heeft toegevoegd.
  • Cloudflare tunnel met Zero-Trust (docker) om Cloudflare Zero-Trust op te zetten met mijn domeinnaam. Sommige apps maak ik publiek beschikbaar via cloudflare, sommige maak ik enkel toegankelijk als je de Cloudflare app (WARP) actief is, sommige links zijn enkel toegankelijk als je eerst een code ontvangt op een handvol safelisted email-adressen (random voorbeeldje hier). Ik draai geen Traefik/Caddy of andere reverse proxies… Ik expose gewoon de poort van de container naar mijn host, en dan het lokale ip en poort mappen via Cloudflare op een subdomein. Bv. 192.168.1.120:8787 --> myapp.domeinnaam.be en dan kan je een access policy toevoegen om slechts bepaalde bezoekers door te laten.
  • Healthchecks.io (docker) om scheduled jobs te kunnen monitoren indien nodig
  • Kavita (docker) om ebooks in te verzamelen, maar nog zelden gebruikt.
  • Skybridge mijn eigen proxy om Bluesky te lezen in de Ivory mastodon app. De hosted skybridge is vaak down en rate-limited.
  • Servarr: verzamelnaam voor apps Radarr/Sonarr/Prowlarr/Lidarr/Bazarr/Readarr/Overseerr/Trailarr :face_with_peeking_eye:
  • Speedtest Tracker (docker): nice speedtest tool die stats bijhoudt hoe snel je thuisnetwerk is. Ooit eens opgezet om te kijken op welke momenten van de dag Telenet trager is etc.
  • Tautulli om statistieken uit Plex te halen. Kan je zien wie er van de familie nog keek op je Plex server, hoelang, welke videos, welke transcoding, …
  • Uptime Kuma (docker) uitstekende uptime tool. Ik gebruik die vooral om elke self-hosted app te monitoren (is home assistant down?) maar ook hardware IoT (Shelly etc) in huis… Zo heb ik nooit een kwade partner omdat iets niet werkt en al dagen kapot blijkt :face_with_peeking_eye:
  • Watchtower (docker) zal elke container regelmatig opnieuw pullen. Behalve Home Assistant, die update ik liever voorzichtig zelf.
  • Synology Photos (synology) als Google Photos alternatief. Werkt wel aangenaam, met personal en shared library en mobile apps met backup functionaliteit. Albums publiek delen, uploads van derden toelaten in een album, basic herkenning van personen, … Ik bekijk binnenkort ook eens Immich omdat die wel populair lijkt te worden.
  • Pihole: staat momenteel terug uit. Soms werken websites niet goed (of tv apps met reclame) tot ongenoegen van de vriendin.

De docker containers runnen gewoon met Orbstack en docker-compose files om het simpel te houden. Bijna alle container images zijn van Linuxserver.io. Leuke lijst in die hun sidebar om nieuwe self-host apps te ontdekken!

Dat veel mensen VM’s met Proxmox gebruiken snap ik ook niet (nog Ansible nodig om de VM config in code te houden dan? Of zetten ze alles manueel op?). Het voordeel is waarschijnlijk dat je gemakkelijk snapshots kan nemen van een VM, wat ik wel snap voor home assistant.

3 likes

Deftige setup. Heel gelijkaardig aan waar ik mee bezig ben.

Vind je het gebruik van Watchtower niet wat “gevaarlijk”? Automatisch pullen van updates? Ik gebruik hiervoor GitHub - crazy-max/diun: Receive notifications when an image is updated on a Docker registry

Also, even Restic backups bekeken. Maak je dan backups van je container volumes?

Voorlopig nog geen issues gehad door Watchtower eigenlijk. Ik zet wel een LABEL com.centurylinklabs.watchtower.enable="false" label op de echt belangrijke containers (home assistant) zodat ik die manueel kan updaten… Als er een issue gebeurt waardoor de container crasht, dan zal UptimeKuma mij wel een slack alert sturen :smile: Tenzij uptimekuma zelf down is :smiling_face_with_tear:

In de Restic container mount ik gewoon de volledige folder van mijn Homelab. Meeste containers hebben een volume mount om de data of config in een folder op de host te bewaren (bv linuxserver hun docker compose voorbeelden). Er zijn ook PRE_COMMANDS als je eerst nog een sql backup wil nemen van iets ofzo. Voorlopig goed genoeg allemaal :sweat_smile:

1 like

Me reading this thread

6 likes

In 2021 begonnen met een raspberry pi. Sinds een jaar ook bezig met een “homelab”. Voornamelijk voor meer privacy, veiligheid en natuurlijk om bij te leren.

Hardware:

  • Raspberry pi 4
  • 3x HP 800 G3 Mini (Proxmox cluster) (2e hands gekocht)
  • Synology NAS DS214+

Self-hosted apps:

Raspberry pi 4

Proxmox cluster

Na het kijken van wat YouTube video’s “hoe een proxmox cluster op te zetten” ben ik dit gewoon blijven gebruiken. Ik ben geen expert maar het draait wel. Zeker de Proxmox Helper-Scripts eens bekijken!

Ik heb niet de laatste processors maar genoeg voor wat ik doe.


Ik kan nog ff voort hiermee… :sunglasses:

Hierop draai ik:

  • Crafty Controller: Host Minecraft server voor de kids (privé, dus heeeel de wereld voor hun alleen :vb_devil2:). PRO-TIP: back-ups instellen!
  • kasm workspaces: Draai disposable apps in een container. Bv. een Firefox browser en delete de container wanneer je deze niet meer nodig hebt. Ik gebruik dit voor het downloaden van Minecraft add-ons. Daar kom je veel shit (lees: ads en forced clicks) tegen voor je iets kan downloaden.
  • Homarr: Dashboard pagina met widgets. Stel links in naar je self-hosted apps (incl. mooie icons).
  • uptimekuma: Self-hosted apps availability tracken. Ook handig: Voor 1 of andere “crasht” mijn omvormer van de zonnepanelen eens. Ik monitor de HTTP endpoint hiervan, dus ik weet wanneer ik hem eens moet herstarten.
  • gitlab / github runners: Draai je CI/CD pipelines op je eigen servers.
  • syncthing: Peer-to-peer sync. Gebruik ik om m’n knowledge base met logseq (alternatief voor Obsidian) te syncen tussen al m’n devices (desktop, laptop, gsm).
  • portainer (docker): gemakkelijk compose stacks draaien.
  • cast all the things (catt): Custom scripts geschreven om custom webapps te draaien op mijn Google Nest Hubs. De webapps kan ik starten vanaf Home Assistant.
  • pihole: Eenvoudige local DNS
  • rtl433: Via USB dongle de data oppikken van een Bresser weerstation en doorsturen naar de mqtt broker.
  • mqtt: data broker die de data ook beschikbaar maakt voor Home Assistant.
  • VS Code Server: Host eigen SSH development omgeving (met dev containers), gemakkelijk switchen tussen desktop en laptop en verder programmeren waar ik was gebleven. Vroeger betaalde ik voor Cloud9, Gitpod of codesandbox. Nu niet meer. ^^
  • Nginx Proxy Manager: Eenvoudig lokale subdomeinen opzetten met Let’s Encrypt in plaats van IP adressen te gebruiken.
  • Cloudflared: Cloudflare Zero-Trust tunnel naar apps. Zoals @JesseD doet. :slight_smile:
  • penpot: Open-source design tool ala figma.
  • freshrss: RSS reader / aggregator
  • focalboard: Eenvoudige trello kloon
  • Stirling PDF: PDF’s aanmaken, wijzigen, …
  • IT Tools: Veeeel handige developer tools! Zie demo.
  • strapi: Open-source headless Node.js Content Management System
  • Apps server met pm2: Lokaal wat Node.js apps hosten.

In het begin vroeg ik me af “wat ga ik nu zelf hosten…” maar uiteindelijk vind je wel genoeg software! :sweat_smile:

4 likes

Deze topic zorgt er alleen maar voor dat ik nog dieper in de self-hosted rabbit hole zit. Love it!!!

1 like

Heb m’n homelab al zo’n twee jaar draaien ondertussen. Combinatie van privacy minded & omdat ik graag knutsel :wink:

Hardware:
*Intel NUC
*Synology NAS DS220+

De NAS is een pure document & backup server, alle compute gebeurt op de NUC. Ik heb Proxmox draaien op de NUC, wat een droom is om te backuppen. Ik heb er zo’n 3 tal VM’s op draaien momenteel

Software & Apps

  1. Ubuntu server met Docker compose
  • Immich Google Photos alternatief
  • Bookstack Wiki documentation
  • Paperlesss-ngx Document management
  • Tandoor Recipe management
  • Firefly Finance tracker
  • Jellyfin Media player
  • HomeBox Home inventory
  • Homepage Homelab startpage
  • WatchTower automatic backup
  • Gotify Notifications
  • Traefik als reverse proxy met de Crowdsec plugin
  1. Wireguard VPN
  2. Home Assistant flexiber HAOS dan via docker

DNS loopt via Cloudflare & domain via NameCheap

1 like

Meteen gemotiveerd om zelf ook wat meer te gaan hosten op mij Nas.
Ik wist niet dat er zoiets bestond zoals Kavita. Ik zit net met mijn Kobo klaar om ebooks te syncen… Zou wel leuk zijn mocht ik op 1 of andere manier wireless kunnen syncen met ebooks die op mijn NAS staan :thinking:

Zo goed als elk software pakket heeft een (of meerdere) free self-hosted alternatief.
Ik spendeer redelijk wat tijd op r/selfhosted, daar posten veel van de maintainers updates en info over hun projecten.

Ook https://awesome-selfhosted.net/ bevat een hele lijst van open source en selh-hosted alternatieven

1 like