Update beans and deployment docs

Update epic checklist, mark completed tasks, fix Gitea username/domain
references, and update DEPLOYMENT.md with correct registry paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-09 18:28:56 +01:00
parent 03f07ebee5
commit 61a7f57f1f
8 changed files with 25 additions and 25 deletions

View File

@@ -5,7 +5,7 @@ status: todo
type: task
priority: normal
created_at: 2026-02-09T15:30:50Z
updated_at: 2026-02-09T15:31:15Z
updated_at: 2026-02-09T16:53:13Z
parent: nuzlocke-tracker-ahza
blocking:
- nuzlocke-tracker-vpn5

View File

@@ -52,8 +52,8 @@ Define and implement a deployment strategy for running the nuzlocke-tracker in p
- [x] **Create production docker-compose file** (`docker-compose.prod.yml`) — uses images from the Gitea container registry, production env vars, no source volume mounts, proper restart policies
- [x] **Create production Dockerfiles (or multi-stage builds)** — ensure frontend is built and served statically (e.g., via the API or a lightweight nginx container), API runs without debug mode
- [x] **Set up Portainer on Unraid** — install Portainer CE as a Docker container, configure the stack from the production compose file
- [ ] **Configure Portainer webhook for automated redeployment**add a webhook trigger in Portainer that pulls latest images and restarts the stack
- [ ] **Create deploy script** a script (e.g., `./deploy.sh`) that builds images from `main`, tags them for the Gitea registry, pushes them, and triggers the Portainer webhook to redeploy
- [x] **Configure Portainer API for automated redeployment**deploy script uses Portainer CE REST API to pull latest images and restart the stack
- [x] **Create deploy script**`./deploy.sh` builds images, pushes to Gitea registry, triggers Portainer API redeployment
- [ ] **Configure Nginx Proxy Manager** — add proxy host entries for Gitea and the nuzlocke-tracker frontend/API on the appropriate ports
- [ ] **Environment & secrets management** — create a `.env.prod` template, document required variables, decide on secret handling (`.env` file on Unraid, Portainer env vars, etc.)
- [ ] **Database backup strategy** — set up a simple scheduled backup for the PostgreSQL volume/data (e.g., cron + `pg_dump` script on Unraid)

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-aiw6
title: Create deploy script
status: in-progress
status: completed
type: task
priority: normal
created_at: 2026-02-09T15:30:48Z
updated_at: 2026-02-09T17:22:53Z
updated_at: 2026-02-09T17:28:22Z
parent: nuzlocke-tracker-ahza
blocking:
- nuzlocke-tracker-izf6

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-izf6
title: Configure Gitea container registry
status: todo
status: completed
type: task
priority: normal
created_at: 2026-02-09T15:30:40Z
updated_at: 2026-02-09T16:44:19Z
updated_at: 2026-02-09T16:53:09Z
parent: nuzlocke-tracker-ahza
---
@@ -14,7 +14,7 @@ Set up and verify the Gitea container registry for hosting Docker images as user
## Checklist
- [ ] Create a Gitea access token with `read:package` and `write:package` scopes
- [ ] Verify `docker login gitea.yourdomain.com` works from the dev machine
- [ ] Test pushing a Docker image as a user-level package (e.g., `gitea.yourdomain.com/julian/nuzlocke-tracker-api:latest`)
- [ ] Verify `docker login gitea.nerdboden.de` works from the dev machine
- [ ] Test pushing a Docker image as a user-level package (e.g., `gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest`)
- [ ] Verify the image appears under the user's Packages tab in Gitea
- [ ] Test pulling the image back (from Unraid or dev machine)

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-jzqz
title: Configure Portainer API for automated redeployment
status: in-progress
status: completed
type: task
priority: normal
created_at: 2026-02-09T15:30:45Z
updated_at: 2026-02-09T17:22:17Z
updated_at: 2026-02-09T17:28:22Z
parent: nuzlocke-tracker-ahza
blocking:
- nuzlocke-tracker-hwyk

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-vpn5
title: Create production docker-compose file
status: in-progress
status: completed
type: task
priority: normal
created_at: 2026-02-09T15:30:41Z
updated_at: 2026-02-09T16:57:11Z
updated_at: 2026-02-09T16:59:00Z
parent: nuzlocke-tracker-ahza
---

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-xmyh
title: Create production Dockerfiles
status: in-progress
status: completed
type: task
priority: normal
created_at: 2026-02-09T15:30:42Z
updated_at: 2026-02-09T16:59:19Z
updated_at: 2026-02-09T17:00:32Z
parent: nuzlocke-tracker-ahza
---

View File

@@ -28,8 +28,8 @@ Docker images are hosted on Gitea's built-in container registry as **user-level
Images use the format `gitea.nerdboden.de/<user>/<image>:<tag>`:
```
gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest
gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest
gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest
gitea.nerdboden.de/thefurya/nuzlocke-tracker-frontend:latest
```
### Authentication
@@ -45,12 +45,12 @@ gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest
```bash
# Build and tag
docker build -t gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest ./backend
docker build -t gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest ./frontend
docker build -t gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest ./backend
docker build -t gitea.nerdboden.de/thefurya/nuzlocke-tracker-frontend:latest ./frontend
# Push
docker push gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest
docker push gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest
docker push gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest
docker push gitea.nerdboden.de/thefurya/nuzlocke-tracker-frontend:latest
```
Pushed images are visible under the **Packages** tab on your Gitea user profile.
@@ -91,10 +91,10 @@ Until the deploy script is in place, deploy manually:
git checkout main
# 2. Build and push images
docker build -t gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest ./backend
docker build -t gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest ./frontend
docker push gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest
docker push gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest
docker build -t gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest ./backend
docker build -t gitea.nerdboden.de/thefurya/nuzlocke-tracker-frontend:latest ./frontend
docker push gitea.nerdboden.de/thefurya/nuzlocke-tracker-api:latest
docker push gitea.nerdboden.de/thefurya/nuzlocke-tracker-frontend:latest
# 3. On Unraid (or via Portainer): pull and restart
docker compose -f docker-compose.prod.yml pull