From source
Before just up: the stack needs somewhere to be reached from.
compose.yaml attaches to an external Docker network named traefik and
asks a step-ca resolver for certificates on *.dev.localhost. None of that is
created for you, and an absent network makes just up fail rather than degrade.
Reverse proxy has both ready-made setups:
examples/traefik-stepca/ for the hostnames the rest of this page assumes, and
examples/no-proxy/ if you would rather bind a port and skip TLS.
just up # start nginx, php-fpm, postgresjust composer install # runs inside the php-fpm containerjust migrate-run # set up the databasejust exec bin/console app:dev:seed # dev@loupe.test or admin@loupe.test / passwordjust exec bin/console league:oauth2-server:generate-keypair --skip-if-exists # OAuth keys in var/oauth/just --list shows every recipe. just mercure-up also starts the Mercure
hub. The hub carries live updates for the board, the inbox count, worker runs
and site review.
Once you are in, the seed command above is what gives you an account — registration will not create the first one. “Ways to run it” lists the alternatives.
Copy the environment overrides you need into .env.local (never commit it):
DATABASE_URL="postgresql://app:!ChangeMe!@db.loupe.dev.localhost:5432/app?serverVersion=16&charset=utf8"That host is the traefik-stepca example’s TCP route, and it assumes
COMPOSE_PROJECT_NAME=loupe. Under examples/no-proxy/ the database is on
127.0.0.1 instead.
Set a real MERCURE_JWT_SECRET, APP_SECRET, and (if you use encrypted columns)
APP_ENCRYPTION_KEY per environment. .env documents every variable inline;
Environment variables has the commands that generate these three.
Never commit real secrets.