feat: add local connector domain stack
This commit is contained in:
@@ -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
|
||||||
@@ -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_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
|
approval form protected by `PAIRING_SECRET`; replace that form with your own
|
||||||
identity provider for a production connector.
|
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.
|
||||||
|
|||||||
@@ -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}
|
||||||
Reference in New Issue
Block a user