Running an Entire Home Lab on $15/Month Cloud Credits
The $15 DevOps Lab: How I Run My Cloud Stack with Free & Cheap Services
What if you could run a fully functional “cloud home lab” including public dashboards, self-hosted apps, a VPN, and even a GitLab runner — for less than the cost of two lattes? Well, as it turns out, if you put the right services together, you can do exactly that. My total cloud bill averages around $12 to $15/month, and I’m hosting everything from real-time monitoring to remote access gateways. You can do this too by just using free and ultra-cheap cloud services.
This post breaks down the services I use and what I am using them for. And if you’re a paid member, I’ve created the full Terraform and Docker stack into a single downloadable PDF so you can launch your own cloud lab in minutes.
Why would you run a cloud lab instead of a home lab?
Home labs are great, but sometimes you want a few things that you can’t do with a home lab. These things include 99.9% uptime from hosted compute (e.g., Oracle Cloud). Also, having remote access without messing with firewalls or DDNS and the headaches you get into with residential Internet packages and the filtering they automatically do that makes hosting certain types of traffic extremely difficult.
Also, with a major cloud provider, you don’t have to worry as much about things like local power outages or exposing your home IP to self-host certain types of services.
The cloud services I’m using (and how much they cost)
Below is a listing of the cloud services I have stitched together and what I am using them for.
1. Oracle Cloud Free Tier
This is free forever. You get 4 ARM vCPUs, 24 GB RAM, 200 GB block storage that you can run 24x7x365. IEven though this is an ARM CPU you might think use this to run:
Docker containers
Netdata agent
Lightweight monitoring or VPN endpoints
Check out Oracle Cloud Free Tier here: https://www.oracle.com/cloud/free/
2. Fly.io
Free tier includes up to 3 small app instances with 256 MB RAM.
I use this for:
Public-facing dashboards (Grafana, FreshRSS)
Static app frontends
Quick redeployable microservices
Check out Fly.io here: https://fly.io/
3. Hetzner Cloud
Roughly $5–6/month. Budget VM: 2 vCPU, 4GB RAM, 40GB SSD.
I use this for:
Persistent data services like GitLab or Drone CI
Volumes for databases, logs, etc.
Container backups and CI runners
Check out Hetzner here: https://www.hetzner.com/
4. Cloudflare Tunnel
This is completely free and lets me expose services publicly with HTTPS and without opening any firewall ports or configuring DDNS.
Check out Cloudflare tunnel here: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
5. Tailscale
The free tier covers everything I need and I use it for the following types of network services:
Mesh VPN between all my cloud and home nodes
SSH access from anywhere
Optional exit node from cloud if needed
Check out Tailscale here: tailscale.com
Real workloads I'm hosting in the $15 cloud lab
You may wonder exactly what I have running in this lab. You can run a wide range of services with these cloud environments. Here is what I am actually running:
GitLab CE for private repositories and CI pipelines if you want to host these from the cloud without using cloud GitLab
Ollama + OpenWebUI to run LLMs locally in Oracle Cloud
FreshRSS container frontend exposed via Fly.io
Netdata agents reporting to Netdata Cloud from all nodes
Grafana and Prometheus for container and system metrics
Shepherd and Watchtower to auto-update containers
Tailscale for secure SSH and private DNS resolution
Cloudflare Tunnel to access selected services remotely
Why this setup can work and keep costs low
It’s all about combining the right resources and staying within the cloud free tier limits. The beauty of the Oracle ARM compute tier is it is free forever for 4 cores and 24 GB of RAM. You can also break this between multiple VMs if you want as well or just a single VM.
Most solutions today have an ARM-based container thanks to Apple Silicon helping to standardize this architecture. So, you should be able to find most anything you want to run in a Docker ARM container.
I have defined by infrastructure as code in Terraform. This is definitely worth the time since it allows you to destroy/rebuild your environment in minutes. Things are secure by default as well since there are no public ports opened up.
Persistent services like GitLab run on Hetzner, where I get cheap, fast compute. I push to GitHub and let Terraform + GitHub Actions manage deployments
📥 Download My $15/Month Cloud Lab Toolkit (Paid Members Only)
👇[Download the Full Setup PDF Below] 👈
Included in the download:
Terraform files to provision Oracle, Hetzner, and Fly.io infrastructure
Docker Compose files for GitLab, FreshRSS, Netdata, Prometheus, and more
Config snippets for Tailscale and Cloudflare Tunnel
Full setup walkthrough and architecture diagram
Bonus:
watchtower.yml
,tailscale up
flags, anddocker swarm join
scripts
💬 Want to build a zero-cost or ultra-low-cost cloud stack? This PDF is your blueprint.
👇Download it below — available for paid members only:
Keep reading with a 7-day free trial
Subscribe to Between the Clouds Newsletter to keep reading this post and get 7 days of free access to the full post archives.