clone

a desktop tv and program guide for over-the-air broadcasts: what's on air, what your tuner gets, live tv, recordings

main
airwaves / deploy / compose.yml
compose.yml 2.7K
1# Airwaves server: airwavesd drives the HDHomeRun, records, and serves the2# guide, live TV and recordings to the TV app.3name: airwaves4services:5 airwavesd:6 build: ./airwavesd7 image: airwavesd:local8 container_name: airwaves-server9 restart: unless-stopped10 # An init process reaps Chromium's helper processes after the weather11 # channel stops rendering.12 init: true13 # Host networking finds the HDHomeRun by broadcast, on the LAN or on a14 # spare Ethernet port with link-local addressing.15 network_mode: host16 environment:17 TZ: ${TZ:?set TZ in .env, like America/Chicago}18 # The HDHomeRun's address or device ID, when discovery can't find it.19 AIRWAVES_HDHOMERUN: ${AIRWAVES_HDHOMERUN:-}20 AIRWAVES_RECORDINGS: /recordings21 # Listen on the tailnet address only (set in .env by deploy.sh).22 AIRWAVES_LISTEN: ${AIRWAVES_BIND:-127.0.0.1}:808923 AIRWAVES_NAME: ${AIRWAVES_NAME:-airwaves}24 # Where the antenna is, for its lineup and listings (required). A25 # precise LAT/LON beats the ZIP centroid for reception.26 AIRWAVES_ZIP: ${AIRWAVES_ZIP:-}27 AIRWAVES_LAT: ${AIRWAVES_LAT:-}28 AIRWAVES_LON: ${AIRWAVES_LON:-}29 AIRWAVES_TOKEN: ${AIRWAVES_TOKEN:-}30 # The admin page's and /admin/mcp's password (recommended: backups31 # downloaded there hold the Jellyfin account).32 AIRWAVES_ADMIN_PASSWORD: ${AIRWAVES_ADMIN_PASSWORD:-}33 # The folders mounted below, as the admin page names them.34 AIRWAVES_HOST_CHANNELS: ${CHANNELS:-./channels}35 AIRWAVES_HOST_MUSIC: ${MUSIC:-./music}36 AIRWAVES_WEATHERSTAR_PORT: "8090"37 # The emulated HDHomeRun for Channels DVR, Jellyfin, VLC... (LAN port38 # opened by the host firewall; discovery on UDP 65001).39 AIRWAVES_HDHR_LISTEN: ":5004"40 # Even custom channels' sound out to this level in LUFS as it41 # streams (-24 is broadcast TV's), or off.42 AIRWAVES_LOUDNESS: ${AIRWAVES_LOUDNESS:-off}43 volumes:44 - ./data:/data45 - ${RECORDINGS:-./recordings}:/recordings46 - ${MUSIC:-./music}:/music:ro47 # Writable: the admin page saves channel settings here, and YouTube48 # channels keep their schedules here.49 - ${CHANNELS:-./channels}:/channels5051 # Airwaves Weather: WeatherStar 4000+ (github.com/netbymatt/ws4kp, MIT)52 # with our branding, for the WX channel. airwavesd redirects /weatherstar53 # here with the server's location.54 weatherstar:55 build: ./weatherstar56 image: airwaves-weatherstar:local57 container_name: airwaves-weatherstar58 restart: unless-stopped59 ports:60 - ${AIRWAVES_BIND:-127.0.0.1}:8090:808061 # For the weather channel renderer in airwavesd.62 - 127.0.0.1:8090:8080