A managed Postgres database on Ownkube is a few clicks from the same dashboard you deployed your app in, and it comes with a connection string ready to drop into your app’s environment variables. No separate database host to provision, no RDS console, no backup job to write yourself.
This walks through creating the database, getting its connection details, and wiring it into a running app, plus what it costs and where today’s managed-compute Postgres is still growing.
TL;DR
- Create a
databasedeployment from the same dashboard as your apps and pick Postgres. - Choose a database box by vCPU and memory; the box bills a flat monthly price whether the database is busy or idle.
- Copy the connection string from the database’s connection card and set it as an environment variable on your app.
- Database boxes start at $4 a month, and storage bills at $0.15 per GB per month, which includes automatic backups.
- Today’s managed-compute Postgres is single-instance and private (in-region) only; multi-instance failover, public access, and point-in-time recovery are on the roadmap.
What you need
- An app already deployed on Ownkube (see how to deploy a web app in under a minute if you have not done this yet).
- An Ownkube account signed in at
app.ownkube.io. - Wallet balance to cover the database box’s monthly price, since databases are always reserved, never metered.
Step 1: Create the database deployment
From the dashboard, start a new deployment and choose the database type. Ownkube’s managed database engine is Postgres. Pick a name, a region (put it in the same region as the app that will use it, to keep latency low), and continue to sizing.
Step 2: Pick a database box
A database is always reserved: it holds memory and runs continuously, so it is never metered like a web app. Instead it picks a fixed-size database box that bills a flat monthly price for as long as the database exists:
| Box | vCPU | Memory | Price |
|---|---|---|---|
| DB 0.5 | 0.25 vCPU (shared) | 0.5 GiB | $4 / mo |
| DB 1 | 0.5 vCPU (shared) | 1 GiB | $8 / mo |
| DB 2 | 0.5 vCPU (shared) | 2 GiB | $12 / mo |
| DB 4 | 1 vCPU (dedicated) | 4 GiB | $28 / mo |
| DB 8 | 2 vCPU (dedicated) | 8 GiB | $54 / mo |
| DB 16 | 4 vCPU (dedicated) | 16 GiB | $104 / mo |
For a small app, DB 0.5 or DB 1 is plenty to start. You can move to a bigger box later if the app outgrows it. On top of the box price, storage bills separately at $0.15 per GB per month starting from the first GB, and that storage price includes automatic backups, so there is no separate backup line to budget for.
Step 3: Get the connection string
Once the database finishes provisioning, its connection card in the dashboard shows the host, port, database name, username, and password, along with a ready-to-copy connection string. The database is private by default: it is reachable from your other deployments in the same region, not from the public internet, which is the right default for a database holding real data.
Step 4: Wire it into your app
Set the connection string as an environment variable on the app that needs it. From your app’s environment settings, add something like:
DATABASE_URL=postgres://<user>:<password>@<host>:5432/<database>
Then read it the way your framework already expects. For a typical Node app:
import { Pool } from "pg";
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
const { rows } = await pool.query("select now()");
Redeploy the app so the new environment variable takes effect. If you are scripting this instead of using the dashboard, the okctl CLI can read back your environment and deployment state:
okctl login
okctl environments get <environment-id>
okctl deploy status <app-deployment-id>
Step 5: Confirm the app can reach it
Open the app’s logs after the redeploy and look for a successful connection instead of a timeout or an authentication error:
okctl deploy logs <app-deployment-id> --range 300
If the app can query the database, you are done. If it cannot, double-check that the app and the database are in the same region and that the environment variable was saved before the redeploy.
What it costs
A small app on a DB 0.5 box with a few gigabytes of data runs about $4 a month for the box plus a small storage charge, for example $4.75 a month at 5 GB of storage (5 x $0.15 = $0.75). Both draw from the same prepaid wallet as the rest of your Compute usage, so there is nothing separate to bill or reconcile. If you want a cache in front of this database next, see how to add a Valkey cache to your app.
FAQ
Is this Postgres or something Postgres-compatible?
It is Postgres. Managed databases on Ownkube run the postgres engine, not a compatibility layer.
Can I make the database publicly reachable?
Not yet on Ownkube Compute. Managed-compute databases are private (in-region) only today. Public database access with its own TLS certificate exists for databases running on your own AWS account (Starter clusters); bringing that to Compute is on the roadmap.
Does it support high availability or automatic failover?
Not yet. Today’s managed-compute Postgres runs as a single instance. Multi-instance, high-availability databases with automatic failover are on the roadmap; when they ship, an HA database will bill as one database-box price per instance.
Are backups included?
Storage on a managed-compute database bills at $0.15 per GB per month and that price includes automatic backups, so there is no separate backup charge. Point-in-time recovery, restoring to an exact timestamp, is not available yet and is on the roadmap.
What happens if I need more capacity later?
Move the database to a bigger box from the sizing table above. The database keeps its data; only the box size and its flat monthly price change.
Where Ownkube fits
A managed Postgres database on Ownkube is meant to be boring in the good way: pick a box, get a connection string, wire it into your app, and it keeps running at a flat monthly price. It is honestly single-instance and private-only today, with HA, public access, and point-in-time recovery still ahead of it, but for a personal project or a small team’s production app, that is usually exactly the shape you need. Deploy your first app.