**feat(compose):** add separate deploy and dev Docker Compose files
All checks were successful
CI / build-test (push) Successful in 1m3s

- Introduced `compose.yml` for deployment, pulling the image from the registry
- Added `compose.dev.yml` for local development, building the image from source
- Updated `README.md` and `.claude/CLAUDE.md` with instructions for both configurations
- Introduced `DB_PATH` environment variable to customize SQLite database file location
- Updated `main.go` to use `DB_PATH` with a default fallback (`./diun.db`)
This commit is contained in:
2026-02-27 15:11:47 +01:00
parent c0746a7f02
commit bf77142641
5 changed files with 40 additions and 6 deletions

View File

@@ -28,12 +28,20 @@ docker run --rm -p 8080:8080 diun-webhook-dashboard
# open http://localhost:8080
```
### Docker Compose
### Docker Compose (deploy)
```bash
# Pulls from Gitea registry, persists DB to a named volume
docker compose up -d
# open http://localhost:8080
```
### Docker Compose (dev)
```bash
# Builds the image locally from source
docker compose -f compose.dev.yml up -d
# open http://localhost:8080
```
## Webhook authentication
Set `WEBHOOK_SECRET` to protect the webhook endpoint with token authentication. When set, every `POST /webhook` must include a matching `Authorization` header. When unset, the webhook is open (a warning is logged at startup).
@@ -44,6 +52,9 @@ WEBHOOK_SECRET=your-secret-token-here go run ./cmd/diunwebhook/
# Or via Docker Compose (.env file or inline)
WEBHOOK_SECRET=your-secret-token-here docker compose up -d
# Custom database path (useful for Docker volume mounts)
DB_PATH=/data/diun.db go run ./cmd/diunwebhook/
```
## DIUN configuration example
@@ -93,7 +104,8 @@ pkg/diunwebhook/ — core library (handlers, DB, models)
frontend/ — React SPA (Bun + Vite + React 19 + Tailwind + shadcn/ui)
.gitea/workflows/ — CI/CD workflows (Gitea Actions)
Dockerfile — 3-stage multi-stage build
docker-compose.yml — single-service compose file
compose.yml — deploy compose (pulls from Gitea registry)
compose.dev.yml — dev compose (builds locally)
```
## Development
@@ -127,7 +139,7 @@ Aim for 80-90% coverage. Coverage below 80% will emit a warning in CI but will n
## Production notes
- Behind a reverse proxy, ensure the app is reachable at `/webhook` from DIUN.
- Data is persisted to `diun.db` in the working directory. Mount a volume to preserve data across container recreations.
- Data is persisted to `diun.db` in the working directory by default. Set `DB_PATH` to change the location (e.g. `DB_PATH=/data/diun.db`). The deploy compose file uses a named volume at `/data`.
- Set `WEBHOOK_SECRET` to protect the webhook endpoint if exposed publicly.
## License