Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 0 additions & 157 deletions docker-compose-selfstream.yml

This file was deleted.

156 changes: 126 additions & 30 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ services:
tum-live:
container_name: tum-live
depends_on:
- db
build: .
ports:
- "8081:8081"
db:
condition: service_started
meili-internal:
condition: service_healthy
build:
context: .
dockerfile: Dockerfile-local
volumes:
- ./config.yaml:/etc/TUM-Live/config.yaml
- ./branding/branding.yaml:/etc/TUM-Live/branding.yaml
Expand All @@ -18,44 +21,59 @@ services:
environment:
- DBHOST=db
- TZ=Europe/Berlin
worker:
container_name: tum-live-worker
ports:
- "8081:8081"
# extra_hosts: # Only needed if you use wsl
# - "localhost:host-gateway"
healthcheck:
test: [ "CMD-SHELL", "nc -z localhost 8081 || exit 1" ]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

interval: 5s
timeout: 3s
retries: 15
start_period: 60s
runner:
container_name: tum-live-runner
depends_on:
- tum-live
#- vod-service # Omitted for local development due to size. Comment out to use voice-service
build: worker
tum-live:
condition: service_healthy
build:
context: runner/
dockerfile: Dockerfile
platform: linux/amd64
environment:
- Token=abc
- Host=worker
- MainBase=tum-live
- VodURLTemplate=http://localhost:8089/vod/%s.mp4/playlist.m3u8
- LrzUploadUrl=http://vod-service:8089
- DEBUG-MODE=true
- STORAGE_PATH=/storage/mass
- SEGMENT_PATH=/storage/live
- REALHOST=runner
- "EDGE_SERVER=http://localhost:8089"
- "GOCAST_SERVER=tum-live:50056"
volumes:
- recordings:/recordings
- mass:/mass
- runner_data:/storage/live
- vod:/storage/mass
ports:
- "52735:52735"
- "9947:9947"
# extra_hosts: # Only needed if you use wsl
# - "ingest.tum.live:host-gateway"
ingest:
container_name: tum-live-ingest
build:
context: ingest/
dockerfile: Dockerfile-local
platform: linux/amd64
ports:
- "1935:1935"
edge:
container_name: tum-live-edge
depends_on:
- tum-live
tum-live:
condition: service_healthy
build: worker/edge
environment:
- VOD_DIR=/vod
- MAIN_INSTANCE=http://tum-live:8081
- ADMIN_TOKEN=123
ports:
- "8089:8089"
volumes:
- recordings:/recordings
- vod:/vod
vod-service:
container_name: tum-live-vod-service
depends_on:
- tum-live
build: vod-service
environment:
- OUTPUT_DIR=/vod
volumes:
- vod:/vod
db:
Expand All @@ -70,6 +88,81 @@ services:
- ./tum-live-starter.sql:/data/application/init.sql
- mariadb-data:/var/lib/mysql
restart: always
worker:
container_name: tum-live-worker
depends_on:
tum-live:
condition: service_started
vod-service:
condition: service_started
runner:
condition: service_started
build: worker
platform: linux/amd64
environment:
- Token=abc
- Host=worker
- MainBase=tum-live
- VodURLTemplate=http://localhost:8089/vod/%s.mp4/playlist.m3u8
- LrzUploadUrl=http://vod-service:8089
- DEBUG-MODE=true
volumes:
- recordings:/recordings
- mass:/mass
Comment on lines +91 to +111

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one we can drop, it's no longer in use

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Will do. I was also working a little with runners. I am working on implementing grpcui into it for the development. Opinions?

@joschahenningsen joschahenningsen Aug 10, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does that do? I'd like to keep the compose file close to what's required for prod deployment

vod-service:
container_name: tum-live-vod-service
depends_on:
runner:
condition: service_started
build:
context: vod-service
dockerfile: Dockerfile-local
environment:
- OUTPUT_DIR=/vod
volumes:
- vod:/vod
meili-internal:
image: getmeili/meilisearch:latest
# KEIN container_name! (Docker generiert einen eindeutigen Namen)
ports:
- "7700:7700" # Extern 7701 nutzen, um Konflikt mit 7700 zu vermeiden
environment:
- MEILI_HTTP_ADDR=0.0.0.0:7700
- MEILI_MASTER_KEY=MASTER_KEY
- MEILI_NO_ANALYTICS=true
volumes:
- meili_gocast_data:/meili_data # Eigener Volume-Name
healthcheck:
test: [ "CMD-SHELL", "wget -q --spider http://127.0.0.1:7700/health || exit 1" ]
interval: 5s
timeout: 3s
retries: 10
start_period: 20s
prometheus:
container_name: tum-live-prometheus
image: prom/prometheus
depends_on:
runner:
condition: service_started
edge:
condition: service_started
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
docs:
container_name: gocast-docs
image: node:20
working_dir: /app
ports:
- "3000:3000"
volumes:
- ./docs_v2:/app
command: sh -c "npm install && npm run start -- --host 0.0.0.0"
# Omitted for local development due to size. Comment out to use voice-service
# voice-service:
# container_name: tum-live-voice-service
Expand All @@ -83,7 +176,10 @@ services:
# - mass:/mass

volumes:
recordings:
mass:
vod:
mariadb-data:
runner_data:
mass:
meili_gocast_data:
recordings:
prometheus-data:
11 changes: 11 additions & 0 deletions prometheus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
global:
scrape_interval: 5s

scrape_configs:
- job_name: "gocast-runner"
static_configs:
- targets: ["runner:9947"]

- job_name: "gocast-edge"
static_configs:
- targets: ["edge:2112"]
Loading