PostgreSQL on your VPS, managed from the panel

You install PostgreSQL with a strong password generated on the spot, then create databases, users and grants with forms, no psql involved. To work with the data you get a web manager with an editable grid, a SQL console and Excel export. And if another server needs this database, it connects over an encrypted SSH tunnel: port 5432 is never opened to the internet.

  • One-click install
  • Per-database permissions
  • Port 5432 never exposed

See plans · Create a free account

Here's what it looks like in the panel

Real screenshots of the ArduMaker panel, not mockups.

PostgreSQL: PostgreSQL in the panel
PostgreSQL in the panel. Service status, port, databases and users.
PostgreSQL: Table structure
Table structure. Columns, types, nullability and foreign keys.

A database ready to use, from outside too

From Apps you install a PostgreSQL database with its own user and, if you want, already open to the internet safely.

  • It creates the database and a user that owns only that database: it can't enter any other.
  • External access with mandatory TLS on its own port: 5432 is never exposed.
  • You decide which IPs can connect; you can also allow a host name.
  • The connection string is ready to copy, and the password is shown only on demand.
  • You see live which IPs are connecting and add them to the list with one click.

Before you install it

Use it when

  • Your application needs a relational database with transactions, relations between tables and full SQL queries.
  • You want to connect from your machine, another server or an external service, with TLS and only from the IPs you allow.
  • You'll use an ORM or a framework that ships with it by default (Django, Rails, Prisma, n8n).

It's not the right fit if

  • You only need cache, sessions or queues: that's Redis.
  • The application is written for MySQL or MariaDB (WordPress, for example).

How to check it's working

  1. Copy the connection string and connect: psql "postgresql://user:password@db-123.arducloud.com:61061/app?sslmode=require" -c "select version();" — it should return the PostgreSQL version.
  2. Check it's your database and nothing else: Inside psql run \conninfo: user, database and encrypted connection. The app user owns its database and can't enter any other.
  3. Write and read something: create table test(id int); insert into test values (1); select * from test; drop table test;

Tips

  • Only allowed IPs get in from outside; if it won't connect, first check that your IP is on the list.
  • Always use sslmode=require (or verify-full): without TLS the connection is rejected.
  • From an app running in the same VPS use the local connection: it's faster and never leaves the server.
  • The password is shown on demand and only to admins. Don't keep it in the repository.
  • Set up the VPS backups before storing production data.

Your day-to-day, without psql

And psql is still there over SSH whenever you need it.

  • Install with a strong password: If you don't set a password for the postgres user, a secure random one is generated.
  • Status at a glance: Running or not, version, port 5432, and how many databases and users there are.
  • Databases: List them (system ones left out), create one choosing the owner, see size and creation date, and delete.
  • Users: Create with or without superuser, see whether they can create databases or roles, change the password and delete.
  • Per-database permissions: Grant and revoke ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, USAGE and more, per user and per database. Ideal for a read-only user.
  • Tables and rows: List each database's tables and see the latest rows (up to 1000) without opening a SQL client.
  • Full web manager: Editable grid, read-only SQL console, EXPLAIN, and CSV and Excel import and export, over a private SSH tunnel.
  • Port 5432 is never opened to the internet: The engine listens on localhost only. From another VPS of yours you go through an encrypted SSH tunnel, with no public ports. If you need to connect from outside, external access is optional: it uses its own port with mandatory TLS and only from the IPs you authorize, and you can close it whenever you want.
  • Backups included: It's covered by the VPS backup, and you can set up your own dump as a scheduled task from the panel.
  • Real root if you want it: psql, pg_dump, extensions, postgresql.conf: the whole server is yours over SSH. The panel is a shortcut, not a cage.

A database ready for your app

  1. Install PostgreSQL: One click, with a strong generated password.
  2. Create a database and a user: Named after your app, with a user of its own.
  3. Give it permissions: Only the ones the app needs.
  4. Connect your app: On localhost:5432 from the same VPS, or over an SSH tunnel from another VPS.
  5. Connect from another server: With an SSH tunnel between your VPSs, the database shows up on the other one's localhost without opening a single port.

How it works underneath, and what to keep in mind

What you should know before you start, no fine print.

  • PostgreSQL listens on port 5432 on the VPS's localhost, and that port is never published: it's the decision that avoids most database incidents. The only thing that can reach the internet is a separate external access, on its own port, with mandatory TLS and only for the IPs you authorize: from the panel it is proposed with your current IP and you can close it whenever you want; through MCP it stays closed unless you give IPs.
  • For another VPS to use it, you set up an SSH tunnel between the two: the database shows up on the second server's localhost and the traffic is encrypted. No opening 5432 and no IP allowlists to maintain.
  • The web manager also comes in over that private tunnel, not over a direct connection from the browser.
  • If you don't set the postgres user's password at install time, a secure random one is generated and shown to you at the end. No default password left lying around.
  • Permissions are granted per user and per database: ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, USAGE and more. A read-only user for a dashboard is two clicks.
  • Usernames accept lowercase letters, numbers and underscores; database names are normalized to lowercase, which is how Postgres will treat them anyway.
  • It needs systemd and a Debian or Ubuntu base. It's verified in production on Ubuntu 22.04 and compatible with 18.04, 20.04, 24.04 and 26.04. Not on 16.04, because systemd 229 won't start on a host running cgroup v2.
  • The web manager asks for a bit more: it uses a tunnel built on sshd_config.d, so it needs Ubuntu 22.04 or later. On 20.04 and earlier the configuration doesn't apply and it stays disabled.
  • The database is covered by the VPS backup. If you want your own dump with your own retention, you set it up as a scheduled task from the panel.
  • Over SSH you have the whole server: psql, pg_dump, extensions and postgresql.conf. The panel covers the day-to-day; it doesn't take the rest away.
  • Real root over SSH: the panel is a shortcut, not a cage. Anything it does with a button, you can also do by hand.

Or just ask Claude, ChatGPT or Cursor

Everything you see in the panel, your AI agent can do through the ArduMaker MCP server: with your authorization, within the scope you grant, and with every action audited. See what the MCP does

PostgreSQL: frequently asked questions

How do I connect to PostgreSQL from another server without exposing it?

With an SSH tunnel between your VPSs. The database becomes available on the other server's localhost and the traffic is encrypted, without opening 5432 to the internet or maintaining IP allowlists. Your app connects to localhost:5432 as if the database were local.

Is it safe to expose Postgres to the internet?

Exposing 5432 as-is is the most common way a database gets compromised, and it is never done here: the engine listens on localhost only. There are two ways in from outside: the SSH tunnel between your VPS (the only port that opens is the tunnel's, and it serves a shell-less user that can only do port forwarding) and the optional external access, which publishes its own port with mandatory TLS and only for the IPs you authorize. Opening it to any IP requires an explicit confirmation.

What password do I get if I don't set one?

A secure random one is generated and shown to you when the install finishes. There's no default password and no user without one.

Can I view and edit the data without a SQL client?

Yes. From the panel you see the tables and the latest rows, and the web manager gives you an editable grid, a SQL console, EXPLAIN, and CSV and Excel import and export.

Can I create a read-only user?

Yes, by granting only SELECT on the database you want. It's the typical case for a dashboard or a report that has no business writing.

Can I still use psql and pg_dump?

Yes, you have root over SSH and the full PostgreSQL: extensions, postgresql.conf, whatever you need. The panel covers the day-to-day without taking the rest away.

Are there backups of the database?

It's covered by the VPS backup. If you want your own dump with your own retention and schedule, you set it up as a scheduled task from the panel.

Which Ubuntu versions are supported?

PostgreSQL works from 18.04 onward and is verified in production on 22.04. The web manager needs 22.04 or later, because it uses a tunnel built on sshd_config.d that earlier versions don't apply.

How much does it cost?

Nothing beyond the VPS. It isn't a managed database billed by the hour: it runs on your server, at the plan's fixed price.

Services that go well together

Everything runs on the same VPS and is managed from the same panel.

  • Database manager: A web grid for PostgreSQL and MySQL: edit rows, run SQL and EXPLAIN, and import/export CSV and Excel over a private tunnel.
  • MySQL: Install MySQL and manage databases, per-host users and permissions without touching the console.
  • Automatic backups: A full live backup every week, the last 4 kept, and a final copy when you delete the VPS.

Your PostgreSQL, on your server and with no open ports Install it in one click from the panel of any VPS. Not a separate product: it's in the panel of every ArduMaker VPS, right next to real root over SSH. See plans

How it works under the hood

The technical documentation for what this page covers: what each tool does, what changes, how to verify it and which MCP tools operate it.

  • PostgreSQL: PostgreSQL databases on the VPS with their own least-privilege user, TLS and external access limited by an IP allowlist.

All the documentation

Compare it with other platforms

Comparisons built on public data and sources, which also say when the other option is the better fit.

See all comparisons