Deploy event-uploader to Dockge
Production stack: images from Gitea registry only. Use from Dockge on the home server (10.0.10.189:5001).
Build and push images
Build and upload images to Gitea’s container registry (10.0.10.205:3000) from your dev machine so Dockge can pull them.
- One-time: Allow HTTP registry and log in:
- Docker Desktop (Mac): Settings → Docker Engine → add
"insecure-registries": ["10.0.10.205:3000"], Apply. - Run:
docker login 10.0.10.205:3000(username:bert.hausmans, password: Gitea password or a personal access token with package read/write).
- Docker Desktop (Mac): Settings → Docker Engine → add
- Each release: From the project root:
./scripts/docker-build-push.sh 1.0.0(or any version; omit to uselatestor git describe).- Or manually: set
VERSION=1.0.0,REGISTRY=10.0.10.205:3000,OWNER=bert.hausmans, thendocker build -t $REGISTRY/$OWNER/event-uploader-api:$VERSION ./api(and same foradmin,upload), thendocker pushfor each.
After pushing, deploy on the server: set TAG=1.0.0 in the stack .env, then in Dockge use Pull and Redeploy.
Ports (3000 range to avoid conflicts)
| Service | Host port | Container | URL (example) |
|---|---|---|---|
| API | 3001 | 8000 | http://10.0.10.189:3001 |
| Admin | 3002 | 80 | http://10.0.10.189:3002 |
| Upload | 3003 | 80 | http://10.0.10.189:3003 |
| MySQL | 3004 | 3306 | (internal; use 3004 only for direct DB access) |
One-time setup in Dockge
- Add stack: point Dockge at this repo’s
deploy/folder (or pastedocker-compose.yml). - Create
.envin the stack directory (or use Dockge’s env) with at least:TAG=latest(or e.g.1.0.0)DB_PASSWORD=...DB_DATABASE=event_uploaderAPP_KEY=...(Laravelphp artisan key:generate)APP_URL=http://10.0.10.189:3001(or your public URL)SESSION_DOMAIN=10.0.10.189(or your domain)SANCTUM_STATEFUL_DOMAINS=10.0.10.189:3002,10.0.10.189:3003- Google OAuth if used:
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GOOGLE_REDIRECT_URI
- Ensure Docker on the server has
10.0.10.205:3000ininsecure-registriesand rundocker login 10.0.10.205:3000. - First deploy: Pull, then Start (or
docker compose -f deploy/docker-compose.yml pull && docker compose -f deploy/docker-compose.yml up -d).
Deploy new version
- In Dockge: open the stack → Pull (to fetch new images from Gitea) → Redeploy (or Stop + Start).
- Or on the server: set
TAG=1.0.0in.env, thendocker compose pull && docker compose up -d.
Troubleshooting: "manifest unknown" (e.g. for admin)
This means the registry has no image for the tag Dockge is using.
- Match the tag – In the stack
.env, setTAGto the exact tag you pushed (e.g. the git hash from the build output, orlatest). After running./scripts/docker-build-push.sh, the script prints the tag and now also pushes:latest, soTAG=latestworks. - Re-push all images – From project root run
./scripts/docker-build-push.shagain so api, admin, and upload are all pushed with the same tag. - Registry login on the server – Where Dockge runs, ensure
docker login 10.0.10.205:3000has been done and that Docker has10.0.10.205:3000ininsecure-registries(if using HTTP).
"no matching manifest for linux/amd64" (MySQL)
The stack pins MySQL to docker.io/library/mysql:8.0 with platform: linux/amd64 so the server pulls the correct image from Docker Hub. If your Dockge server is ARM (e.g. Raspberry Pi), change the MySQL service in docker-compose.yml to platform: linux/arm64.