Managing Databases

Query, connect remotely, rotate passwords, and manage resources from the portal

The Databases view

Click Databases in the portal sidebar to see all databases on your account. Each card shows the database name, engine (MariaDB, PostgreSQL, or Redis), current status, and live CPU and RAM usage bars.

Status

Running means the container is healthy and accepting connections. Stopped means it is down — use the operator if this is unexpected.

CPU & RAM bars

Live resource usage as a percentage of the limits allocated to this database. Bars turn red above 80% — a signal to raise limits or reduce query load.

Manage button

Opens the detail panel with two tabs: Overview (connection info + actions) and Query (run SQL or Redis commands directly).

Overview tab — connection info

The Overview tab shows the five connection variables your app needs. Each row has a Copy button for quick paste into your environment variables.

Variable What it contains
DB_HOST Container hostname on your private network (e.g. myapp-db)
DB_PORT 3306 (MariaDB) · 5432 (PostgreSQL) · 6379 (Redis)
DB_NAME Database name (not applicable for Redis)
DB_USER Your dedicated database user
DB_PASS Password (masked — use Reveal or Copy)

To connect your app to this database, add these as env vars in your app's Env tab. See Connecting to Databases for code examples.

Query tab

The Query tab lets you run SQL statements (MariaDB / PostgreSQL) or Redis CLI commands directly against your database without installing any client software. Results appear below the editor.

MariaDB & PostgreSQL

Use standard SQL. Select the target database from the dropdown at the top, write your query, and click Run (or press Ctrl+Enter).

Useful for:

  • Inspecting table contents: SELECT * FROM users LIMIT 20;
  • Checking row counts: SELECT COUNT(*) FROM orders;
  • Running one-off migrations or data fixes
  • Listing tables: SHOW TABLES; / \dt
Write queries run immediately — there is no preview or dry-run. Double-check UPDATE, DELETE, and DROP statements before running them. The portal shows a warning when it detects a write statement.

Redis

Enter Redis CLI commands, one per line. There is no database selector — Redis uses a single keyspace.

Example Redis commands
KEYS *
GET session:abc123
HGETALL user:42
TTL auth:token:xyz
DBSIZE

Remote access

By default, your database is only reachable from inside your private container network — your app can connect, but nothing external can. Remote Access temporarily publishes the database port on the VPS's public IP, letting you connect with a desktop client like TablePlus or DBeaver.

Enabling remote access

In the Overview tab, toggle Remote Access on. The panel shows the external hostname and port once enabled. Use these in your database client — the credentials (user, password, database name) are the same as shown in the connection info table.

Age badge

The remote access toggle shows how long it has been enabled: turns amber after 24 hours and red after 72 hours. This is a reminder — not a hard limit. Disable remote access when you are done to reduce your attack surface.

Remote access is for temporary use only. The exposed port has no TLS — treat the database password as your only protection. Disable remote access after each session. Do not leave it enabled for production traffic.

Password rotation

Click Change Password in the Overview tab to generate a new random database password. The new password is shown once — copy it immediately.

  1. Click Change Password and confirm.
  2. The new password appears in the panel. Copy it.
  3. Go to your app's Env tab, update DB_PASS with the new value, and click Save Changes.
  4. Redeploy your app so the container picks up the new password.
Existing app connections using the old password will fail immediately after rotation. Update and redeploy your app promptly to restore service. If you have multiple apps connecting to the same database, update all of them.

Resource allocation

Database CPU and RAM come from the same subscription pool as your apps — raising a database's limits reduces what's available to your app containers. Adjust allocations in the Subscription view (portal sidebar → Subscription), where sliders for every app and database share a single pool bar.

The pool bars at the top of the Subscription view update live as you drag sliders — they show exactly how much of your slot's CPU and RAM is allocated. You cannot allocate more than 100%.

For recommended allocations per database engine, see Connecting to Databases — Resource planning.