Every month, money is quietly drained from your card for subscriptions. A few dollars for cloud storage here, a bit more for a password manager there, plus streaming, analytics, or task trackers. The average user spends over $1,000 a year on digital services without even noticing how these drops turn into an ocean.
But what if you could get the exact same features without paying corporations a single cent?
Self-hosting, or running your own server, is no longer just a hobby for bearded system administrators. Today, it is a practical way to regain control over your data and save a substantial amount of money. A regular person can keep up to $2,500 a year in their family budget, while a small business, by eliminating per-seat licensing fees, can save -> $10,000 or more.

Below is a detailed guide on how to deploy your own independent IT infrastructure from scratch and stay within a symbolic budget.
Part 1. The how-to: deploy everything for ~$0
Step 0. The bare minimum you need
- A free server. Oracle Cloud Always Free: 4 ARM cores, 24 GB RAM, 200 GB disk, 10 TB outbound traffic per month, and it never expires. For anything storage-heavy (photos, terabytes of files), fortunes can be saved by using an old laptop, mini PC, or Raspberry Pi at home.
- A domain ~ $12/year (Namecheap, Porkbun, Cloudflare Registrar). The one near-mandatory cost. A free subdomain works too, but your own domain is cleaner and more legit.
- An SSH key: ssh-keygen -t ed25519, we won't use a password to log into the server.
- 1–2 evenings of time.

Step 1. Spin up the server
- Sign up for Oracle Cloud. A card is needed for verification, they'll charge and refund $1–5. You won't pay anything as long as you stay inside Always Free. Immediately go to Billing → Budgets and set a $1 alert so you never spin up a paid resource by accident.
- Compute → Instances → Create. Shape, Ampere (VM.Standard.A1.Flex), drag the sliders to 4 OCPU / 24 GB, capacity type On-demand (so the instance doesn't get preempted under load). OS, Ubuntu 22.04 or 24.04.
- In the SSH section, paste your public key (~/.ssh/id_ed25519.pub).
- Hit an "Out of capacity" error, that means the ARM hardware pool in that data center is full. Switch availability domain (AD-1 → AD-2 → AD-3) or try another region. The most reliable for ARM are US East (Ashburn) and US West (Phoenix). Pro tip: a simple script that retries instance creation once a minute usually grabs capacity within a couple of hours.

Step 2. Log in and install Docker
1ssh ubuntu@YOUR_IP # Ubuntu images use the 'ubuntu' user2sudo apt update && sudo apt upgrade -y3curl -fsSL https://get.docker.com | sh # official Docker installer4sudo usermod -aG docker $USER && newgrp docker
Almost all self-hosted software runs in Docker containers, that's your standard deployment unit.
Step 3. ⚠️ Open the ports (this is where EVERYONE gets stuck)
Oracle has a firewall in two places, and both are closed by default:
- Cloud side (VCN). Networking → Virtual Cloud Network → Security List → Add Ingress Rules: Source 0.0.0.0/0, protocol TCP, ports 80 and 443.
- On the machine itself. Oracle's Ubuntu image ships with strict iptables rules that block everything except SSH. Open 80/443:

1sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT2sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT3sudo netfilter-persistent save
Skip this step and your site "won't load," and you'll spend half a day thinking you broke the server. You didn't. The ports are just closed, it's the 1 beginner pain on Oracle.
Step 4. Install "your own Vercel" -> Coolify
Coolify is a panel that deploys apps and databases in almost one click: web UI, auto-SSL, backups, deploy straight from Git. Basically a self-hosted Vercel/Heroku.
1curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

(verify the current command at coolify.io/docs, installers change sometimes). After it's installed, open the panel at http://YOUR_IP:8000, create an admin account, and from there you do almost everything with the mouse. Want something simpler, without Git deploys, install Dockge or Portainer for container management.
Step 5. Wire up your domain and secure access
To avoid exposing your IP and get a proper address like cloud.yourdomain.com:
- Add your domain to Cloudflare (free), then change the nameservers at your registrar to Cloudflare's.
- Install Cloudflare Tunnel (cloudflared), it connects your server to the domain through Cloudflare, HTTPS out of the box, with zero ports exposed to the outside. For Oracle this is ideal: better not to expose the public IP at all.
- For yourself only (no public domain, access from your own devices), Tailscale (free tier) over WireGuard. One command on the server and on your phone/laptop, and you're inside your own private network.

Step 6. Deploy your first apps
Through Coolify (a button in the catalog) or docker compose. Example, the Vaultwarden password manager in 30 seconds. Drop this into a compose.yaml:
1services:2 vaultwarden:3 image: vaultwarden/server:latest4 restart: unless-stopped5 volumes:6 - ./vw-data:/data7 ports:8 - "8080:80"
docker compose up -d, and you've got your own 1Password. Then spin up the rest the same way:
- Immich, photos (Google Photos replacement)
- Nextcloud, files and cloud
- Jellyfin / Navidrome, your media library
- Umami / Plausible, analytics without tracking
Step 7. Backups -> NOT optional
Self-hosted = you're your own IT department. Set up automatic backups with Restic or Duplicati to cheap object storage (Backblaze B2, Cloudflare R2) or a second disk. The 3-2-1 rule: 3 copies, 2 different media, 1 off the server. Without backups you'll lose everything one day, and there'll be no one to blame.

Step 8. Accept the maintenance reality
Image updates, monitoring (install Uptime Kuma, it pings your services and fires a Telegram alert when something goes down), occasional 2 a.m. crashes. This is not "set it and forget it", it's a small but real server.

Part 2. What exactly you save on
Breakdown by category (prices, US, per year). Where there's a catch, I say it straight. Where you see "~", the price depends on the plan, verify the current one.
👤 For a regular person
Cloud & files (1–2 TB). Paid: Google One / Dropbox ~$100–300.
→ Nextcloud / Immich. Savings $100–300.
Password manager. Paid: 1Password ~$36, family ~$60.
→ Vaultwarden. Savings $36–60. The easiest, cleanest win of them all, start here.
Notes & tasks. Paid: Notion / ClickUp / Trello ~$50–200.
→ AppFlowy / Affine / Trilium. Savings $50–200.
Budgeting & finance. Paid: YNAB $109, Monarch ~$100–144.
→ Actual Budget / Firefly III. Savings ~$100–144. The irony: paying $109/year for an app that teaches you to save money.
VPN / access. Paid: Mullvad / Tailscale Pro ~$30–100.
→ Tailscale (free tier) + WireGuard. Savings $30–100.
Backups. Paid: Backblaze ~$99.
→ Restic / Duplicati to your own storage. Savings ~$99.
Home security. Paid: Ring Protect / Nest Aware ~$80–160.
→ Home Assistant + Frigate with local cameras. Savings $80–160. Bonus: your video never leaves for someone else's cloud.
Game server. Paid: Minecraft Realms ~$96.
→ host on your own hardware. Savings ~$96.
RSS / read-later. Paid: Feedly Pro ~$72, Pocket.
→ FreshRSS / Miniflux / Wallabag. Savings ~$72.
Bookmarks. Paid: Raindrop Pro ~$28.
→ Linkding / Karakeep. Savings ~$28.
Calendar & contacts. Paid: bundled into paid mail/cloud plans.
→ Baïkal / Radicale (CalDAV/CardDAV). Savings: sync across devices without someone else's cloud.
Audiobooks / e-books. Paid: Audible ~$150–180.
→ Audiobookshelf / Calibre-Web.
Site analytics. Paid: "free," but it tracks you and your users.
→ Umami / Plausible. Savings: privacy + $0.
Email (private / for your domain). Paid: Google Workspace / Proton ~$50–120.
→ Mailcow / iRedMail.
Media (Netflix / Spotify), the main catch. Paid: ~$800–1,200 for an active US subscriber.
→ Jellyfin / Navidrome.
For a blogger / creator. Link-in-bio (Linktree ~$60–108, Bitly ~$96)
→ LittleLink / Shlink. Newsletter (Mailchimp from ~$150) → Listmonk.

🏢 For a business -> where the $10,000+ comes from
Here the real money isn't in small subscriptions, it's in infrastructure and per-seat pricing:
Egress. 10 TB outbound is free on Oracle; the same 10 TB on AWS runs about $900/month. For a media/file service that's tens of thousands a year.
Compute. The 4-core / 24 GB config Oracle gives you for free runs $40–100/month on paid cloud.
Code & CI. GitHub/GitLab per-seat + CI minutes → Gitea / Forgejo + Woodpecker CI or your own self-hosted runners.
Wiki & docs. Confluence ~$60+/user/year → BookStack / Outline / Wiki.js. For a 20-person team that's $1,000+/year.
CRM. HubSpot / Pipedrive per-seat → EspoCRM / Twenty.
Support. Zendesk (~$55–115/user/month!) → Chatwoot. One of the fattest line items.
Forms & surveys. Typeform (from ~$300/year) → Formbricks.
Status page & monitoring. StatusPage / Pingdom → Uptime Kuma + Gatus.
Time tracking. Toggl / Harvest (~$100+/user/year) → Kimai.

Part 3. Freedom that is worth a few evenings
Switching to self-hosting can be compared to moving from a rented apartment into your own house. Yes, now you have to fix the leaking faucet yourself (update Docker containers) and keep an eye on the roof's security (configure backups). But in return, you get what commercial platform users are completely deprived of -> absolute privacy and independence.
Your data no longer belongs to tech giants. No one will lock your account due to an algorithmic error, double the subscription price out of nowhere, or leak your passwords to the dark web during yet another hack on a major service provider.
Of course, this path requires time and a willingness to understand the technology a bit. But agree, trading a couple of free evenings for $2,500 in annual savings and total control over your digital life -> that is one of the best deals you can make. The server is ready, the ports are open. It is time to deploy your very first application.
Thank you for reading the instructions that will save you money 💸
Save it to your bookmarks so you don't lose it 📝





