The technical system behind the public Pub website, in-venue displays, media controls, scheduling, and scoped administration.

Independent product authorization

Pub has its own planning board, repository, operator roster, permissions, Cloudflare Access application, and deployment path. Resident Council systems, House Desk, and Authentik do not grant Pub actions. These docs live on the Affective Technologies IHNYC domain because Pub is a separately stewarded product.

Documentation

AreaStart here
Architecture and data flowArchitecture overview
Routes and response contractsAPI reference
Admin surfaces and permissionsAdmin reference
Deployment and recoveryOperations guide
Room equipment instructionsPub equipment tutorials

What the service covers

One Cloudflare Worker supports the public pages, in-venue screens, weekly tender scheduling, the nightly closing-report log, equipment tutorials, scoped admin tools, Q-SYS audio controls, lighting controls, and the system that identifies music playing in the room.

The I-House Pub home page with serving hours and links to public information and product surfaces I-House Pub public home · July 2026

The project is resident-led and operated by Affective Technologies LLC in partnership with AVI Foodsystems.

Product surfaces

SurfacePurposeAccess
Public websiteServing hours, events, menus, setlists, and public informationPublic
TV and projector viewsIn-venue schedule, announcements, media, and live stateVenue displays
Admin hubScheduling, content, device health, permissions, and audit dataCloudflare Access
Room controlsQ-SYS audio, projector, and lighting integrationScoped operators and venue network
Equipment tutorialsInstructions for using physical Pub equipmentPublic

Administration

Cloudflare Access protects the admin area. The hub at /admin groups work by purpose:

AreaWhat an operator can do
This weekCreate shifts, collect availability, generate assignments, and send the tender schedule
Screens and DJ ModePair TVs, check heartbeats, manage the projector queue, moderate patron uploads and visual requests
TakeoversPut a curated slideshow on the bar TVs for an event, with a hard auto-stop
Pub contentUpdate announcements, specials, equipment tutorials, and visual themes
Floor operationsReview the nightly closing report, act on a warm fridge, and keep the stock catalog
In-venue systemsCheck devices, control audio and lighting, set the quiet curfew, and review the audit timeline
Access and rolesAdd delegated operators and grant only the scheduling, TV, audio, lighting, theme, content, DJ, tutorial, or floor-operations work they need
FeedbackRead, triage, and archive patron suggestions

The admin guide lists every screen and action.

How it fits together

  • worker.js routes requests and renders the public, screen, and admin experiences.
  • D1 stores scheduling, closing reports and stock, setlist, theme, health, feedback, and audit data.
  • R2 stores event media, takeover media, DJ visuals, health records, and mirrored images.
  • A Durable Object coordinates TV identity, pairing, transitions, and the authoritative TV state push.
  • KV stores the editable equipment tutorials, DJ mode state, and lyrics.
  • Cloudflare Images and Stream support visual media.
  • Events come from the Calendar service rather than from Notion.
flowchart LR
  PEOPLE["Patrons and tenders"] --> PUB["Pub Worker"]
  OPERATORS["Pub operators"] -->|Cloudflare Access| PUB
  CAL["I-House Calendar"] -->|"event projection"| PUB
  CHAT["Tenders WhatsApp group"] -->|"nightly closing report"| PUB
  PUB --> SCREENS["Bar TVs and iPad"]
  PUB --> DATA[("D1, R2, and KV")]
  PI["Pub Raspberry Pi"] <--> PUB
  PI <--> AV["Q-SYS, projector, and lighting"]

The Pub Worker verifies each operator’s Access identity, then reads that person’s Pub permissions. The current catalog contains 88 exact keys across operator support, scheduling, TV, audio, lighting, theme, content, DJ, tutorials, floor operations, and system scopes. A full administrator token remains a root path for automation and recovery.

Documentation by system

System or taskStart here
Deploy, configure, or troubleshoot the WorkerOperations
Operate the Pub Raspberry PiPi capture runbook and status reporter
Understand where events come fromCalendar event source and the retired Notion setup
Review the nightly closing reportClosing reports and the weekly operations report
Put a slideshow on the bar TVs for an eventSlideshow takeovers
Delegate admin work safelyAdmin access and permissions
Run the weekly tender schedulePub Scheduler and scheduler state model
Understand music identification and setlistsNow Playing system, setlist, and content detection
Operate TVs and pairingTV displays and TV health
Review the gated live-sports cardNow Showing
Operate audio and lightingAudio control, Q-SYS control, DMX lighting, and lighting console
Review the K-array AV system historyK-array AV history (KA34 firmware failure and repair)
Understand DJ Mode and patron uploadsPhoto Flash and DJ Mode
Maintain movies, specials, or feedbackMovie nights, specials, and feedback
Look up an exact route or admin controlAPI reference and admin guide

Recent system changes

Earlier system notes

For shared boundaries, see Integrations and Identity and access.

6 items under this folder.