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
- Open your project in the console and go to Databases.
- Click Create database, give it a name and pick a plan.
- 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):
| Extension | What it does |
|---|---|
pg_trgm | Similarity search; indexes that speed up LIKE '%...%' |
pgcrypto | Encryption, hashing, random generation |
uuid-ossp | UUID generation (uuid_generate_v4()) |
citext | Case-insensitive text type |
hstore | Key-value column |
ltree | Tree/hierarchy data and queries |
unaccent | Accent removal (useful for Turkish search) |
btree_gin, btree_gist | Additional index types |
cube, seg, isn, intarray | Specialised data types |
tablefunc | crosstab() and similar table functions |
fuzzystrmatch | Phonetic/spelling similarity (soundex, levenshtein) |
tcn, lo, dict_int | Trigger and dictionary helpers |
plperl, pltcl | Trusted 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.

