Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
59 lines (57 loc) · 1.82 KB
/
Copy pathdocker-compose.yml
File metadata and controls
59 lines (57 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# ChannelFlow with ErsatzTV next bundled into the same image.
#
# The image is built FROM ersatztv/next:develop and runs two processes under one
# entrypoint: ChannelFlow (scheduling, EPG, compositor, web UI) on 8097, and
# `ersatztv` (all transcoding/HLS) on 8409. Only 8097 is published — ChannelFlow
# proxies next's HLS on its own routes, and next's port stays on loopback inside
# the container. There is no second container to start or keep in sync.
#
# docker compose up -d
#
# Postgres stays separate because ChannelFlow keeps its schedule there.
# Media is mounted at the same path Jellyfin uses so playout file paths resolve.
services:
postgres:
image: docker.io/library/postgres:16-alpine
container_name: channelflow-postgres
restart: unless-stopped
environment:
POSTGRES_DB: fintv
POSTGRES_USER: fintv
POSTGRES_PASSWORD: fintv
ports:
- "127.0.0.1:5432:5432"
volumes:
- channelflow-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U fintv -d fintv"]
interval: 2s
timeout: 5s
retries: 20
channelflow:
build: .
image: ghcr.io/binarygeek119/channelflow:latest
container_name: channelflow
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
TZ: ${TZ:-America/Chicago}
PORT: "8097"
POSTGRES_HOST: postgres
POSTGRES_PORT: "5432"
POSTGRES_DB: fintv
POSTGRES_USER: fintv
POSTGRES_PASSWORD: fintv
FFMPEG_HWACCEL: ${FFMPEG_HWACCEL:-vaapi}
ports:
- "8097:8097"
devices:
- /dev/dri:/dev/dri # Intel VAAPI / Quick Sync; delete for software-only encode
volumes:
- channelflow-config:/config
- ${MEDIA_ROOT:-/mnt/user/media}:/media
volumes:
channelflow-pgdata:
channelflow-config: