Prerequisites
Everything you need to have in place before bringing the stack up.
Docker Engine and Compose v2
The Dreamphase stack is distributed as a Docker Compose project. You need Docker Engine 20.10 or newer with the Compose v2 plugin (the docker compose subcommand, not the older standalone docker-compose binary).
# Verify Docker Engine is installed
docker --version
# Verify Compose v2 plugin is available (note: space, not hyphen)
docker compose version
Both commands should return a version string without errors. If docker compose version fails, install the Compose plugin for your platform before continuing.
Host machine requirements
The stack is designed for personal or small-group use and has modest resource requirements. The Dreamphase server is a single binary, and the database is the lightweight postgres:16-alpine image, so the footprint is small.
- Operating system: Linux, macOS, or Windows via WSL 2. Any host that can run Docker Engine.
- RAM: 512 MB free is enough for a single user. Add more if you expect heavy concurrent use.
- Disk: roughly 300 MB for the two images, plus space for the database volume. Single-user dream journals stay small for a long time.
Open ports
The stack binds two host ports by default. You need both to be available, and if you want the Dreamphase app on a different device to reach the stack, the API port also needs to be reachable on your local network.
| Port | Variable | Service | Required |
|---|---|---|---|
8543 |
API_PORT |
Dreamphase server (HTTP API + bundled web UI) | Yes |
5432 |
POSTGRES_PORT |
PostgreSQL | Only if you want to connect external database tools |
If another service is already using one of these ports, override the variable in your .env to remap it. See Configuration for the full list of overridable variables.
Optional: reverse proxy and domain
For local-network-only use you do not need a reverse proxy or a domain name. The stack's HTTP API on port 8543 is sufficient. A reverse proxy (nginx, Caddy, Traefik) is useful if you want:
- TLS (HTTPS) termination so the Dreamphase app can connect over an encrypted connection
- A stable hostname rather than a raw IP address
- Access from outside your local network
Reverse proxy configuration is not covered in this guide. Any standard reverse proxy that can forward HTTP traffic to a local port will work; point it at http://127.0.0.1:8543 on the host running the stack.
Keep the stack off the public internet unless you know what you're doing
The stack is designed for trusted local network use. Exposing it to the internet without TLS and proper authentication review is not recommended.