My Self-Hosting Stack: Everything I Run, and How It All Connects

Sanskar JaiswalSanskar Jaiswal
3 min read

When I first wrote about the emotional rollercoaster of self-hosting, I focused on the why, the motivations, frustrations, and addictive wins that come with running your own infrastructure. But one of the most common questions from friends I got was: “Okay, but what do you actually self-host?”

This post is my answer. It’s a complete breakdown of the apps I run, how they connect, what runs in Docker, what runs natively, and how I try to keep everything just stable enough to trust with my digital life.

Hardware Overview

Before diving into apps, here's the gear powering it all.

Server: Dell OptiPlex 3050 Micro
i3-7100T, 128GB NVMe boot + 1TB SSD for /data

External Storage: 4TB Seagate Expansion Drive
Mounted as /mnt/dumptruck, used for media, downloads, and backups

Network: Tailscale for remote access, Samba for local file sharing

Everything runs on Fedora Server, headless.

Core Stack

These are the foundational apps, things I rely on daily.

Nextcloud

Purpose: File sync, calendar, contacts, notes
Setup: Runs in Docker, /data/nextcloud mounted for storage
Extras: Integrates with Photo backup from iOS via iCloudpd, accessible over Tailscale

Paperless

Purpose: Document archiving (PDFs, bills, IDs, etc.)
Consume Folder: Default, with OCR and auto-tagging enabled
Setup: /data/paperless as persistent volume, runs in Docker
Note: Planning to add rules and a Discord notification bot

Immich

Purpose: Private Google Photos replacement
Data Location: /data/immich
Setup: Docker Compose; iOS and Android apps used for uploads

Backup + Redundancy

Backups are the difference between peace of mind and total panic. Here's how I manage mine.

Cloud Backups

Google Drive and Mega are mounted via containers.
Backups are copied regularly to /mnt/dumptruck/Backups/ using rsync.
Encrypted .tar.gz files are stored offsite.

Snapshot Scripts

I use ZFS-like manual snapshots of important folders like Nextcloud and Paperless.
I plan to automate snapshot creation and verification soon.

Smart Home and Monitoring

This is a pretty new space for me, but it's where things get fun and occasionally chaotic.

Home Assistant

Purpose: Control smart lights, routines, sensors
Setup: Native install under /data/homeassistant
Devices: Two smart bulbs, ambient lighting via Arduino and Prismatik
Access: Exposed on local IP

Homebridge

Purpose: Bridge non-HomeKit devices to the Apple ecosystem
Setup: Native install (not Docker)
Status: In active use with iPhone and iPad

Tailscale

Purpose: Private remote access across phone, laptop, and tablet
Bonus: Simplifies SSH, Nextcloud access, and photo syncing

Media and Downloads

Jellyfin

Purpose: Local movie and TV streaming
Storage: Reads from /mnt/dumptruck/Media
Setup: Docker

Torrent Stack (qBittorrent, Prowlarr, Bazarr)

Purpose: Automated media management
Tools:

  • qBittorrent for downloads

  • Prowlarr as indexer manager

  • Bazarr for subtitles
    Storage: Downloads to /mnt/dumptruck/Downloads

Monitoring and Alerts

Discord Bot

Purpose: Notifies on backup success, failure, and other alerts
Setup: Shell scripts call a webhook with status info

Grafana (experimental)

Purpose: Dashboard for uptime, disk usage, etc.
Status: Used occasionally, but not core to daily operations

How It All Connects

Everything is centered around /data for persistent volumes.
Media and bulk data are offloaded to the 4TB HDD.
Tailscale acts as the glue between all mobile and remote devices.

Lessons from This Stack

  • Keep volumes organized under /data because it makes backups easier.

  • Use Tailscale early since it saves days of port-forwarding frustration.

  • Don’t over-optimize upfront. Get it working first, then make it pretty.

  • Backups are real work. Automate as much as possible and test recovery.

What's Next

  • Setting up snapshot validation

  • Integrating Paperless with tagging and alert rules

  • Maybe running a local LLM for notes or search indexing

Final Thoughts

This stack isn’t perfect. It’s full of small decisions, trial-and-error, and weekend experiments. But it works. And most importantly, it gives me back control, ownership, and a sense of craft.

1
Subscribe to my newsletter

Read articles from Sanskar Jaiswal directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sanskar Jaiswal
Sanskar Jaiswal