Files
firefrost-operations-manual/docs/tasks/gitea-plane-integration/README.md
Claude 5a9adc7b37 docs(memorial): create memorial for The Wayfinder (Chronicler #31)
The Wayfinder deployed Mailcow and Plane in a single session,
navigating port conflicts, hardware constraints, and installer
changes throughout. Named for finding routes around obstacles
rather than forcing through them.

Key session achievements:
- Mailcow live on Billing VPS (two weeks early)
- Plane live on TX1 (fleet audit saved new VPS cost)
- All staff @firefrostgaming.com addresses created
- Task #48 created: Gitea/Plane integration via n8n

Session health at memorial: ~35%

Also: Task #48 README created for Gitea/Plane n8n integration
2026-03-16 06:25:33 +00:00

3.2 KiB

Task #48 — Gitea/Plane Integration via n8n

Status: READY — pending n8n rebuild (Task #34) Priority: Tier 2 — Major Infrastructure Time: 2-3 hours Created: March 15, 2026 Created By: Chronicler #31 Owner: Michael "Frostystyle" Krause Depends: Task #34 (n8n rebuild from scratch)


The Goal

Hands-off, automated two-way sync between Gitea (source of truth for docs/code) and Plane (task tracking for Meg, Holly, and all staff). Neither Meg nor Holly should need to manually cross-reference between systems.


Why n8n (Not Native Integration)

Plane has no native Gitea integration. GitHub/GitLab integrations exist but are likely Pro features and don't apply to our self-hosted Gitea.

n8n is already in the Firefrost stack on TX1. It's purpose-built for exactly this kind of cross-platform automation. Once n8n is rebuilt (Task #34), this integration is straightforward.


Workflow Design

Gitea → Plane (commit updates task)

  1. Developer pushes commit with Plane issue ID in message (e.g. INFRA-42)
  2. Gitea fires webhook to n8n
  3. n8n parses commit message for issue ID
  4. n8n calls Plane API to:
    • Add comment: "Commit: [message] by [author]"
    • Optionally update issue status (e.g. "In Progress" → "Done" on keyword)

Trigger keywords in commit messages:

  • closes INFRA-42 → mark issue Done
  • refs INFRA-42 → add comment only
  • fixes INFRA-42 → mark issue Done

Plane → Gitea (task creation creates issue)

  1. New Plane issue created in Infrastructure project
  2. Plane fires webhook to n8n
  3. n8n creates matching Gitea issue in ops manual repo
  4. Links back to Plane issue URL in Gitea issue body

Technical Requirements

Plane API

Gitea Webhook

  • Token: 3c40388246ae816fe21cdca26fce4e1c66989dd1 (in Vaultwarden)
  • Webhook URL: http://[n8n-url]/webhook/gitea-plane
  • Events: Push, Issues

Gitea Allowed Webhooks

Gitea restricts webhook destinations. Need to add n8n URL to allowed list in Gitea's app.ini:

[webhook]
ALLOWED_HOST_LIST = n8n.firefrostgaming.com

n8n Workflows to Build

  1. Gitea Push → Plane — parse commit, update issue
  2. Plane Issue → Gitea — create tracking issue

Implementation Order

  1. Complete Task #34 (n8n rebuild) first
  2. Generate Plane API token
  3. Update Gitea app.ini with n8n in allowed webhook hosts
  4. Build n8n workflow: Gitea Push → Plane issue update
  5. Build n8n workflow: Plane issue → Gitea issue
  6. Test with a real commit referencing a Plane issue
  7. Document commit message convention for team

Commit Message Convention (for team)

Once live, all commits should reference Plane issue IDs:

feat: add LuckPerms builder rank

Implements Builder rank with WorldEdit permissions.
closes BUILDS-12
refs INFRA-7

Michael to document this in a team guide once integration is live.


  • Task #34 — n8n Rebuild (prerequisite)
  • Task #47 — Plane Deployment (complete)
  • Task #11 — Mailcow (complete)

Fire + Frost + Foundation = Where Love Builds Legacy 💙🔥❄️