diff --git a/docs/core/tasks.md b/docs/core/tasks.md index 5f7f5f0..295ba0c 100644 --- a/docs/core/tasks.md +++ b/docs/core/tasks.md @@ -2452,3 +2452,34 @@ Multi-step form that guides Chroniclers through writing memorials following FFG- --- +## 🔧 TIER 5: INFRASTRUCTURE CLEANUP + +Maintenance tasks for keeping infrastructure lean and efficient. + +--- + +### 82. Decommission Plane Project Management +**Time:** 30 minutes +**Status:** 🟡 PENDING +**Priority:** Tier 5 — Infrastructure Cleanup +**Documentation:** `docs/tasks/plane-decommissioning/` + +Remove Plane project management system from TX1 Dallas. Plane worked technically but didn't fit workflow. Team switched to Gitea's built-in Kanban project boards instead. + +**Key Deliverables:** +- Stop and remove Plane Docker containers on TX1 +- Remove Nginx configuration for tasks.firefrostgaming.com +- Delete /opt/plane/ directory and volumes +- Remove or repurpose DNS record (tasks.firefrostgaming.com) +- Archive n8n Plane workflows +- Update infrastructure-manifest.md to remove Plane + +**Dependencies:** +- Confirm Gitea Kanban projects are working (already in use) +- Backup Plane data if needed (optional) + +**Context:** +Plane v2.4.2 was deployed with 5 projects, member invites, and Fire/Frost labels. Gitea↔Plane sync via n8n had webhook loop issues. Gitea Projects proved simpler and more aligned with team workflow. + +--- + diff --git a/docs/tasks/plane-decommissioning/README.md b/docs/tasks/plane-decommissioning/README.md new file mode 100644 index 0000000..6d5bcca --- /dev/null +++ b/docs/tasks/plane-decommissioning/README.md @@ -0,0 +1,179 @@ +# Task #82: Decommission Plane Project Management + +**Created:** March 26, 2026 +**Status:** 🟡 PENDING +**Priority:** Medium +**Time Estimate:** 30 minutes +**Assigned To:** Next Chronicler + +--- + +## Overview + +Remove Plane project management system from TX1 Dallas server. Plane was successfully deployed but did not fit Firefrost's workflow. Team switched to Gitea's built-in Kanban project boards instead. + +**Decision Context:** +- Plane worked technically (5 projects created, members invited, labels configured) +- Gitea↔Plane sync via n8n had issues (webhook loop crash) +- Gitea Kanban projects proved to be better fit for team workflow +- Plane adds unnecessary complexity and resource usage + +--- + +## What Was Plane? + +**Deployment Details:** +- **Location:** TX1 Dallas (38.68.14.26) +- **URL:** tasks.firefrostgaming.com +- **Port:** 8090 (proxied via Nginx) +- **Version:** Plane v2.4.2 (self-hosted) +- **Installation Path:** `/opt/plane/` + +**What Was Created:** +- 5 projects: Infrastructure, Community, Content, Builds, Operations +- 14 labels in Fire/Frost brand colors +- Meg and Holly invited as members +- Workspace: `firefrost-tasks` + +**Integration Attempts:** +- n8n workflow: Gitea issue → Plane task (working) +- n8n workflow: Plane → Gitea (webhook loop, deactivated) + +--- + +## Decommissioning Steps + +### Step 1: Stop Plane Services + +SSH to TX1: +```bash +ssh root@38.68.14.26 +cd /opt/plane +docker-compose ps +docker-compose down +``` + +### Step 2: Remove Nginx Configuration + +```bash +rm /etc/nginx/sites-enabled/plane +rm /etc/nginx/sites-available/plane +nginx -t && systemctl reload nginx +``` + +### Step 3: Backup Data (Optional) + +If you want to preserve Plane data before deletion: +```bash +cd /opt/plane +tar -czf /root/plane-backup-$(date +%Y%m%d).tar.gz volumes/ +``` + +### Step 4: Remove Plane Installation + +**CAUTION:** This permanently deletes all Plane data. + +```bash +cd /opt/plane +docker-compose down -v # Removes containers AND volumes +cd /opt +rm -rf plane/ +``` + +### Step 5: Remove DNS Record + +**Option A:** Remove `tasks.firefrostgaming.com` DNS A record entirely + +**Option B:** Repurpose subdomain for something else (decide before removing) + +### Step 6: Remove n8n Workflows + +Check n8n for Plane-related workflows: +- "Gitea Issue → Plane Task" (was working, now obsolete) +- "Plane Task → Gitea Issue" (was deactivated due to webhook loop) + +Delete or archive these workflows. + +--- + +## Documentation Updates + +Update these files after decommissioning: + +1. **docs/core/infrastructure-manifest.md** + - Remove Plane from TX1 service list + - Update port 8090 status to "available" + +2. **docs/core/tasks.md** + - Mark this task as COMPLETE + - Remove any Plane-related tasks + +3. **SESSION-HANDOFF-NEXT.md** + - Remove Plane references from pending items + +4. **docs/tasks/gitea-plane-integration/** + - Mark directory as ABANDONED + - Add README explaining why integration was abandoned + +--- + +## Verification + +After decommissioning, verify: + +- [ ] `docker ps` on TX1 shows no Plane containers +- [ ] `https://tasks.firefrostgaming.com` returns connection error (or redirects if repurposed) +- [ ] Port 8090 freed up: `netstat -tulpn | grep 8090` returns nothing +- [ ] `/opt/plane/` directory removed +- [ ] Nginx config removed: `ls /etc/nginx/sites-*/ | grep plane` returns nothing +- [ ] n8n workflows archived or deleted +- [ ] Documentation updated + +--- + +## Why Plane Didn't Fit + +**Technical Success:** +- Deployment worked +- Projects created successfully +- Member invites sent +- Labels configured + +**Workflow Mismatch:** +- Gitea's built-in Kanban boards proved simpler +- n8n sync integration was fragile (webhook loops) +- Added complexity without clear benefit +- Team already comfortable with Gitea workflow + +**Decision:** Simplify stack, use Gitea Projects exclusively. + +--- + +## What Replaces Plane? + +**Gitea Projects (Kanban Boards):** +- Native to our existing Git workflow +- No additional infrastructure +- No sync complexity +- Familiar interface for team +- Integrated with issues/PRs + +--- + +## Related Tasks + +- Task #54: n8n Workflow Documentation (update to remove Plane workflows) +- None currently (Plane was isolated experiment) + +--- + +## Notes + +- Plane data is not mission-critical (project tracking can be recreated in Gitea) +- No external dependencies to notify (internal tool only) +- DNS change may take 24-48 hours to propagate +- Consider what to do with `tasks.firefrostgaming.com` subdomain + +--- + +**Standard:** This task follows FFG-STD-002 (Task Documentation Standard)