Help Center

Databases & storage

Managed databases

Create PostgreSQL, MySQL, MariaDB, MongoDB, Redis or libSQL databases, connect your apps over the private network, and take, schedule and restore backups.

Create a database

  1. Databases → New database.
  2. Name (lowercase letters, numbers, hyphens, up to 63), Engine, Version.
  3. Create database. Status goes provisioning → running (or error).
EngineVersions offeredUser / database
PostgreSQL15, 16, 17marvex / app
MySQL8, 8.4, 9marvex / app
MariaDB11, 10.11marvex / app
MongoDB6, 7marvex / app (authSource=admin)
Redis7password only
libSQLlatestHTTP basic auth

The list on the page is authoritative. A strong password is generated. Each database runs in its own container with a persistent volume and a 512 MB memory limit.

Connect your app

Copy the Connection URL under Connect your deployed apps (private network), e.g.:

postgres://marvex:<password>@marvex-db-<id>:5432/app
redis://:<password>@marvex-db-<id>:6379

Add it to the project's Environment tab (DATABASE_URL, REDIS_URL…) and deploy. The internal host only resolves for apps running on MarvX.

From your computer

The Connect a tool (TablePlus, DBeaver, psql) details use 127.0.0.1, which is local to the MarvX server. Databases aren't exposed to the internet, so they won't work from your machine on MarvX-hosted servers. Use an app's Open Terminal, or contact support for external access.

Backups

Supported for PostgreSQL, MySQL, MariaDB and MongoDB (not Redis or libSQL). The database must be running.

  • Back up now in Backups takes an on-demand backup.
  • Automatic backups: a Cron expression (5 fields, UTC, e.g. 0 3 * * *) and Retention (keep N), at least 1. Click Enable / Update; Turn off keeps existing backups.
  • Restore overwrites the current data. Take a fresh backup first if needed.

Delete

Deleting destroys the container, volume and all data, permanently. Existing backups aren't deleted. Update apps that used it.

Troubleshooting

  • Status error: provisioning failed (e.g. image pull). Delete and recreate; contact support if it repeats.
  • App can't connect: use the private-network URL, check the database is running, and redeploy after setting the variable.
  • "backups are not supported for redis/libsql" is expected; "database must be running to back up" means wait for provisioning.