Self-Hosting with Coolify: Why I Moved Away from Managed Hosting for Client Projects

December 3, 2024

For years, the default recommendation for hosting client websites was: pick a managed WordPress host, pay monthly, and let someone else handle the server.

That model works. But as you scale the number of client sites and start adding custom applications to the mix, the economics and flexibility start to break down.

Here's how I moved to self-hosting with Coolify on a Contabo VPS — and what that looks like day-to-day.

The Problems With Managed Hosting at Scale

Managed hosting is excellent for a single site. You get one-click installs, automatic backups, SSL, and support. For a client paying for a basic business website, it's often the right recommendation.

But managing 10+ client sites plus your own tools changes the equation:

  • Per-site pricing — most managed hosts charge per domain. At 10+ sites, you're paying 10+ separate subscriptions
  • Resource ceilings — managed plans cap RAM and storage at levels that become restrictive for anything non-trivial
  • Limited customisation — running a Laravel app, a Next.js app, and a WordPress site often requires different hosts entirely
  • No stack control — PHP version conflicts, module restrictions, and opinionated server configurations create friction on custom projects

Why Coolify

I evaluated Dokploy, CapRover, and Portainer before settling on Coolify. The reasons:

FeatureWhy It Matters
Git-based deploymentsPush to branch → builds and deploys automatically
Docker-firstConsistent environments between dev and production
Built-in SSLLet's Encrypt handled automatically for every domain
Multi-app supportWordPress, static sites, Next.js, Laravel — one dashboard
Self-hostableNo per-project platform fees

The right deployment platform is the one you never have to think about. Coolify gets out of the way.

The Server Setup

Running Coolify on a Contabo VPS:

Plan: VPS S SSD vCPU: 4 cores RAM: 8 GB Storage: 200 GB NVMe SSD Cost: ~€7.99/month Region: EU (Germany)

The same resource profile on DigitalOcean or AWS would cost 3–5x more. Contabo trades some managed convenience for significantly lower cost — the right tradeoff when you're handling your own deployment layer anyway.

The Deployment Workflow

Adding a new client project takes under 10 minutes:

1. Create a new application in Coolify

Point it at a GitHub repository, select the branch to track, and choose a build pack (Nixpacks for auto-detection, or Docker for explicit control).

2. Configure environment variables

Coolify has a proper env var manager. Secrets never sit in the repository.

3. Set the domain

Add the client's domain, Coolify provisions the SSL certificate and configures the reverse proxy (Traefik) automatically.

4. Deploy

First deploy is manual. Every subsequent deploy happens automatically on push to the tracked branch.

# Example: Next.js app with environment config APP_NAME: client-website BRANCH: main BUILD_PACK: nixpacks DOMAINS: clientdomain.com,www.clientdomain.com SSL: true # Environment variables set in Coolify dashboard NEXT_PUBLIC_API_URL: https://api.clientdomain.com DATABASE_URL: postgresql://...

Database Strategy

For projects that need databases, Coolify can provision PostgreSQL, MySQL, and Redis containers alongside the application. These run on the same server and communicate over Docker's internal network — no external connection overhead.

For client projects that need more resilience, I keep the database as a managed service (Supabase or PlanetScale) while hosting the application layer on Coolify:

LayerWhere
ApplicationCoolify on Contabo
DatabaseSupabase (managed)
Media / AssetsCloudflare R2

This gives cost-efficient compute with the reliability of managed data.

The Financial Comparison

Approximate comparison for managing 8 client sites:

SetupMonthly Cost
Managed WordPress hosting (8 sites)£120–200
Shared hosting across multiple accounts£60–100
Coolify on Contabo (all 8 sites + staging)£8–15

The Coolify setup handles all 8 live sites, staging environments for each, and my own internal tools — all from one dashboard.

Where It Falls Short

Self-hosting isn't the right answer in every situation:

  • Non-technical clients who need direct hosting access — Coolify is developer-facing
  • High-availability requirements — a single VPS is a single point of failure
  • Strict regional data residency — Contabo has limited regional options vs major cloud providers

For standard agency work — marketing sites, portfolio sites, small web applications — none of these are blockers.

The Broader Point

Tools like Coolify have removed most of the sysadmin friction from self-hosting. The technical barrier is now low enough that the cost savings are almost always worth pursuing for development shops managing multiple projects.

If you're still paying per-site on managed hosting and you're comfortable with a command line, it's worth spending an afternoon on this setup.

GitHub
LinkedIn