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
- Databases → New database.
- Name (lowercase letters, numbers, hyphens, up to 63), Engine, Version.
- Create database. Status goes
provisioning→running(orerror).
| Engine | Versions offered | User / database |
|---|---|---|
| PostgreSQL | 15, 16, 17 | marvex / app |
| MySQL | 8, 8.4, 9 | marvex / app |
| MariaDB | 11, 10.11 | marvex / app |
| MongoDB | 6, 7 | marvex / app (authSource=admin) |
| Redis | 7 | password only |
| libSQL | latest | HTTP 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>:6379Add 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.