diff --git a/.beans/nuzlocke-tracker-3lfw--configure-nginx-proxy-manager-for-nuzlocke-tracker.md b/.beans/nuzlocke-tracker-3lfw--configure-nginx-proxy-manager-for-nuzlocke-tracker.md index 12f8e8c..531d04a 100644 --- a/.beans/nuzlocke-tracker-3lfw--configure-nginx-proxy-manager-for-nuzlocke-tracker.md +++ b/.beans/nuzlocke-tracker-3lfw--configure-nginx-proxy-manager-for-nuzlocke-tracker.md @@ -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 diff --git a/.beans/nuzlocke-tracker-ahza--deployment-strategy.md b/.beans/nuzlocke-tracker-ahza--deployment-strategy.md index cf7f321..8cfd0fd 100644 --- a/.beans/nuzlocke-tracker-ahza--deployment-strategy.md +++ b/.beans/nuzlocke-tracker-ahza--deployment-strategy.md @@ -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) diff --git a/.beans/nuzlocke-tracker-aiw6--create-deploy-script.md b/.beans/nuzlocke-tracker-aiw6--create-deploy-script.md index 2f7391e..9d2eb8d 100644 --- a/.beans/nuzlocke-tracker-aiw6--create-deploy-script.md +++ b/.beans/nuzlocke-tracker-aiw6--create-deploy-script.md @@ -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 diff --git a/.beans/nuzlocke-tracker-izf6--set-up-local-docker-registry-on-unraid.md b/.beans/nuzlocke-tracker-izf6--set-up-local-docker-registry-on-unraid.md index dfa6e45..a1e6f87 100644 --- a/.beans/nuzlocke-tracker-izf6--set-up-local-docker-registry-on-unraid.md +++ b/.beans/nuzlocke-tracker-izf6--set-up-local-docker-registry-on-unraid.md @@ -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) \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-jzqz--configure-portainer-webhook-for-automated-redeploy.md b/.beans/nuzlocke-tracker-jzqz--configure-portainer-webhook-for-automated-redeploy.md index ea5c74a..76f09f7 100644 --- a/.beans/nuzlocke-tracker-jzqz--configure-portainer-webhook-for-automated-redeploy.md +++ b/.beans/nuzlocke-tracker-jzqz--configure-portainer-webhook-for-automated-redeploy.md @@ -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 diff --git a/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md b/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md index 8fa1ac2..0cb192b 100644 --- a/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md +++ b/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md @@ -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 --- diff --git a/.beans/nuzlocke-tracker-xmyh--create-production-dockerfiles.md b/.beans/nuzlocke-tracker-xmyh--create-production-dockerfiles.md index 88721fb..8a590e2 100644 --- a/.beans/nuzlocke-tracker-xmyh--create-production-dockerfiles.md +++ b/.beans/nuzlocke-tracker-xmyh--create-production-dockerfiles.md @@ -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 --- diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 9259314..236d6a6 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -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//:`: ``` -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