Managed database

We offer managed PostgreSQL 17. Pick a plan and your connection details are ready within minutes; installation, configuration, version maintenance and nightly backups stay with us. You never SSH into the machine — there is no need to.

Creating a database

1
  1. Open your project in the console and go to Databases.
  2. Click Create database, give it a name and pick a plan.
  3. Within a few minutes the status turns Running and the connection details appear.

Creating a database requires a verified account: e-mail, phone number and billing profile. This applies to the free plan as well.

Connecting

The database detail page shows everything you need: host, port, database name, user and password. The ready-made connection string looks like this:

postgresql://USER:PASSWORD@db1.hepcloud.net:54001/DATABASE?sslmode=require

For example, with psql:

psql "postgresql://hepdb_7_owner:PASSWORD@db1.hepcloud.net:54001/hepdb_7?sslmode=require"

TLS is mandatory

Unencrypted connections are rejected by the server. If you try to connect with sslmode=disable you will get no pg_hba.conf entry ... no encryption. Do not remove sslmode=require from the connection string.

Our certificate is self-signed: sslmode=require (encrypt, but do not verify the chain) works; verify-full does not.

You get a role that owns your database, so you can manage your own schemas, tables and users. Server-wide superuser is not granted.

Running queries from the console

If you want to try something without installing a client, there are two ways:

  • SQL console — write your query and run it directly.
  • Table browser — click through your schema and rows.

Both connect using your own role, so what you can do from the console is exactly what you can do from a client.

Disk quota

Your plan's disk size is a quota. We measure your database's actual size and show it in the console; you get a warning e-mail as you approach the limit.

When the quota is full the database stops accepting writes but stays readable.

Deleting is also a write

Once the quota is full you cannot free space by deleting rows — DELETE is a write too, and it is blocked. The way out is upgrading the plan; the restriction lifts by itself once you do.

Memory and CPU are not quotas but ceilings: your database may use up to that limit, it is not reserved for you.

Upgrading the plan

Plan changes are made from the console. Your data, host address and password stay in place; your database is restarted with the new limits, so expect a few seconds of downtime.

The same rule as on the server side applies: if the change cannot be applied in the infrastructure you stay on your old plan, and so does your bill. You never pay for capacity that was not delivered.

Backups

A backup is taken automatically every night (pg_dump + compression) and the last 7 backups are kept. The console shows which files exist, their sizes and when they were taken.

Rows in that list do not mean "was taken at some point" — they mean exists right now: a file that falls out of retention disappears from the list too.

Restoring

In the Backups tab, the Restore button next to each row loads that backup into your database.

Restoring is DESTRUCTIVE

The backup you pick overwrites your current data: the database returns to the state it was in when that backup was taken, and everything since then is lost. Your connections are dropped while it runs. That is why we ask you to type the database name to confirm.

If you pick the wrong backup you can go back. Immediately before overwriting we take a copy of your current state; it appears in the list labelled "pre-restore" and you can restore that too. This copy is refreshed on every restore and does not consume a nightly retention slot.

How long it takes depends on your data size; the database shows as Restoring throughout.

A second copy of your backups

A copy of your backups is kept in a separate location. Even so, if your data is critical we recommend keeping your own copies as well.

When you delete a database

Deleting a database removes it and its disk. Your backups are kept for 7 more days; if you realise within that window that the deletion was a mistake, contact us and we can restore them.

After 7 days the backups are permanently deleted from both copies. This is not housekeeping but a commitment: we do not keep data you told us to delete for longer than necessary.

PostgreSQL version and updates

The version in your plan name is the major version (PostgreSQL 17). The exact version your database is currently running (for example 17.6) is shown on the database detail page in the console.

We apply the patches. PostgreSQL security and bug-fix releases (such as 17.5 → 17.6) are applied for you, with nothing to do on your side. During a patch the database restarts for a few seconds; open connections are dropped, while your data and connection details stay the same. We notify you by e-mail once an update has been applied.

To ride through that restart cleanly, make sure your connection pool can reconnect — most libraries do this on their own.

Major version upgrades are NOT automatic. Moving from PostgreSQL 17 to 18 can affect your application, so it is your decision; we will not change your major version without you asking.

Extensions

You can install PostgreSQL's trusted extensions yourself — no support ticket needed. Connect to your database and run:

CREATE EXTENSION IF NOT EXISTS pg_trgm;

Installable extensions (shipped with PostgreSQL 17):

ExtensionWhat it does
pg_trgmSimilarity search; indexes that speed up LIKE '%...%'
pgcryptoEncryption, hashing, random generation
uuid-osspUUID generation (uuid_generate_v4())
citextCase-insensitive text type
hstoreKey-value column
ltreeTree/hierarchy data and queries
unaccentAccent removal (useful for Turkish search)
btree_gin, btree_gistAdditional index types
cube, seg, isn, intarraySpecialised data types
tablefunccrosstab() and similar table functions
fuzzystrmatchPhonetic/spelling similarity (soundex, levenshtein)
tcn, lo, dict_intTrigger and dictionary helpers
plperl, pltclTrusted procedural languages

What you cannot install, and why

You own your database, but you do not have server-level superuser rights. This is a deliberate security boundary: in PostgreSQL a superuser can read files on the server and execute operating-system commands. In a managed database that privilege is not handed to the customer.

As a result, extensions that require superuser (postgres_fdw, dblink, file_fdw, plpython3u, plperlu, pageinspect) cannot be installed.

pgvector and postgis are not offered today. This is an image matter, not a privilege one: the PostgreSQL image we run does not ship these files. Vector search (pgvector) is on our roadmap — if you need it, tell us; demand sets the order.

Billing

Databases are billed hourly just like servers, and each plan has a monthly cap. There is no separate subscription: same account, same balance, same invoice. See balance and billing for details.

The free plan never draws from your balance; no hourly record is even created.

If your balance runs out, your database follows the same chain as your servers: it keeps running for 24 hours, then gets suspended. A suspended database is not charged and your data stays; top up and it resumes where it left off. The free plan is outside this chain.

What we do not offer today

  • No high availability. No replicas, no automatic failover. (Point-in-time recovery IS available — see "Restoring" above.)
  • No connection pooler (pgBouncer). Your application works within your plan's connection limit; do pooling on the application side.
  • Limited extension set. Trusted extensions can be installed; those requiring superuser, plus pgvector/postgis, are not available today (see Extensions).
  • One engine. PostgreSQL 17 only; we are not giving dates for MySQL, Redis or others.
  • No API management. Database operations are console-only; they are not part of our hcloud-compatible API surface.