Add deployment strategy child task beans
Split the deployment strategy epic into 11 individual task beans with blocking dependencies. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
15
.beans/nuzlocke-tracker-3c9l--set-up-branching-structure.md
Normal file
15
.beans/nuzlocke-tracker-3c9l--set-up-branching-structure.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-3c9l
|
||||||
|
title: Set up branching structure
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:35Z
|
||||||
|
updated_at: 2026-02-09T15:30:35Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Create the `develop` branch from `main` and establish the `main`/`develop`/`feature/*` branching workflow.
|
||||||
|
|
||||||
|
- Create `develop` branch from current `main`
|
||||||
|
- Push `develop` to remote
|
||||||
|
- Set `develop` as the default working branch
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-3lfw
|
||||||
|
title: Configure Nginx Proxy Manager for nuzlocke-tracker
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
priority: normal
|
||||||
|
created_at: 2026-02-09T15:30:50Z
|
||||||
|
updated_at: 2026-02-09T15:31:15Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
blocking:
|
||||||
|
- nuzlocke-tracker-vpn5
|
||||||
|
---
|
||||||
|
|
||||||
|
Add a proxy host entry in Nginx Proxy Manager on Unraid to route LAN traffic to the app.
|
||||||
|
|
||||||
|
- Add a proxy host (e.g., `nuzlocke.local`) pointing to the frontend/API containers
|
||||||
|
- Configure appropriate ports and forwarding rules
|
||||||
|
- Test access from other devices on the LAN
|
||||||
16
.beans/nuzlocke-tracker-48ds--database-backup-strategy.md
Normal file
16
.beans/nuzlocke-tracker-48ds--database-backup-strategy.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-48ds
|
||||||
|
title: Database backup strategy
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:55Z
|
||||||
|
updated_at: 2026-02-09T15:30:55Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Set up a simple scheduled backup for the production PostgreSQL database.
|
||||||
|
|
||||||
|
- Create a backup script using `pg_dump` that runs inside or against the PostgreSQL container
|
||||||
|
- Set up a cron job on Unraid to run the backup on a schedule (e.g., daily)
|
||||||
|
- Store backups in a designated location on Unraid with rotation (keep last N backups)
|
||||||
|
- Document the restore procedure
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-765i
|
||||||
|
title: Update CLAUDE.md with branching rules
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
priority: normal
|
||||||
|
created_at: 2026-02-09T15:30:38Z
|
||||||
|
updated_at: 2026-02-09T15:31:15Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
blocking:
|
||||||
|
- nuzlocke-tracker-3c9l
|
||||||
|
---
|
||||||
|
|
||||||
|
Once the branching structure is in place, add instructions to CLAUDE.md enforcing the branching strategy:
|
||||||
|
|
||||||
|
- Never commit directly to `main`
|
||||||
|
- Day-to-day work happens on `develop`
|
||||||
|
- New work is done on `feature/*` branches off `develop`
|
||||||
|
- Merge flow: `feature/*` → `develop` → `main`
|
||||||
|
- `main` is always production-ready
|
||||||
24
.beans/nuzlocke-tracker-aiw6--create-deploy-script.md
Normal file
24
.beans/nuzlocke-tracker-aiw6--create-deploy-script.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-aiw6
|
||||||
|
title: Create deploy script
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
priority: normal
|
||||||
|
created_at: 2026-02-09T15:30:48Z
|
||||||
|
updated_at: 2026-02-09T15:31:15Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
blocking:
|
||||||
|
- nuzlocke-tracker-izf6
|
||||||
|
- nuzlocke-tracker-vpn5
|
||||||
|
- nuzlocke-tracker-xmyh
|
||||||
|
- nuzlocke-tracker-jzqz
|
||||||
|
---
|
||||||
|
|
||||||
|
Create a `./deploy.sh` script for the dev machine that automates the full deployment flow.
|
||||||
|
|
||||||
|
- Ensure the script runs from `main` branch (or warns if not)
|
||||||
|
- Build Docker images for API and frontend
|
||||||
|
- Tag images for the local registry (e.g., `unraid:5000/nuzlocke-api:latest`)
|
||||||
|
- Push images to the local registry
|
||||||
|
- Trigger the Portainer webhook to redeploy the stack
|
||||||
|
- Print status/confirmation of each step
|
||||||
16
.beans/nuzlocke-tracker-hwyk--set-up-portainer-on-unraid.md
Normal file
16
.beans/nuzlocke-tracker-hwyk--set-up-portainer-on-unraid.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-hwyk
|
||||||
|
title: Set up Portainer on Unraid
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:44Z
|
||||||
|
updated_at: 2026-02-09T15:30:44Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Install Portainer CE on the Unraid server for container/stack management.
|
||||||
|
|
||||||
|
- Run Portainer CE as a Docker container on Unraid
|
||||||
|
- Configure it to manage the local Docker environment
|
||||||
|
- Import/create a stack from the production docker-compose file
|
||||||
|
- Verify the stack can be deployed and managed through the Portainer UI
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-izf6
|
||||||
|
title: Set up local Docker registry on Unraid
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:40Z
|
||||||
|
updated_at: 2026-02-09T15:30:40Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Run a `registry:2` container on the Unraid server for storing production Docker images locally.
|
||||||
|
|
||||||
|
- Run `registry:2` as a Docker container on Unraid
|
||||||
|
- Configure a persistent storage volume for the registry data
|
||||||
|
- Optionally put it behind Nginx Proxy Manager with a hostname (e.g., `registry.local`)
|
||||||
|
- Verify pushing/pulling images from the dev machine works
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-jzqz
|
||||||
|
title: Configure Portainer webhook for automated redeployment
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
priority: normal
|
||||||
|
created_at: 2026-02-09T15:30:45Z
|
||||||
|
updated_at: 2026-02-09T15:31:15Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
blocking:
|
||||||
|
- nuzlocke-tracker-hwyk
|
||||||
|
---
|
||||||
|
|
||||||
|
Set up a webhook in Portainer that triggers a stack redeployment when called.
|
||||||
|
|
||||||
|
- Create a webhook trigger in Portainer for the nuzlocke-tracker stack
|
||||||
|
- The webhook should pull the latest images from the local registry and restart the stack
|
||||||
|
- Note the webhook URL for use in the deploy script
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-re0m
|
||||||
|
title: Document the deployment workflow
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
priority: normal
|
||||||
|
created_at: 2026-02-09T15:30:57Z
|
||||||
|
updated_at: 2026-02-09T15:31:15Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
blocking:
|
||||||
|
- nuzlocke-tracker-aiw6
|
||||||
|
- nuzlocke-tracker-3lfw
|
||||||
|
- nuzlocke-tracker-up0b
|
||||||
|
- nuzlocke-tracker-48ds
|
||||||
|
---
|
||||||
|
|
||||||
|
Write documentation covering the full deployment setup and workflows.
|
||||||
|
|
||||||
|
- How to deploy (run `./deploy.sh`)
|
||||||
|
- How to redeploy after changes
|
||||||
|
- How to rollback to a previous version
|
||||||
|
- How to manage the production instance (Portainer UI, logs, etc.)
|
||||||
|
- How to set up the production environment from scratch (registry, Portainer, NPM, secrets)
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-up0b
|
||||||
|
title: Environment and secrets management
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:52Z
|
||||||
|
updated_at: 2026-02-09T15:30:52Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Set up production environment variable and secrets management.
|
||||||
|
|
||||||
|
- Create a `.env.prod.example` template documenting all required variables
|
||||||
|
- Decide on secret handling approach (`.env` file on Unraid, Portainer environment variables, etc.)
|
||||||
|
- Ensure secrets are not committed to the repository (update `.gitignore` if needed)
|
||||||
|
- Document how to set up secrets on a fresh Unraid deployment
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-vpn5
|
||||||
|
title: Create production docker-compose file
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:41Z
|
||||||
|
updated_at: 2026-02-09T15:30:41Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Create `docker-compose.prod.yml` for the Unraid production deployment.
|
||||||
|
|
||||||
|
- Reference pre-built images from the local Docker registry (not source volume mounts)
|
||||||
|
- Set production environment variables (DEBUG=false, proper DATABASE_URL, etc.)
|
||||||
|
- Proper restart policies (`unless-stopped` or `always`)
|
||||||
|
- No source code volume mounts — only data volumes (e.g., postgres_data)
|
||||||
|
- PostgreSQL with persistent named volume
|
||||||
|
- Appropriate port mappings for the production environment
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# nuzlocke-tracker-xmyh
|
||||||
|
title: Create production Dockerfiles
|
||||||
|
status: todo
|
||||||
|
type: task
|
||||||
|
created_at: 2026-02-09T15:30:42Z
|
||||||
|
updated_at: 2026-02-09T15:30:42Z
|
||||||
|
parent: nuzlocke-tracker-ahza
|
||||||
|
---
|
||||||
|
|
||||||
|
Create or adapt Dockerfiles for production builds (multi-stage where appropriate).
|
||||||
|
|
||||||
|
- **Frontend:** Build the Vite app and serve statically (e.g., via a lightweight nginx container or bundled into the API)
|
||||||
|
- **API:** Run without debug mode, ensure Alembic migrations run on startup
|
||||||
|
- Consider multi-stage builds to keep image sizes small
|
||||||
|
- Ensure the images work when pulled from the local registry
|
||||||
Reference in New Issue
Block a user