Building Homelab & NAS with MiniPC
“Build your own cloud, stream your own media, and block your own ads โ all from one tiny box.”
โ๏ธ Base Setup: Proxmox VE
I make my MiniPC to run Proxmox VE. It allows me to run containers and VMs for all my services.
I use GMKtec G3 with 16GB of RAM and 512GB of SSD, which cost me around $200
The reason that I choose this device is because of the efficient, compact design and low power consumption, thanks to the Intel N100 processor.
๐ฆ Container Management with LXC and Portainer
To manage all my various services, I deploy them inside an LXC container on Proxmox. I use Portainer for an easy-to-use gui for container management. This allows me to deploy, monitor, and maintain my self-hosted services.
My Services
๐ฌ The ARR Stack (Media Automation)
This ARR stack automates my media downloads and management for movies and series. Many sources suggest that I need to use a VPN for torrenting due to policies in their countries, but since there are no regulations regarding torrenting in my country, I donโt need to set that up.
Stack Components:
- Prowlarr โ Indexer aggregator for torrents.
- Qbittorrent โ Torrent client.
- Sonarr โ Fetches TV shows.
- Radarr โ Fetches movies.
- Bazarr โ Grabs subtitles.
- Flaresolverr โ Helps Prowlarr bypass Cloudflare-protected sites.
- Jellyfin โ Local streaming platform for all media.
๐ธ Immich โ Photo & Video Backup
Immich is my go-to for self-hosted photo storage. It supports auto-upload, albums, timeline views, and even facial recognition.
๐ Pi-hole + Unbound + NGINX Proxy Manager
I had to do this combo, it handles DNS resolution, ad blocking, and hostname routing on my network, and it helps mitigate ISP interference. Without Unbound (DoT), my queries (plaintext) are sent to the DNS are being intercept by my ISP. With unbound (DoT) my queries are being encrypted
What It Does:
- Blocks ads on all network devices
- Resolves local hostnames like
nas.dapa
ormedia.dapa
- Uses Unbound with DNS-over-TLS (DoT) for private DNS resolution
Setup Notes:
- Assign static IP to Pi-hole in your router
- Point router DNS to Pi-hole
- Disable IPv6 on the router (because my ISP automatically assign IPv6 DNS, which i couldn’t set, then i turn it off)
- Use NGINX Proxy Manager for HTTPS reverse proxy
๐ฎ Whatโs Next?
Plans for the future:
- Add Nextcloud or Syncthing for file storage and sync
- Build a centralized dashboard (thinking Heimdall, Dashy, or Homarr)