Home Lab: My CasaOS Setup (Local DNS, VPN & Ad Blocking)
๐ Home Lab: My CasaOS Setup (Local DNS, VPN & Ad Blocking)
Hey everyone! Today I decided to move my services out of the cloud and bring them back home.
The idea? A home NAS that does more than just store files and becomes the true brain of my network.
After very little "thinking," I chose CasaOS.
It is simple, good-looking, and built on a solid Linux base. I really wanted to test it, so here is my feedback along with a practical guide for anyone who wants to try the same adventure at home.
๐๏ธ Under The Hood: Architecture
Before talking about hardware, we need to understand what we are installing.
Contrary to what many people think, CasaOS is not a full operating system.
It is a lightweight management interface (a dashboard) that installs on top of an existing Linux base (Debian, Ubuntu, or in this case Raspberry Pi OS).
So why CasaOS instead of a heavier solution like TrueNAS or OpenMediaVault?
Honestly, because for a personal lab those options felt too "industrial" for what I wanted.
CasaOS adds a clean layer of simplicity and a nice UI while still staying flexible, and that has real advantages.
Technical DNA
-
The Core: Docker
Everything runs on Docker. Every app is isolated in its own container.
It is clean, gives you built-in isolation, and offers almost unlimited service choices through the built-in App Store or by adding Docker images manually. -
The Language: Go
CasaOS is written in Go, which keeps it lightweight and performant, even on a Raspberry Pi. -
The Interface: Vue.js + API
The interface is a modern Vue.js web app that talks to the system through APIs, giving a smooth and pleasant dashboard experience.
โ๏ธ Hardware: From Testing To Production
Right now I am running a very lightweight setup due to budget limits, but the final version is already planned.
Current Setup (Testing)
- Raspberry Pi 4 (4 GB RAM)
- SD card for the system
This setup is mainly my lab environment to validate architecture and services before moving to something more powerful.
Target Setup (The Real NAS)
- Brain: Raspberry Pi 5 (16 GB RAM) for full comfort, even with multiple services running in parallel.
- Case: A 3D-printed 4-bay case (Source: MakerWorld - NAS RPi5) that inspired me a lot.
- Storage:
- Goal: 3 x 8 TB drives in RAID 5.
- Detail: CasaOS does not manage RAID natively.
- Solution: create the array at the Linux layer using
mdadmin command line before adding it to the CasaOS interface.
It is cleaner and more stable this way: Linux handles RAID, CasaOS focuses on services.
๐๏ธ Installation: The Magic One-Liner
For the OS, I stayed with Raspberry Pi OS Lite (64-bit).
Prepare the SD card with Raspberry Pi Imager (pre-configure SSH and Wi-Fi), then insert it into the Pi.
Once connected through SSH, installing CasaOS literally takes 30 seconds:
curl -fsSL https://get.casaos.io | sudo bash
After that, you just connect to the CasaOS web interface from your local network and start deploying services.
๐ก๏ธ Network Combo: AdGuard + VPN (WireGuard)
This is where it all started: a Raspberry with Pi-hole was the original idea.
But I was not going to use a Raspberry for only that, so I decided to think bigger.
With some ISPs, you are blocked from changing default DNS servers.
Result: you are basically forced to keep trackers and default ads.
So I had to improvise a bypass tunnel.
AdGuard Home: The DNS Firewall
I installed it on CasaOS.
Beyond ad blocking, it acts like a real DNS firewall:
- blocks malicious domains;
- neutralizes trackers;
- blocks excessive telemetry.
The biggest benefit is full visibility of DNS flows with real-time logs.
WireGuard: The Private Tunnel
I set up a WireGuard server on my Raspberry Pi.
It is my secure entry point to join my local network remotely.
DNS Routing
In my VPN client settings, I simply forced my Pi IP as the exclusive DNS server.
The result is pretty great:
As soon as I enable VPN, all my traffic (even on 4G) goes through my secure tunnel and benefits from AdGuard filtering.
๐ Local DNS: .nascar
Someone once told me: "If you are lazy, you will become good at IT."
So why type 192.168.1.32 when you can just access everything through casa.nascar?
Wildcard DNS
In AdGuard, I configured *.nascar to point to my Pi IP.
Reverse Proxy (Nginx Proxy Manager)
Nginx Proxy Manager (NPM) receives requests for casa.nascar and forwards them to the correct internal port (port 81 for CasaOS, for example).
It is clean and professional, and I always enable "Block Common Exploits" for extra security.
Result:
- readable and easy-to-remember URLs;
- one central entry point to route all services.
๐ Next Steps
CasaOS is an ideal entry point to learn Docker without pain.
My next test: Syncthing.
It is a super-fast peer-to-peer sync tool that will let me build my own private "Dropbox" between my machines.
Conclusion: if you are somewhat comfortable with Linux, CasaOS is an awesome playground.
It is intuitive enough for family use, but deep enough for those of us who like to tinker.