# Managed PostgreSQL and pgAdmin on xCloud: PostgreSQL Sites for Laravel, Node.js and PHP (v2.9.7)

> PostgreSQL and pgAdmin now run on your xCloud Nginx server: install them from the dashboard and give Laravel, Node.js or PHP sites a PostgreSQL database.

**PostgreSQL and pgAdmin** now run on your own xCloud server. Since v2.9.7 (27 October 2026), an Nginx server can install one managed PostgreSQL service, open **pgAdmin** in the browser over HTTPS, and give new Laravel, Node.js and PHP Git sites a PostgreSQL database with the connection already written to the site's environment.

Until this release, a Laravel or Node.js app that needed PostgreSQL meant a database you installed and patched yourself, with no GUI, next to a panel built around MySQL. If you have read our [**Node.js vs Laravel comparison**](/node-js-vs-laravel-key-differences/), you know both ecosystems treat PostgreSQL as a first-class choice. xCloud now does too.

This post covers why we built it, how to install PostgreSQL and pgAdmin, how to create a PostgreSQL site, what is not supported yet, and the smaller changes that shipped alongside it.

![Install PostgreSQL from the Install a Service list in xCloud Server Management](/_landing/docs/install-managed-postgresql-and-pgadmin-in-xcloud-image-1.png)

## TL;DR

Short on time? Here is the whole release in a few lines:

- **One managed PostgreSQL per Nginx server**, shared by every PostgreSQL site on it. Install it when you create the server or later from **Management › Settings › Install a Service**.
- **pgAdmin, managed by xCloud.** Enable it from the **Management › Database** page and sign in over HTTPS with its own credentials.
- **PostgreSQL sites.** Native Git sites (PHP App, Laravel, Node.js) can pick **MySQL or PostgreSQL** at creation. xCloud creates the database and role and writes `DB_CONNECTION=pgsql` plus `DATABASE_URL` to the site's environment.
- **Private by default.** PostgreSQL listens on 127.0.0.1 only; it is not exposed to the internet.
- **Not yet supported:** PostgreSQL in site backups, and cloning, migrating, staging or snapshotting PostgreSQL sites. Export your data with pgAdmin's Backup tool.
- **Requirements:** Nginx stack and Docker Engine 28 or newer. OpenLiteSpeed servers cannot install it.
- **Also in v2.9.7:** Discord and signed webhook alerts, bulk PHP switching and redirects in the Public API and MCP, and WireGuard updates from the dashboard.

## Why We Built It: "Can I Use PostgreSQL?" Kept Getting a No

Before v2.9.7, xCloud had no managed PostgreSQL. You could not add it next to MySQL from the dashboard, open it in a web GUI, or create a site wired to it; the options were the separate one-click app or running it yourself over SSH. Meanwhile more of the apps people deploy, from Laravel projects to tools like n8n and Umami, expect PostgreSQL. The table below is what changed for each of those questions.

| The question customers asked | Before v2.9.7 | Since v2.9.7 |
|---|---|---|
| Can my server run PostgreSQL? | Only as a separate one-click app or a manual install over SSH | One managed service per Nginx server, installed from the dashboard |
| Is there a GUI for it? | No | **pgAdmin**, enabled and secured by xCloud, opened over HTTPS |
| Can a Laravel or Node.js site use it? | You wired the connection by hand | Pick **PostgreSQL** at site creation; database, role and env are created for you |
| Is it reachable from the internet? | Depended on your own setup | Bound to 127.0.0.1 only |
| Is it in site backups? | No | **Not yet**: export with pgAdmin's Backup tool |
| Can I replace MySQL on the server? | No | Still no. PostgreSQL runs **next to** MySQL, not instead of it |

That last row matters. Managed PostgreSQL does not swap out your server's MySQL or MariaDB, so your WordPress sites keep running exactly as before.

## Install Managed PostgreSQL and pgAdmin

You can add PostgreSQL to a new server by ticking **Install PostgreSQL** under the database settings of the server form (Nginx stack only). For an existing server, the steps are short. The full walkthrough with every screen is in [**How to Install Managed PostgreSQL and pgAdmin in xCloud**](/docs/install-managed-postgresql-and-pgadmin-in-xcloud/).

### Before you start

- **An Nginx server.** See [**Available Server Stacks in xCloud**](/docs/available-server-stacks-in-xcloud/).
- **Docker Engine 28 or newer.** PostgreSQL and pgAdmin run as private containers. If Docker is older, the install stops with "Private data services require Docker Engine 28 or newer." Our guide to [**Docker on an Nginx server**](/docs/enable-docker-on-an-nginx-server-in-xcloud/) covers how Docker runs alongside your sites.
- **No PostgreSQL one-click app on the same server.** If the server already runs it, the managed install is not offered.

### The steps

1. Open your server and go to **Management › Settings**. Under **Install a Service**, click **Install** on the **PostgreSQL** row.
2. Watch the row move from **Queued** to **Installing...** to **Ready**. If it shows **Failed**, read the message under the status, fix the cause and click **Retry**.
3. Go to **Management › Database** and click **Enable pgAdmin** on the new pgAdmin card.
4. When the card is ready, click **Show credentials**, then **Open pgAdmin**, and sign in.

![The pgAdmin card in xCloud Management › Database with the Enable pgAdmin button](/_landing/docs/install-managed-postgresql-and-pgadmin-in-xcloud-image-4.png)

pgAdmin is the [**open-source graphical management tool for PostgreSQL**](https://www.pgadmin.org/). Inside it you create databases and roles, run queries and export data, without opening an SSH session. It plays the role that [**Adminer plays for MySQL sites**](/access-site-database-with-adminer-in-xcloud/). Disabling pgAdmin later deletes nothing: databases you created there move to the `xcloud_pg_owner` role and PostgreSQL keeps running.

## Create a Site That Uses PostgreSQL

With PostgreSQL showing **Ready**, start a new site with **Deploy via Git** (see [**Deploy Git Projects in One Click**](/docs/deploy-git-projects-in-one-click-with-xcloud/)). Choose **PHP App**, **Laravel** or **Node.js** as the **App Type**, then set **Database engine** to **PostgreSQL**.

![Set Database engine to PostgreSQL in the xCloud Deploy via Git site form](/_landing/docs/install-managed-postgresql-and-pgadmin-in-xcloud-image-6.png)

xCloud creates a database and a role for the site and writes the connection to the site's environment:

```bash
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=<port>
DB_DATABASE=<site database>
DB_USERNAME=<site role>
DB_PASSWORD=<generated password>
DATABASE_URL=postgresql://<site role>:<generated password>@127.0.0.1:<port>/<site database>
```

Laravel's default database config reads the `DB_*` keys. Node.js tools such as Prisma are usually configured with `DATABASE_URL`. Either way, your first deploy can run migrations without you pasting a password anywhere. Before that first deploy, make sure the server runs a supported Node.js release; our [**guide to updating Node.js on Ubuntu**](/update-node-js-ubuntu-server/) covers the October 2026 security release.

If **Database engine** does not appear on the form, PostgreSQL is not **Ready** on that server yet, or the app type is not PHP App, Laravel or Node.js. The same choice is also in the white-label site form.

## What It Does Not Do Yet (Read This Before You Go Live)

Here is the part that trips people up: **PostgreSQL databases are not in xCloud site backups yet.** The site's **Backups** page shows a reminder, but a backup will not restore your PostgreSQL data. Until that changes, export it yourself from pgAdmin: right-click the database, choose **Backup...**, pick the **Custom** format and run it. pgAdmin runs [**pg_dump**](https://www.postgresql.org/docs/17/app-pgdump.html), PostgreSQL's own backup utility, for you; download the finished file from pgAdmin's **Storage Manager** and keep a copy off the server.

| Area | What happens with PostgreSQL today |
|---|---|
| Server stack | Nginx only, Docker Engine 28 or newer. Not OpenLiteSpeed |
| Services per server | One managed PostgreSQL, shared by every PostgreSQL site |
| Site types | Native Git sites: PHP App, Laravel, Node.js. Not WordPress |
| Site backups | **Not included yet** |
| Clone, migrate, staging, snapshots | **Not supported yet** for PostgreSQL sites |
| Deleting a site | The site's database and role are **kept**; remove them in pgAdmin |
| Disabling pgAdmin | Nothing is deleted; PostgreSQL keeps running |

To undo the whole thing for a site, delete the site, then drop its database and role in pgAdmin. There are no performance or price claims in this post because we have not published a benchmark: treat managed PostgreSQL as a convenience and a security default, and size your server for your own workload.

**Need a standalone database instead?** The separate [**PostgreSQL one-click app**](/postgresql-hosting/) still exists for running PostgreSQL as its own app.

## Get Alerts in Discord or Your Own Signed Webhook

v2.9.7 also adds **Discord** and **Webhook** next to Slack, Telegram and WhatsApp under **Settings › Integrations › Notification**. Discord takes a channel webhook URL. The webhook option posts each alert as JSON to any HTTPS endpoint you run, signed with HMAC-SHA256 so your code can verify it came from xCloud.

Both need a paid plan and get their own switches under **Settings › Notifications**. Setup and signature checks in PHP and Node.js are in [**Send xCloud notifications to Discord or a webhook**](/docs/send-xcloud-notifications-to-discord-or-a-webhook/).

## For API and MCP Users: Bulk PHP Switching and Redirects

The Public API and MCP can now **switch PHP for up to 100 sites in one call**: preview the change, run it, and poll each site's result. They also manage site redirects (`POST`, `PUT` and `DELETE /api/v1/sites/{uuid}/redirections`), a site's vulnerability scan setting, and the list of WordPress versions site creation accepts. Start with [**How to access the xCloud API**](/docs/how-to-access-the-xcloud-api/).

## Also in v2.9.7: WireGuard Updates and Safer Telegram Linking

- **WireGuard** sites show their current and latest stable version and can queue a tracked update from the dashboard, API or MCP. See [**Install WireGuard with xCloud**](/docs/install-wireguard-with-xcloud/).
- **Telegram** linking now uses a single-use code and links only the chat you confirm.
- **New servers install MariaDB 11.8**, and database and user names are now validated and quoted in every database action.

The full list of fixes is in the [**v2.9.7 changelog**](/changelog/v2-9-7/). This week's other security change, the move to BetterShield, has [**its own post**](/bettershield-replaces-wp-fail2ban/).

## Give Your Next Laravel or Node.js App a PostgreSQL Database Today

If your next app expects PostgreSQL, you no longer need a second database server or an SSH-only setup. Install PostgreSQL on an Nginx server, enable pgAdmin, and pick **PostgreSQL** when you create the site. Then export it regularly with pgAdmin's Backup tool, because site backups do not cover it yet.

Running Laravel? Our [**Laravel hosting**](/laravel-hosting/) and [**Node.js hosting**](/node-js-hosting/) pages show what else xCloud manages for those stacks. **Try it on your next Git site this week**, and tell us in the community what PostgreSQL feature you want next.

If you have found this blog helpful, feel free to [**subscribe to our blogs**](https://xcloud.host/blog/) for valuable tutorials, guides, knowledge, and tips on web hosting and server management. You can also join our [**Facebook community**](https://www.facebook.com/groups/xcloud.community) to share insights and engage in discussions.

## Frequently Asked Questions

### Is PostgreSQL included in xCloud site backups?

Not yet. xCloud site backups do not include PostgreSQL databases, and the site's Backups page reminds you of that. Export the database with pgAdmin's Backup tool on a schedule you trust.

### Can I use PostgreSQL on an OpenLiteSpeed server?

No. Managed PostgreSQL is available only on Nginx servers with Docker Engine 28 or newer. If your sites run on OpenLiteSpeed, use a separate Nginx server for your PostgreSQL apps.

### Is the PostgreSQL port open to the internet?

No. xCloud binds the managed PostgreSQL service to 127.0.0.1 on the server, so only sites and tools on that server can reach it. You manage it from the browser through pgAdmin, which opens over HTTPS with its own login.

### Can I switch an existing MySQL site to PostgreSQL?

Not from the dashboard. The MySQL or PostgreSQL choice is made when you create a native Git site (PHP App, Laravel or Node.js). To move an existing app, create a new PostgreSQL site and migrate the data with your framework's tools.

### What is the difference between managed PostgreSQL and the PostgreSQL one-click app?

Managed PostgreSQL is one shared service per server that your Git sites connect to, with pgAdmin and automatic database and role creation. The PostgreSQL one-click app is a standalone database app you deploy on its own. A server that already runs the one-click app cannot add the managed service.
