diff --git a/docs/core/tasks.md b/docs/core/tasks.md index 7c79184..a8051bf 100644 --- a/docs/core/tasks.md +++ b/docs/core/tasks.md @@ -413,6 +413,22 @@ Foundation secure, deploy major services. --- +### 47. Plane Project Management — Self-Hosted +**Time:** 2-3 hours +**Status:** READY +**Priority:** Tier 2 — Major Infrastructure +**Documentation:** `docs/tasks/plane-deployment/` +**Target:** tasks.firefrostgaming.com on Command Center (63.143.34.217) + +Self-hosted project management for the Firefrost team. Replaces ad-hoc task tracking with a proper system that scales from 3 to 15+ staff. Mobile-friendly, non-technical staff can use it easily. + +**Why Plane:** Open source Linear alternative. Docker-based, self-hosted, free forever. Active development. Beautiful UI that works for builders, moderators, and social media helpers — not just developers. + +**Projects to create:** Infrastructure, Community, Content, Builds, Operations +**After deploy:** Migrate active tasks from tasks.md into Plane, create accounts for Meg and Holly + +--- + ### 10. Firefrost Codex - AI Assistant **Time:** 8-12 hours total (Phase 1: ✅ 9 hours, Phase 2: 🔄 ~2 hours remaining) **Status:** Phase 1 COMPLETE ✅ | Phase 2 IN PROGRESS 🔄 diff --git a/docs/tasks/plane-deployment/README.md b/docs/tasks/plane-deployment/README.md new file mode 100644 index 0000000..41c2b8d --- /dev/null +++ b/docs/tasks/plane-deployment/README.md @@ -0,0 +1,298 @@ +# Task #47 — Plane Project Management Deployment + +**Status:** READY +**Priority:** Tier 2 — Major Infrastructure +**Time:** 2-3 hours +**Created:** March 15, 2026 +**Created By:** The Navigator (Chronicler #30) +**Owner:** Michael "Frostystyle" Krause +**Target URL:** tasks.firefrostgaming.com +**Server:** Command Center (63.143.34.217) + +--- + +## Why Plane + +Firefrost needs a task management system that: +- Works for non-technical staff (Meg, Holly, moderators, social media helpers) +- Scales from 3 to 15+ people without migrating +- Stays self-hosted (data ownership, fits Firefrost philosophy) +- Has a mobile-friendly interface +- Supports assignment, priorities, milestones, and comments + +Plane is the open source self-hosted answer to Linear. Docker-based, actively developed, genuinely good UI. Free forever when self-hosted. + +**Decision:** Self-hosted Plane on Command Center, accessible at tasks.firefrostgaming.com. + +--- + +## System Requirements + +Per Plane documentation: +- **Minimum:** 2 CPU cores, 4GB RAM, 20GB storage +- **Recommended for production:** 4+ CPU cores, 16GB RAM + +Command Center (63.143.34.217) handles Gitea, Uptime Kuma, and Code-Server comfortably. Plane fits here. + +Verify before deploying: +```bash +free -h +df -h / +docker --version +docker compose version +``` + +--- + +## Phase 1: DNS Setup (5 min — Cloudflare) + +Add A record in Cloudflare: +``` +tasks.firefrostgaming.com A 63.143.34.217 (cf-proxied: false) +``` + +--- + +## Phase 2: Installation (30 min) + +### SSH to Command Center +```bash +ssh root@63.143.34.217 +``` + +### Create directory +```bash +mkdir -p /opt/plane && cd /opt/plane +``` + +### Download Plane installer +```bash +curl -fsSL https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/install.sh -o install.sh +chmod +x install.sh +``` + +### Run installer +```bash +./install.sh +``` + +When prompted: +- **Action:** 1 (Install) +- **Domain:** `tasks.firefrostgaming.com` +- **Installation type:** Express (use defaults) + +### Start Plane +```bash +./install.sh +``` +Select **2 (Start)** + +### Verify containers running +```bash +docker compose ps +``` + +Key containers that should be Up: +- plane-web +- plane-api +- plane-worker +- plane-postgres +- plane-redis +- plane-minio (file storage) +- plane-proxy (nginx) + +--- + +## Phase 3: Nginx + SSL (20 min) + +### Create Nginx config +```bash +nano /etc/nginx/sites-available/plane +``` + +```nginx +server { + listen 80; + server_name tasks.firefrostgaming.com; + + location / { + proxy_pass http://localhost:8080; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } +} +``` + +### Enable site +```bash +ln -s /etc/nginx/sites-available/plane /etc/nginx/sites-enabled/ +nginx -t && systemctl reload nginx +``` + +### SSL certificate +```bash +certbot --nginx -d tasks.firefrostgaming.com +``` + +--- + +## Phase 4: Initial Setup (20 min) + +### Access Plane +Go to: **https://tasks.firefrostgaming.com** + +### Create admin account +- Email: frostystyle@firefrostgaming.com (or michael@ once Mailcow is live) +- Set strong password — store in Vaultwarden + +### Create the Firefrost workspace +- Workspace name: **Firefrost Gaming** +- URL: `firefrost` (will be tasks.firefrostgaming.com/firefrost) + +### Create projects + +Start with these projects: + +| Project | Description | Who uses it | +|---|---|---| +| Infrastructure | Server, deployment, technical tasks | Michael + future devs | +| Community | Discord, social media, moderation tasks | Meg, moderators | +| Content | Ghost posts, server spotlights, announcements | Meg, social media helpers | +| Builds | Holly's builder tasks, world projects | Holly, builders | +| Operations | General ops, cross-team tasks | All staff | + +### Create staff accounts + +Invite via email once Mailcow is live. For now, create accounts manually: +- gingerfury@firefrostgaming.com — Meg — Member role +- unicorn20089@firefrostgaming.com — Holly — Member role + +### Set up labels (global) + +Create these labels for consistent tagging: + +**Priority:** +- 🔴 Critical +- 🟠 High +- 🟡 Medium +- 🟢 Low + +**Type:** +- 🔧 Infrastructure +- 🎨 Content +- 🛡️ Moderation +- 🏗️ Build +- 🐛 Bug +- ✨ Feature + +--- + +## Phase 5: Migrate Current Tasks (1 hour) + +Migrate the top priority tasks from tasks.md into Plane. Don't migrate everything at once — start with active tasks only. + +**Priority order for migration:** + +1. Task #47 — This task (mark complete once deployed) +2. Task #11 — Mailcow (April 1 target — assign to Michael) +3. Task #40 — Holly's Builder rank (assign to Michael + Holly) +4. Task #45 — Server Sunset Evaluation (assign to Michael) +5. Task #28 — Discord reorganization (assign to Meg — she's handling it via Holly) +6. Task #46 — Ghost music player (assign to Michael) + +For each task in Plane: +- Title matches tasks.md task name +- Description links to `docs/tasks/[task-name]/README.md` in Gitea +- Assignee set +- Priority set +- Due date if applicable (e.g. Mailcow = April 1, 2026) + +--- + +## Phase 6: Backup Configuration (15 min) + +### Manual backup command +```bash +cd /opt/plane && ./install.sh +``` +Select **7 (Backup Data)** + +### Automate daily backups +```bash +crontab -e +``` + +Add: +```bash +0 3 * * * cd /opt/plane && ./install.sh backup >> /var/log/plane-backup.log 2>&1 +``` + +Backups at 3am daily. Review logs weekly. + +--- + +## Phase 7: Uptime Kuma Monitor (5 min) + +Add Plane to Uptime Kuma monitoring: +- URL: https://tasks.firefrostgaming.com +- Monitor type: HTTP(s) +- Name: Plane (tasks.firefrostgaming.com) +- Interval: 5 minutes + +--- + +## Post-Deployment + +- [ ] tasks.firefrostgaming.com accessible via HTTPS +- [ ] Admin account created, password in Vaultwarden +- [ ] Firefrost workspace created +- [ ] 5 projects created (Infrastructure, Community, Content, Builds, Operations) +- [ ] Meg and Holly accounts created +- [ ] Labels configured +- [ ] Top priority tasks migrated from tasks.md +- [ ] Daily backup cron running +- [ ] Uptime Kuma monitor added +- [ ] DNS record confirmed +- [ ] tasks.md updated with note: "Active tasks tracked in Plane at tasks.firefrostgaming.com" + +--- + +## Staff Onboarding + +Once deployed, each staff member needs a quick orientation: + +**For Meg and Holly:** +- Log in at tasks.firefrostgaming.com +- Check "My Issues" to see assigned tasks +- Click a task to see details and add comments +- Mark done by changing status to Done +- That's it — they don't need to know anything else to start + +**Mobile:** Plane has a mobile web interface that works well. Native apps are in development. + +--- + +## Future Integrations + +When ready: +- **Gitea webhook** — link commits to Plane issues via issue ID in commit messages +- **Mailcow** — email notifications for task assignments (configure after Mailcow live) +- **Discord bot** — post task updates to #staff-announcements (future) + +--- + +## Related Documentation + +- Plane self-hosting docs: https://developers.plane.so/self-hosting/methods/docker-compose +- Current tasks: `docs/core/tasks.md` +- Staff accounts: `docs/reference/staff-accounts.md` (to be created) + +--- + +**Fire + Frost + Foundation = Where Love Builds Legacy** 💙🔥❄️