This repo provides a simple, reproducible local development stack:
- PostgreSQL 18 – main relational database
- Dragonfly – Redis-compatible in-memory datastore
- pgAdmin 4 – web UI for PostgreSQL
- RedisInsight – web UI for Dragonfly / Redis-compatible data
Services run with persistent volumes.
This repo is Podman-friendly and is the preferred setup for Fedora Silverblue.
Requirements:
- Podman
- podman-compose
- Rootless Podman socket enabled
Recommended setup:
systemctl --user enable --now podman.socket
python3 -m venv ~/.local/share/podman-compose-venv
~/.local/share/podman-compose-venv/bin/python -m pip install --upgrade pip
~/.local/share/podman-compose-venv/bin/python -m pip install podman-compose
ln -sf ~/.local/share/podman-compose-venv/bin/podman-compose ~/.local/bin/podman-composeThe Makefile defaults to:
COMPOSE ?= podman-compose
CONTAINER ?= podmanDocker is also supported by overriding the Makefile variables:
make up COMPOSE="docker compose" CONTAINER=dockerCopy the example environment file:
cp env-example .envEdit .env if you want different ports, usernames, passwords, or database names.
make upShow running services:
make psTail all logs:
make logsStop services while keeping volumes:
make downStop services and remove volumes:
make down-vmake down-v deletes local database and Dragonfly data.
- pgAdmin: http://localhost:5050
- RedisInsight: http://localhost:5540
- PostgreSQL:
localhost:5432 - Dragonfly:
localhost:6379
Open psql inside the Postgres container:
make psqlOpen redis-cli inside the Dragonfly container:
make redis-cliTail individual service logs:
make logs-postgres
make logs-dragonfly
make logs-pgadmin
make logs-redisinsight| Service | Container | Port |
|---|---|---|
| PostgreSQL | dev-postgres |
5432 |
| Dragonfly | dev-dragonfly |
6379 |
| pgAdmin | dev-pgadmin |
5050 |
| RedisInsight | dev-redisinsight |
5540 |
- Images are fully qualified so Podman does not prompt for registry selection.
.envis ignored by Git.- Persistent data lives in Podman/Docker named volumes.