feat: add local connector domain stack

This commit is contained in:
2026-08-01 22:23:14 +01:00
parent 2f2004a0ff
commit 98346336ea
3 changed files with 46 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
APP_HOST=cleanstream-connector.test
SHARED_NETWORK=ordernow-shared
MEDIA_ROOT=/absolute/path/to/video-library
PAIRING_SECRET=replace-with-a-long-random-secret
+14
View File
@@ -10,3 +10,17 @@ For production, place the service behind HTTPS and set `PUBLIC_BASE_URL` and
`APPROVAL_BASE_URL` to its HTTPS address. Scanning the TV QR code opens a phone
approval form protected by `PAIRING_SECRET`; replace that form with your own
identity provider for a production connector.
## Local OrbStack development
Copy `.env.example` to `.env`, set `MEDIA_ROOT` to an absolute directory with
video files, then start the shared-Caddy stack:
```sh
docker compose -p cleanstream-connector-local-domain -f docker-compose.local-domain.yml up -d
```
The connector is available at `https://cleanstream-connector.test`. The TV and
phone must be on the same LAN. Because this uses Caddy's internal certificate,
the phone must trust the local Caddy root certificate before it can open the QR
approval URL.
+28
View File
@@ -0,0 +1,28 @@
services:
connector:
image: node:22-alpine
restart: unless-stopped
working_dir: /app
command: ["node", "--watch", "server.js"]
environment:
PORT: 8787
PUBLIC_BASE_URL: https://${APP_HOST}
APPROVAL_BASE_URL: https://${APP_HOST}
PAIRING_SECRET: ${PAIRING_SECRET}
MEDIA_ROOT: /media
volumes:
- ./:/app
- ${MEDIA_ROOT:?Set MEDIA_ROOT in .env}:/media:ro
labels:
caddy: ${APP_HOST}
caddy.tls: internal
caddy.reverse_proxy: "{{upstreams 8787}}"
caddy.reverse_proxy.header_up_0: "X-Forwarded-Host {host}"
caddy.reverse_proxy.header_up_1: "X-Forwarded-Proto https"
networks:
- shared
networks:
shared:
external: true
name: ${SHARED_NETWORK:-ordernow-shared}