plane: Plane (self-hosted projektledning) på plane.kobbo.se #125

Merged
znibb merged 1 commit from develop into main 2026-09-29 07:46:30 +00:00
Owner

Lägger till Plane CE (makeplane/plane v1.4.2) som IaC i kubernetes/apps/plane/.

Vad

  • Frontends: plane-web, plane-space (/spaces), plane-admin (/god-mode), plane-live (realtid).
  • Backend: plane-api (Django) samt plane-worker/plane-beat-worker (celery). Migreringar körs som migrate-initContainer på plane-api; worker/beat väntar själva via wait_for_migrations.
  • Datastore: Postgres 15.7, Redis 8, RabbitMQ 3.13 och MinIO (S3 för uppladdningar) — en replika vardera på nfs-csi.
  • Ingress: plane-proxy (upstreams egen Caddy-image) äger path-routingen (/spaces, /god-mode, /live, /api, /auth, /static, /uploads); Traefik har en enda IngressRoute mot plane-proxy:80 med X-Forwarded-Proto: https.
  • Config: icke-hemlig konfig i ConfigMap plane-config, lösenord/nycklar i SOPS-krypterad plane-secret.
  • Docs: docs/plane.md, plus scripts/plane-apply.sh för pre-merge-verifiering.

Efter merge (manuellt)

  • DNS/Pangolin: resource plane.kobbo.se → 10.8.40.200:80.
  • Första admin: registrera ett konto i UI:t och kör sedan
    kubectl -n plane exec deploy/plane-api -- python manage.py create_instance_admin <e-post>,
    logga därefter in på https://plane.kobbo.se/god-mode.

Verifierat

  • kustomize build kubernetes/apps och kustomize build kubernetes/apps/plane går igenom.
  • kubeconform -strict -ignore-missing-schemas: 0 fel (SOPS-metadatan i secret.enc.yaml rapporteras som "invalid" precis som för repots övriga secrets).
  • Alla image-taggar finns och är multi-arch (amd64 + arm64).

Att tänka på

  • Registreringen är öppen — lägg på Pangolin-SSO eller begränsa resursen.
  • Backuper för plane-db och plane-minio saknas; issue #7 (delad pg_dump → S3) är en naturlig uppföljning.
Lägger till Plane CE (`makeplane/plane` v1.4.2) som IaC i `kubernetes/apps/plane/`. ## Vad - **Frontends:** `plane-web`, `plane-space` (`/spaces`), `plane-admin` (`/god-mode`), `plane-live` (realtid). - **Backend:** `plane-api` (Django) samt `plane-worker`/`plane-beat-worker` (celery). Migreringar körs som `migrate`-initContainer på `plane-api`; worker/beat väntar själva via `wait_for_migrations`. - **Datastore:** Postgres 15.7, Redis 8, RabbitMQ 3.13 och MinIO (S3 för uppladdningar) — en replika vardera på `nfs-csi`. - **Ingress:** `plane-proxy` (upstreams egen Caddy-image) äger path-routingen (`/spaces`, `/god-mode`, `/live`, `/api`, `/auth`, `/static`, `/uploads`); Traefik har en enda `IngressRoute` mot `plane-proxy:80` med `X-Forwarded-Proto: https`. - **Config:** icke-hemlig konfig i ConfigMap `plane-config`, lösenord/nycklar i SOPS-krypterad `plane-secret`. - Docs: `docs/plane.md`, plus `scripts/plane-apply.sh` för pre-merge-verifiering. ## Efter merge (manuellt) - **DNS/Pangolin:** resource `plane.kobbo.se` → `10.8.40.200:80`. - **Första admin:** registrera ett konto i UI:t och kör sedan `kubectl -n plane exec deploy/plane-api -- python manage.py create_instance_admin <e-post>`, logga därefter in på `https://plane.kobbo.se/god-mode`. ## Verifierat - `kustomize build kubernetes/apps` och `kustomize build kubernetes/apps/plane` går igenom. - `kubeconform -strict -ignore-missing-schemas`: 0 fel (SOPS-metadatan i `secret.enc.yaml` rapporteras som "invalid" precis som för repots övriga secrets). - Alla image-taggar finns och är multi-arch (amd64 + arm64). ## Att tänka på - Registreringen är öppen — lägg på Pangolin-SSO eller begränsa resursen. - Backuper för `plane-db` och `plane-minio` saknas; issue #7 (delad `pg_dump → S3`) är en naturlig uppföljning.
Ny app i kubernetes/apps/plane/ med makeplane/plane v1.4.2:

- web/space/admin/live (frontends), api (Django) samt worker + beat-worker
  (celery) — migreringar körs som initContainer på plane-api och
  worker/beat väntar själva via wait_for_migrations.
- Dedikerad Postgres 15.7, Redis 8 och RabbitMQ 3.13, plus MinIO för
  uppladdningar. Alla PVC:er på nfs-csi.
- plane-proxy (Caddy) äger path-routingen (/spaces, /god-mode, /live, /api,
  /auth, /static, /uploads) precis som upstreams docker-compose; Traefik
  behöver bara en IngressRoute mot plane-proxy:80.
- Icke-hemlig konfig i ConfigMap plane-config, lösenord/nycklar i
  SOPS-krypterad plane-secret. WEB_URL/CORS_ALLOWED_ORIGINS = https.
- docs/plane.md och scripts/plane-apply.sh (pre-merge-verifiering).

Appliceras med `bash scripts/plane-apply.sh` eller via Flux efter merge till
main.
znibb merged commit 3628537b23 into main 2026-09-29 07:46:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
znibb/kobbo-homelab!125
No description provided.