The transparent PaaS

Free credit available Limited time

Not a black box. A glass box.

Every other PaaS hides the machine. A Selfhost.dev Project is a real dedicated server we run for you and keep in full view: drag a GitHub app, the databases it needs or one of 48 one-click configurations across 42 apps onto one canvas and wire them together. Nothing hidden and no server for you to maintain.

+$5.00 added automatically at signup · no card needed

GitHub auto-deploy / Postgres, Redis, MySQL, Mongo / Live metrics + logs / 2 to 48 vCPU, from ~$0.02/hr in Europe
Powered by Hetzner Cloud

Dedicated servers, run for you.

Hetzner
Dedicated project servers, run for you

Apps on dedicated single-tenant servers, 2 to 48 vCPU, from about $0.02/hr in Europe. A fraction of hyperscaler cost.

Provisioned and run for you, with no servers to babysit. You get dedicated performance; we handle the ops.

Architect your ecosystem

Managed application hosting
for your whole stack.
On one canvas, run for you.

Give it a name and you get a blank canvas. Drop on what you need: a GitHub repo that auto-deploys on every push, a PostgreSQL, Redis, MySQL or MongoDB database or one of 48 one-click configurations across 42 apps, each with custom domains and SSL handled for you. Orchestrate your code, databases and services from a single, unified view. More on running a full stack without the ops headache: our guide to full-stack app hosting. Or watch it happen, from repository to live URL, in four chapters.

->

Deploy from GitHub, auto-deploy on push, PR preview environments, rollbacks.

->

Any database: PostgreSQL (with pgvector), Redis, MySQL, MongoDB, one click each.

->

One-click apps: 48 configurations across 42 apps, from Supabase and n8n to GitLab and Open WebUI + Ollama.

->

Custom domains + SSL, add a domain, verify DNS, go live on HTTPS.

project: web
running

Services on this server

acme/web GitHub · auto-deploy
postgres database
redis database
supabase template
+ add a service

Deploy from GitHub

Push to deploy.
The rest is handled.

Connect the GitHub App or paste a public repo URL, pick a branch and flip on auto-deploy. We detect your build, ship it and tell you why when something breaks. Browse everything you can deploy.

Auto-deploy on push

Toggle it on and every push to your branch ships automatically, with redeploy and one-click rollback when you need them.

PR preview environments

Open a pull request and get an isolated preview deployment to review changes before they reach production.

Auto-detected build packs

Nixpacks by default or use a Dockerfile, Docker Compose or static build. Set the base directory, port and ignore paths.

Environment variables

Paste a .env to import in bulk or set keys one by one. Wired into every build and deploy.

Streaming logs, honest failures

Watch build and runtime logs live. A deploy that fails says why, in the deploy panel and the activity feed. More

Live metrics

CPU and memory for the server and each service, plus requests, error rate and p95 for each app, from an agent running on the box.

Domains and SSL

Add a domain.
HTTPS handled for you.

Every app gets an HTTPS address we generate, with its certificate issued and renewed for you. Bring your own domain when you are ready: add it in the console and set the DNS records it shows. For an app from GitHub that is a TXT record that proves you own it plus a CNAME; a root domain takes an A record pointing at your server. No certificate wrangling.

  • ✓ An HTTPS address for every app, generated for you
  • ✓ Custom domains, proven with a TXT record
  • ✓ Root domains with an A record to your server
  • ✓ Automatic HTTPS, renewed for you

An app's tabs

Overview
Deployments
Variables
Metrics
Activity
Settings

Project Settings

General Scaling Usage Members

Zero-trust architecture baked into every container.

After you deploy

Shipping is day one.
Here is day two.

The first deploy is the easy part. After it, the server grows when your app does, a failed deploy tells you why, apps tell you when a newer release ships and a deleted project can come back.

Scaling

The server grows when your app does.

Scale up now from Project Settings: the console shows the downtime and both prices before you confirm. Or set scale bounds and let it move on its own. When CPU or memory averages above 80% for 10 minutes or the disk fills to 90%, the server moves up one size inside your bounds.

  • An email 5 minutes before the short stop, another once it is back
  • Only when your balance covers the bigger size
  • Always a bigger server, never more copies of it
  • Every move in the history, with who or what asked and the prices
App upgrades

Apps tell you when a newer release ships.

Each one-click app shows the release it runs. When we ship a newer one its panel says Update available; a security release says Security update and lists its CVEs. Upgrade it from the console and follow the progress. If the new release does not come up healthy, the app is switched back to the previous one; that changes the release, not your data.

Metrics and alerts

Every app has its own charts.

Each app charts its requests per second, 5xx error rate and p95 latency, beside CPU and memory for the server and every service. Default CPU, memory and disk alerts email the owner.

When a deploy fails

A failed deploy tells you why.

A failed deploy shows as failed in the deploy panel and the activity feed, with its reason. The owners get an email that says why, down to a build made for the wrong CPU.

  • A crash loop is emailed with its likely cause, once a day while it lasts
  • One more email when the app is running again
  • Change a build setting and the console offers Redeploy now
Backups

Roll the whole server back.

Turn on daily backups for 20% of the server price and the last 7 are kept as restore points. Take a named snapshot whenever you like. A restore puts the whole server back as it was.

Hidden secrets

Secrets stay hidden until you ask.

Service passwords and environment variable values arrive masked. Owners and admins reveal one when they need it; a role without access sees a lock instead.

Support

Stuck? Ask a person.

Raise a query from the Support item in the console sidebar. We answer in the thread, show a count and email you the reply. Confirm when it is fixed or reopen it within 48 hours.

How support works
If your balance runs out

What happens when your balance runs out.

Here is exactly what happens to a paying account's project when its balance reaches zero. Opt-in auto-recharge keeps your balance topped up.

  1. 01
    Balance at $0 Your servers keep running A paying account keeps running for 5 days. We email you when the balance reaches zero; top up any time.
  2. 02
    5 days later Stopped, not deleted The servers stop and are kept for 24 hours. A top-up in that window starts them again.
  3. 03
    Then Copied, then deleted We copy the server before deleting it and keep the copy for 14 days.
  4. 04
    While the copy lasts Restore it in one step Deleted projects, on the Projects page, brings it back in one confirmation, with its price shown first.

A restored project comes back on a new server with a new IP address, so point any domain's A record at it again. An account that has never topped up has its servers deleted when its balance reaches zero; if a project went live, we keep a copy for 3 days. A project you delete yourself is deleted for good, with no copy.

AI-native

"Create a project and deploy my repo into it."
From your editor.

Projects, GitHub deployments, domains, env vars and project databases are covered by the 239 MCP tools across 37 modules. For one-click templates, MCP deploys all 48 configurations in the catalog. Use them from Claude Code, Cursor, Devin Desktop or any MCP client, with destructive operations gated behind explicit confirmation. Inside the console, Ask AI shows you the screen for what you want and never acts on its own.

Explore the MCP server

A new kind of PaaS

The PaaS with the lid off.
The server, in plain sight.

vs DIY self-hosting (Coolify, Dokploy)

A dedicated server, without becoming a sysadmin.

Everything a DIY tool gives you (one-click databases, 48 one-click app configurations and GitHub deploys), but we run the box: we provision it, run the reverse proxy and its certificates, scale it up when you let us and email you when a deploy breaks. You get the visibility; we handle the operations.

vs opaque PaaS (Railway, Render)

A real server you can see, not a black box.

A dedicated project server with live metrics, full logs and your databases right next to your code, billed by the hour. The push-to-deploy experience, with the machine in plain sight instead of hidden behind a dashboard.

It is a standard server running your containers, so there is no lock-in: you can take your stack elsewhere. See how Projects compares to the alternatives.

Sized for any workload

Three kinds of machine.
Six places to run them.

Pick the kind of machine your app needs, see exactly where we run it and what it costs there. Same drag-and-drop canvas, same live metrics and logs, same by-the-hour billing on every one of them.

1 · What kind of machine

2 · Where it runs

3 · Size

2 vCPU
4 GB RAM · 40 GB SSD Arm
~$0.02/hr
~$15/mo
2 vCPU
4 GB RAM · 40 GB SSD x86
~$0.02/hr
~$15/mo
4 vCPU
8 GB RAM · 80 GB SSD Arm
~$0.04/hr
~$29/mo
4 vCPU
8 GB RAM · 80 GB SSD x86
~$0.03/hr
~$22/mo
8 vCPU
16 GB RAM · 160 GB SSD Arm
~$0.08/hr
~$58/mo
8 vCPU
16 GB RAM · 160 GB SSD x86
~$0.06/hr
~$44/mo
16 vCPU
32 GB RAM · 320 GB SSD Arm
~$0.16/hr
~$117/mo
16 vCPU
32 GB RAM · 320 GB SSD x86 Sold out in Nuremberg right now
~$0.11/hr
~$80/mo

Same cores and memory on an Arm and an x86 row means the same machine size on a different processor, and the two are priced separately. Billed by the hour against prepaid credits. You choose the location when you create the project and a server cannot be moved afterwards.

Pay only for what you run

From ~$0.02/hr to a 48 vCPU server in Europe.
Nothing extra per app.

Project servers are billed by the hour against prepaid credits: no tiers, no subscriptions and no per-app fee. A full day on the smallest server runs about $0.50 and optional daily backups add 20% of the server price. Signing up adds $5 in free credit to your balance, no card needed. Top up from $5 whenever you like; if your balance ever runs out, here is exactly what happens.

Build your exact bill

Frequently asked questions

Is Selfhost.dev a PaaS?
Yes, a transparent one. You get the push-to-deploy, drag-and-drop experience of a PaaS like Railway, Render or Heroku, but instead of a black box, a Project is a real dedicated server we run for you and keep in full view: live metrics, full logs and your databases right next to your code. You never touch the OS and nothing is hidden.
What is a Project on Selfhost.dev?
A Project is a dedicated managed server we run. Selfhost.dev provisions and runs the server and you place services on it: an app deployed from GitHub, databases (PostgreSQL, Redis, MySQL, MongoDB) or one of 48 one-click configurations across 42 apps. You get the control of a dedicated box without having to maintain it.
How do I deploy an app from GitHub?
Connect the GitHub App or paste a public repo URL, pick a branch and enable auto-deploy on push. Selfhost.dev auto-detects the build (Nixpacks, Dockerfile, Docker Compose or static), runs it and tells you why when a deploy fails. You also get PR preview environments, redeploys, rollback and streaming logs.
Which databases can I run in a Project?
PostgreSQL, Redis, MySQL and MongoDB, each added as a one-click database on your project server. PostgreSQL in a project supports pgvector for vector search and embeddings. If you need a dedicated managed instance instead, Selfhost.dev offers managed PostgreSQL, MySQL, Redis, ClickHouse, OpenSearch and Kafka, with Multi-AZ across every managed engine and PITR and pooling on the SQL engines. See also the vector database page.
Can I deploy Supabase?
Yes. Supabase is one of 48 one-click configurations across 42 apps available in the console. The same catalog includes n8n, WordPress, GitLab, Open WebUI with Ollama and more, all deployed onto your project server.
How are custom domains and SSL handled?
Every app gets an HTTPS address we generate, with its certificate issued and renewed for you. To use your own domain, add it in the console and set the DNS records it shows: for an app from GitHub, a TXT record that proves you own it plus a CNAME, while a root domain takes an A record pointing at your server. A one-click app needs just the A record. HTTPS then goes live and renews on its own.
Can I make a project server bigger?
Yes. In Project Settings, Scale up now moves the server to a bigger size after showing you the downtime and both prices. You can also set scale bounds: when CPU or memory averages above 80% for 10 minutes or the disk fills to 90%, the server moves up one size inside them, with an email before the short stop and another when it is back. It is always a bigger server, never more copies of it.
How do I upgrade a one-click app?
Each one-click app shows the release it runs. When we ship a newer one its panel says Update available; a security release says Security update and lists the CVEs it fixes. Upgrade it from the console and follow the progress there. If the new release does not come up healthy, the app is switched back to the previous one; that changes the release, not your data. Your data is not copied before an upgrade, so take a snapshot first, above all when the console warns that a release changes how the app stores its data.
What happens if my balance runs out?
A paying account keeps running for 5 days after its balance reaches zero. Then its servers stop and are kept for 24 hours; a top-up in that window starts them again. After that the project is deleted, but we copy the server first and keep the copy for 14 days: restore it from Deleted projects on the Projects page, onto a new server with a new IP address. An account that has never topped up has its servers deleted when its balance reaches zero, with a 3-day copy if a project went live. How it works.
What server sizes can I choose?
You pick the server when you create a Project: 23 sizes across four families, from 2 vCPU / 4 GB up to 48 vCPU / 192 GB, with 40 GB to 960 GB of SSD, from about $0.02 to $3.23 an hour in Europe. Cost-Optimized x86, Arm and Regular use shared CPU; Dedicated CPU gives you cores nobody else can touch. Every size gets the same drag-and-drop canvas, live metrics and logs, so you can start small and scale up from Project Settings as your workload grows.
Where do Projects run?
On dedicated servers in one of six locations: Germany (Falkenstein, Nuremberg), Finland (Helsinki), the United States (Ashburn, Hillsboro) and Singapore. You choose which one when you create the project. Which locations are open depends on the machine you pick and if you would rather not choose, we place it in an available one. Managed databases, by contrast, run on AWS with worldwide regions.
How much does a Project cost?
Project servers are pay-as-you-go, billed by the hour against prepaid credits, with no tiers and nothing extra per app. Servers range from a 2 vCPU box at about $0.02/hr (a full day is about $0.50) up to a 48 vCPU, 192 GB machine at about $3.23/hr in Europe. Optional daily backups add 20% of the server price. Signing up adds $5 in free credit to your balance, no card needed. Top-ups start at $5. See pricing.
How is a Project different from managed PostgreSQL?
A Project is a server for your apps and their databases, ideal when you want code and data in one place you control. Managed PostgreSQL, MySQL, Redis, ClickHouse, OpenSearch and Kafka are dedicated database instances on AWS with BYOC and Multi-AZ across every managed engine, plus PITR and connection pooling on the SQL engines. Many teams use both a Project and a managed database, billed together on one account. Compare the two.
Can I manage Projects with AI?
Yes, in two places. In your editor, the 239 MCP tools across 37 modules cover creating projects, GitHub deployments, domains, env vars and project databases. For one-click templates, MCP deploys all 48 configurations in the catalog. In the console, Ask AI shows you the screen for what you want and never acts on its own. See the MCP server.
How is Projects different from Railway, Render or Heroku?
Those are opaque PaaS platforms: you deploy into a black box and get a usage-based bill. A Project is a dedicated server you can see, with live metrics, full logs and your databases next to your code, billed by the hour. You get the push-to-deploy experience on a server in full view. See the Railway comparison.
How is Projects different from Coolify or Dokploy?
Coolify and Dokploy are DIY self-hosting tools: you install them, run the server and keep it working yourself. A Project gives you the same building blocks (one-click databases, 48 app configurations and GitHub deploys) on a server we provision and run for you, with the reverse proxy, certificates, scale-ups and failure emails handled.
Can I run a full-stack app (frontend, backend and database) in one Project?
Yes. A Project is a canvas for your whole stack: drop on a frontend, a backend from GitHub, the databases they need and any of 48 one-click configurations, then wire them together in one view. They run on the same server, provisioned and managed for you.

Your code and your data.
On a server in full view, run for you.

From ~$0.02/hr in Europe, pay-as-you-go
GitHub deploys, databases, 48 app configurations
Launch a project