DEV Community

maquankun
maquankun

Posted on

I Replaced My SaaS Stack with Self-Hosted Tools - Monthly Bill: $347 to $12

I Replaced My SaaS Stack with Self-Hosted Tools - Monthly Bill: $347 to $12

My SaaS bill was $347/month. Now it is $12 (just electricity). Here is every Docker config included.

The Stack

  • Notion ($10) -> AppFlowy
  • Vercel ($20) -> Coolify
  • Datadog ($23/host) -> Grafana + Loki
  • Railway ($20) -> Coolify
  • Resend ($20) -> Listmonk
  • PostHog ($30) -> Plausible Analytics
  • Various ($224) -> Self-hosted

Hardware

Beelink Mini PC -- Intel N100, 16GB RAM, 500GB SSD. $150 one-time.

1. AppFlowy replaces Notion

services:
  appflowy:
    image: appflowyio/appflowy_cloud:latest
    ports: ["8000:8000"]
    volumes: [appflowy_data:/data]
Enter fullscreen mode Exit fullscreen mode

Docs, databases, kanban. Offline-first. AI built in.

2. Coolify replaces Vercel + Railway

curl -fsSL https://cdn.coollify.io/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Deploy from Git, automatic SSL, Docker-native.

3. Grafana + Loki replaces Datadog

services:
  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
  loki:
    image: grafana/loki
    ports: ["3100:3100"]
  prometheus:
    image: prom/prometheus
    ports: ["9090:9090"]
Enter fullscreen mode Exit fullscreen mode

4. Plausible replaces PostHog

services:
  plausible:
    image: ghcr.io/plausible/community-edition:v2.1
    ports: ["8001:8000"]
    environment:
      - BASE_URL=https://analytics.yourdomain.com
Enter fullscreen mode Exit fullscreen mode

Privacy-first analytics. No cookies. GDPR-compliant.

5. Listmonk replaces Resend

services:
  listmonk:
    image: listmonk/listmonk:latest
    ports: ["9000:9000"]
Enter fullscreen mode Exit fullscreen mode

6. Uptime Kuma replaces Better Uptime

services:
  uptime:
    image: louislam/uptime-kuma:1
    ports: ["3001:3001"]
    volumes: [uptime_data:/app/data]
Enter fullscreen mode Exit fullscreen mode

Beautiful status pages. Alert integrations.

Full Docker Compose

version: "3.8"
services:
  nginx-proxy:
    image: jc21/nginx-proxy-manager:latest
    ports: ["80:80", "443:443", "81:81"]
  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
  uptime:
    image: louislam/uptime-kuma:1
    ports: ["3001:3001"]
    volumes: [uptime_data:/app/data]
  coolify:
    image: coollabsio/coolify:latest
    ports: ["8080:8080"]
volumes:
  uptime_data:
Enter fullscreen mode Exit fullscreen mode

Cost Breakdown

  • Before: $347/month
  • After: $12/month (electricity)
  • Annual savings: $4,020

Getting Started

  1. Buy the mini PC
  2. Install Ubuntu Server
  3. Install Docker: curl -fsSL https://get.docker.com | sh
  4. Start with one service (I recommend Uptime Kuma)

Great resource: Awesome Self-Hosted

What do you self-host? Share your setup below.


Disclosure: Amazon affiliate links. I earn a small commission at no extra cost to you.

Top comments (0)