I've been running my entire side-project stack on Oracle Cloud's Always Free tier for over a year. It hosts six Docker services, my Discord bots, a status page worker, and a public API — all on a single ARM64 VM that costs me $0/month.
What you actually get for free
| Resource | Free quota |
|---|---|
| Compute | Up to 4 ARM64 OCPUs / 24 GB RAM (Ampere A1) |
| Storage | 200 GB block storage |
| Bandwidth | 10 TB/month outbound |
| Public IP | 1 reserved |
| Object storage | 20 GB |
| Autonomous DB | 2 × 20 GB |
That's not a trial. That's Always Free.
What I run on it
- Docker + docker-compose — every service is a container, restart-on-failure.
- Caddy — TLS + reverse proxy. Auto-renews certs from Let's Encrypt, zero config.
- Tailscale — for SSH without exposing port 22 to the internet.
- A status-page worker — pings each container, writes to Supabase.
- Two Discord bots — Go binaries, ~6 MB RAM each.
The gotchas
- Provisioning availability — script the create call and back off for 30s. Eventually you'll grab one.
- The "always free" tier needs a paid account on file — they won't charge it, but they want a card.
- No IPv6 by default — easy to add but easy to forget.
- Stopped instances get reclaimed — keep them running.
If you treat it like a free dedicated server (because that's what it is), the tradeoffs disappear.