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–25000range 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.
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.