AI Disclosure: I use Claude as a coding partner, and some of Home Cloud’s code was written with it. I decide the architecture, security model and features, and I review, test and debug every change on my own hardware. My Devember goal includes understanding each part deeply enough to explain it here.
The problem
I’m a student in India behind CGNAT. Port forwarding isn’t an option, and I didn’t want to rent a VPS just to reach my own machine. So I built Home Cloud: one self-hosted panel that turns a spare Linux PC into a personal “VPS” I can use from any browser.
Where it starts (v1.4.1, open source, Apache 2.0)
It’s up and working today. You can install it on your own box with one command, and the guide is at https://home-cloud.live
-
Node.js agent + React desktop-style web UI
-
Host terminal, multi-drive file explorer, live system metrics
-
Docker + Compose management (logs, exec, stats, compose editor)
-
Remote access over an outbound Cloudflare Tunnel, so no port forwarding; switches to the LAN IP at home
-
One-command installer and one-click self-update with rollback My Devember goal: take it from “works for me” to something I’d trust other homelabbers with
- Crash watchdog + alerts (ntfy / Discord / Telegram)
- Docker volume snapshots and restore, tested properly
- Chunked uploads to get past the 100 MB Cloudflare limit
- Test and support ARM boards (Raspberry Pi and friends)
I’ll post what I build, what breaks and how I fix it. If you try it, I’d love to hear what breaks for you.
Repo: [GitHub - Cypher0071/Home_Cloud: Self-hosted home server dashboard for Docker, files, system monitoring, and secure remote access. · GitHub](https://github.com/Cypher0071/Home_Cloud)
Docs: [https://home-cloud.live](https://home-cloud.live)
So basically cloudflare with extra steps?
Don’t you have IPv6? I thought that India is pretty good when it comes to IPv6
Tailscale might be worth a look alongside the Cloudflare Tunnel option. It only makes outbound connections, so it works fine behind CGNAT, and the 100 MB upload limit you’re working around doesn’t apply since traffic goes directly between your devices (or through a relay when a direct path can’t be made). I reach all my Ubuntu Server boxes that way over SSH and keep anything admin-only off the public internet entirely. The tradeoff is that every device you connect from needs the client, so a browser-from-anywhere tunnel still makes sense for the panel itself.