Skip to main content

Infrastructure Overview

SchedKit runs as a single Fastify service with opinionated dependencies. This page is the quick tour you can point to during demos when somebody asks “what’s under the hood?”

Stack at a Glance

Messaging & Notification Flow

  • Email branding pulls directly from the ticket’s org (ticket_subject_template, ticket_from_prefix).
  • Hosts get SchedKit-INC# style from-names so Outlook/Gmail show the ticket number even if the subject is truncated.
  • ntfy topics live at https://ntfy.sh/p7n-cloudron-monitor for incidents, schedkit-leads for sales intel.

Data Flow (Signals → Incident → Assignment)

Key takeaways for demos:
  • Everything is org-scoped. Even SSE registrations are bucketed by org ID.
  • Same APIs the dashboard uses — no hidden admin endpoints.
  • Book / Ticket symmetry: an alert can open a ticket and pre-book a follow-up event using the same API key.

Deployment Pipeline

  • deploy.sh also writes .git-sha for version reporting (GET /version).
  • No manual SSH restarts. If it’s not in Git, it’s not deployed.

Demo Script Pointers

  1. Show Swagger: https://schedkit.net/docs proves every route is public.
  2. Trigger an alert: curl POST /v1/tickets with priority:"urgent" → watch Mailjet + SSE + ntfy fire simultaneously.
  3. Toggle org branding: update org settings → resend ticket email → Outlook/Gmail now show custom subject + from name.
  4. Book a team event: POST /book/:org/:team/:event auto-rotates assignees via team.routing.
Having this page handy during demos answers the inevitable “what stack is this” question in under 30 seconds.