What's in my Homelab - July 2024
2024-07-28
It's been a while since I last wrote about my homelab setup. The hardware is still the same Fujitsu Esprimo G5010 mini PC with an Intel Core i7 10700T and 8GB of RAM. The setup based on Proxmox VE running NixOS LXCs I described in this post stood the test of time and I'm very happy with it.
On the software side I made many changes, mostly additions, since last year.
Infrastructure
I have a pretty standard setup with Nginx in front of my services and in charge of TLS termination with certificates provided by Let's Encrypt.
I prefer to have each service use it's own SQLite database but some don't offer that option so I also have a Postgres instance. I store my time series in InfluxDB2 and visualise them with Grafana.
I use gatus to monitor my services, build a status page and notify me via push notifications when something goes wrong using ntfy. For a while I ran Uptime Kuma but I found gatus to be more lightweight and configurable using configuration files instead of a clicky UI.
All my services are only accessible via LAN or via Tailscale.
Services
As much as I like infrastructure, let's move on to the services I run:
- AdGuard Home for local DNS and to filter malicious websites;
- Atuin to have my shell history synchronised across all my machines;
- FreshRSS to synchronise RSS feeds;
- Jupyter mostly used to plot some charts every now and then;
- dir2opds to make available some e-books to my e-reader;
- SearxNG to have search without AI hallucinations;
- SilverBullet for note taking;
- Soju as my IRC bouncer;
- Syncthing to have some files shared between my devices;
- Vaultwarden as my password manager.
Finally, I am also running a custom service to collect data from my solar inverter and publish it to InfluxDB.
Backup
Each service that I need to backup has an additional systemd service to prepare its own data, for example by dumping the database. All that data is then processed by restic which stores it offsite.
Conclusion
I am happy I found a solid infrastructure that allows me to add new services easily and with little effort. The services I selected are all pretty lightweight, which allow me to deploy them all on a single machine with lots of resources to spare.
Thanks for reading. Feel free to reach out for any comment or question.