Sign inSign up

teamplanner21/team-planner-frontend

By teamplanner21

•Updated about 1 month ago

Web UI for Team Planner, self-hosted on-call/capacity planning. Pair with team-planner-backend.

Image
0

263

teamplanner21/team-planner-frontend repository overview

⁠Team Planner — Frontend

The web UI for Team Planner, a self-hosted team availability, capacity-planning, and on-call/alerting platform. Static React SPA served by Nginx, which also proxies /team-planner/api/* to the backend.

This image is one half of a two-container app. It needs the companion teamplanner21/team-planner-backend⁠ image (plus a PostgreSQL database) — it isn't meant to run standalone.

šŸ“– Full step-by-step installation guide⁠ — Docker Compose trial and production Kubernetes/Helm, plus the first-login setup wizard walkthrough. The quick start below is the short version.

⁠Quick start (Docker Compose)

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: planner
      POSTGRES_USER: planner
      POSTGRES_PASSWORD: planner

  backend:
    image: teamplanner21/team-planner-backend:latest
    environment:
      DATABASE_URL: postgresql://planner:planner@db:5432/planner
      APP_SESSION_SECRET: change-me-to-a-long-random-string
      LOCAL_ADMIN_PASSWORD: change-me
      APP_BASE_URL: http://localhost:8080/team-planner/
    ports:
      - "8000:8000"
    depends_on:
      - db

  frontend:
    image: teamplanner21/team-planner-frontend:latest
    ports:
      - "8080:8080"
    depends_on:
      - backend

Then open http://localhost:8080/team-planner/⁠ — log in as admin with whatever you set LOCAL_ADMIN_PASSWORD to.

Mounted at a different path than /team-planner/? Rebuild with --build-arg VITE_BASE_PATH=/your-path/, or just use the image as-is behind a reverse proxy stripping to that prefix.

⁠Kubernetes (production)

Use the official Helm chart — installs this image, the backend, and PostgreSQL together with sane defaults, ingress/Istio support, auto-generated secrets, and horizontal scaling:

https://github.com/alpyanar82/team-planner-helm⁠

git clone https://github.com/alpyanar82/team-planner-helm
cd team-planner-helm
cp values.example.yaml my-values.yaml   # edit: hostname, company name
helm install team-planner . -f my-values.yaml --namespace team-planner --create-namespace

⁠What's new in 1.2.0

  • Vendors — track the people in your delivery teams who aren't in your corporate directory. An HRIS only knows who's on the payroll and a directory sync only knows who was provisioned, so nothing could answer "is the supplier's engineer in tomorrow". Each person now has an employment type (Employee / Contractor / Vendor), vendors are managed under Admin > Vendors, and a Vendors page shows per-supplier availability: who's around today, who's away, what's coming in the next two weeks, and which teams they sit in. External people carry a badge on the calendar grid. Employment type is never written or cleared by a directory sync, so a vendor you add by hand survives the nightly run. Bulk onboarding works through the users CSV import (employmentType / vendorName).
  • Half-day leave, simplified — the entry pop-up asks for a start date, First half / Second half, and a total number of days (0.5 steps). The end date is derived and shown back, skipping weekends and your country's public holidays, along with how many days get deducted.
  • Search finds teams — the header search box now matches team names as well as people; picking a team opens its calendar.
  • Fix — people on Parental leave, Maternity leave or Outlook Out-of-Office were missing from the Teams daily digest even though capacity already counted them as unavailable.

⁠Upgrading to 1.2.0

This release includes a database change applied by the backend image. See teamplanner21/team-planner-backend⁠ for the one-line migration step; the frontend itself needs nothing beyond pulling the new tag.

⁠Full source & docs

Application source, environment variable reference, and architecture docs: https://github.com/alpyanar82/team-planner⁠

⁠Tags

  • latest, 1.2.0 — current stable release.
  • 1.1.0, 1.0.0 — previous releases.

Tag summary

Content type

Image

Digest

sha256:e50ef6072…

Size

21.6 MB

Last updated

about 1 month ago

docker pull teamplanner21/team-planner-frontend