Skip to content
All guides

Docs Database

Database

One-click Postgres and MySQL with admin UIs and DBMS tools.

Overview

The Database tab provisions managed database containers on your VPS: PostgreSQL (foster_postgres), MySQL (foster_mysql), plus optional web managers phpMyAdmin and pgAdmin. Credentials, ports, and status are returned to the panel so you can connect apps on the internal Docker network or expose admin UIs when needed.

Open it from the panel sidebar under Services → Database.

PostgreSQL

One-click setup creates the foster_postgres container with a persistent volume (foster_postgres_data), attaches it to foster_network, and returns user, password, database name, and the mapped host port.

  • Default internal port: 5432.
  • Host port is randomized in the 15000–25000 range unless you pin one.
  • Existing volumes are reused on reinstall so data survives a recreate.

MySQL

MySQL setup creates foster_mysql with volume foster_mysql_data, root password, app user/password, and default database. Host ports randomize in 25001–35000 by default.

Note: Official MySQL images reject MYSQL_USER=root. If you choose the root user, Foster omits the app-user env and authenticates with the root password only.

Admin UIs

phpMyAdmin

Optional foster_phpmyadmin container for MySQL. When exposed, the panel shows a public URL on a randomized host port (35001–40000 by default).

pgAdmin

Optional foster_pgadmin for PostgreSQL. You set admin email/password; the service connects on foster_network to foster_postgres. Default host port range: 40001–45000.

Network & ports

All database services join the default foster_network bridge. Containers on the same network can reach each other by container name on the internal port (for example foster_postgres:5432).

  • Randomized host ports reduce opportunistic scans versus well-known 5432/3306.
  • Firewall integration adds ACCEPT rules for mapped ports on install and removes them on uninstall.
  • Exposed in status means the mapped host port is allowed in the Foster firewall chain.
  • Engine credentials are available even when the port is not publicly exposed, so internal clients can still connect.

Volumes & data retention

Uninstall defaults to keeping volumes (remove_volume: false). Data is only wiped when you explicitly choose to remove the volume. Reinstalling reuses an existing named volume when present.

Databases & users

After an engine is running, use DBMS actions to manage logical databases and users without dropping into a shell:

  • Create a database on Postgres or MySQL.
  • Create a user with a password.
  • Grant a user access to a database.
  • Drop databases or users when cleaning up.

Prefer these panel actions for routine schema onboarding; use the container terminal only when you need ad-hoc SQL tooling.

Uninstall

Each service (Postgres, MySQL, phpMyAdmin, pgAdmin) can be uninstalled independently. Firewall rules for that service’s host port are removed. Leave volume removal unchecked unless you intend to delete data permanently.