Shared PostgreSQL instance, pinned to the latest stable alpine tag (see the image: line in
docker-compose.yaml for the exact version currently deployed). Standalone-usable with plain
Docker Compose, or deployed as shared tenant infrastructure on Coolify.
cp .env.example .env
# edit .env and set a real POSTGRES_PASSWORD
docker compose up -dDeployed with docker_compose_location set to /docker-compose.coolify.yaml (not the
default docker-compose.yaml) — that variant joins the coolify external Docker network so
other apps in the same tenant can reach it by the service name postgresql, and gets no
public domain/FQDN (it's a database, not a web app).
Convention: apps needing Postgres get their own database inside this instance
(CREATE DATABASE <app>;), not their own Postgres container.
docker-compose.yaml must run standalone with zero pre-existing infrastructure — it can't
require an external network that only exists on the Coolify host. docker-compose.coolify.yaml
is the same stack with that one Coolify-specific network attached. See the fleet Hub's Phase 0
design spec for the full rationale.