Skip to main content
  1. Projects/

Self Hosting services

·693 words·4 mins
Author
Amarendra Badugu
This is my workbook of projects.

I enjoy the practice of self hosting services on my own infrastructure. It can be a hassle to start. I learned that it is pointless to emulate a systems admin with decades of networking experience. As long as it works and I can access the service when I need it, I am happy.

The awesome-sysadmin and awesome-selfhosted GitHub repos are goldmines. I usually go after much more established repos than new stuff.

Why Self-Host
#

  • Privacy: The privacy factor alone is a win. My data stays on my hardware, not on someone else’s servers. The self hosted local LLMs don’t consume tokens and keep data private, that’s the kind of practical benefit that makes the effort worthwhile.
  • Cost: Since I only buy older enterprise gear, the upfront hardware investment pays off quickly. $5 for each SaaS adds up fast, and many companies increase their prices over time.
  • Learning: I can see how these services actually work instead of treating them like black boxes.

Hardware
#

I started with a small enterprise desktop, a 8th generation i5 with 6 cores, which was sufficient for my initial needs. In early 2025, I upgraded to another used enterprise system with a 10th generation i5 when I found one for about 100 euros.

CPU usage tends not to get too high, but there’s definitely RAM pressure, so I upgraded to 64GB DDR4. I managed to get the idle power usage down to 5-10W and 30-40W under load with CPU only containers. With an Nvidia Tesla P4 GPU (Runs on PCIe power) added for running local LLMs, total power consumption reaches around 100W.

Setup
#

  • I run three VMs for cleanliness:

    • Home Assistant OS running in a dedicated VM
    • One Debian VM for outward-facing Docker services with Tailscale running on it
    • One Debian VM for Docker services that stay internal to the LAN, including my own self written services.
  • I run mostly containers to make everything easier to manage and migrate. I have a bash script to redeploy when I need to. While bare metal or even VMs can be more efficient, Docker is more practical for most services. I tried other options (Podman and Portainer) and came back to Docker because of the platform’s maturity.

  • Automated backup scripts handle the volume folders.

Docker services:
#

  • Ollama Ollama for local AI stuff.
  • OpenWebUI OpenWebUI for chat interface with Ollama.
  • Podgrab : Podcast management that just works, It can easily download a lot of Podcasts, so have a lot of disk space ready. Imported all my subscriptions from AntennaPod.
  • Stirling PDF : For PDF manipulation. Merge, split, convert, and edit PDFs without using random online services. I featured it in Adobe alternatives
  • Paperless-ngx : For screenshot and some document management. Just backup the output directories.
  • Mealie : Recipe management and meal planning.
  • Speaches : Wrapper around fast whisper. Convert audio files or live speech to text. Useful for Youtube audio, podcast transcripts, or any audio content.

Want to Try:
#

  • Homarr : Dashboard.
  • Pi-hole : network blocking solution.
  • Immich : Photo and video backup solution with automatic uploading from mobile devices.
  • Deploy a proper monitoring service.
  • Test the recovery strategy.
  • Need to add external users for some services.

Retired
#

  • Grist : This hybrid database and spreadsheet tool handles some of the stuff that I don’t want to keep in a database. It has decent CRM capabilities too. Still need to learn to use it properly.
  • Nextcloud File sync, Notes.

What I’ve Learned
#

  • Starting small: I tried to replace everything at once, but it became a mess. A lot of tech YouTubers suggest many services, but they’re aimed at a very different audience. For me, some services work well while others don’t. I also dislike many suggestions since there are plenty of bait and switch companies in this space. I’d rather pick one service, get it working well, then add the next one.

  • Document everything: Write it down while it’s fresh. I usually document everything inside Joplin and keep version control on my bash scripts and markdown documentation files.

  • Accept “good enough: Perfect is the enemy of functional. If it works reliably, move on to the next thing.