# docker-compose.yml — local development. # # Brings up librenotes on http://localhost:8080 with the magic-link # mailer logging links to stdout (no SMTP needed). Data lives in # named volumes so `docker compose down` does NOT wipe state. # Use `docker compose down -v` for a clean slate. services: librenotes: build: context: . args: VERSION: dev image: librenotes:dev ports: - "8080:8080" environment: LIBRENOTES_BASE_URL: "http://localhost:8080" # JWT secret must be at least 32 bytes. Override per-host for # any non-throwaway environment. LIBRENOTES_JWT_SECRET: "dev-secret-32-bytes-of-keymaterial!!" volumes: - notes:/data - state:/var/lib/librenotes healthcheck: test: ["CMD", "/librenotes", "healthcheck"] interval: 30s timeout: 5s retries: 3 start_period: 5s restart: unless-stopped volumes: notes: state: