From 4c4e8bd481e9d32a561dbd4bbdee95d092540720 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 21:49:44 +0200 Subject: [PATCH 01/25] Added local dockerfile --- ingest/Dockerfile-local | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 ingest/Dockerfile-local diff --git a/ingest/Dockerfile-local b/ingest/Dockerfile-local new file mode 100644 index 000000000..bb61aa626 --- /dev/null +++ b/ingest/Dockerfile-local @@ -0,0 +1,17 @@ +FROM bluenviron/mediamtx:1.17.1 as mediamtx + + +FROM alpine:3.23 +ADD entrypoint.sh /entrypoint.sh +ADD mediamtx.yml /mediamtx.yml +RUN chmod +x /entrypoint.sh +RUN sed -i 's|externalAuthenticationURL: https://tum.live/api/selfstream/onPublish|externalAuthenticationURL: http://localhost:8081/api/selfstream/onPublish|' /mediamtx.yml + +RUN apk add --no-cache \ + ffmpeg \ + tzdata + +COPY --from=mediamtx /mediamtx /mediamtx +RUN chmod +x /mediamtx + +CMD ["/entrypoint.sh"] \ No newline at end of file From 83f34d8661dea77aa06d8c839e2d894bcd59231b Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:01:07 +0200 Subject: [PATCH 02/25] Adapted docker compose --- docker-compose-selfstream.yml | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docker-compose-selfstream.yml diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml new file mode 100644 index 000000000..3223d35f1 --- /dev/null +++ b/docker-compose-selfstream.yml @@ -0,0 +1,89 @@ +#################################################### +# Not production ready, only for local development # +#################################################### + +services: + tum-live: + container_name: tum-live + depends_on: + - db + build: . + ports: + - "8081:8081" + volumes: + - ./config.yaml:/etc/TUM-Live/config.yaml + - ./branding/branding.yaml:/etc/TUM-Live/branding.yaml + - mass:/mass + restart: always + environment: + - DBHOST=db + - TZ=Europe/Berlin + 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: + context: runner/ + dockerfile: Dockerfile-local + platform: linux/amd64 + environment: + - STORAGE_PATH=/storage/mass + - SEGMENT_PATH=/storage/live + volumes: + - runner_data:/storage/live + - vod:/storage/mass + network_mode: host + edge: + container_name: tum-live-edge + depends_on: + - tum-live + build: worker/edge + environment: + - VOD_DIR=/vod + - MAIN_INSTANCE=http://tum-live:8081 + - ADMIN_TOKEN=123 + ports: + - "8089:8089" + volumes: + - vod:/vod + network_mode: host + vod-service: + container_name: tum-live-vod-service + depends_on: + - tum-live + build: vod-service + environment: + - OUTPUT_DIR=/vod + volumes: + - vod:/vod + network_mode: host + db: + container_name: mariadb_container + image: mariadb + environment: + MYSQL_ROOT_USER: root + MYSQL_ROOT_PASSWORD: example + TZ: Europe/Berlin + command: --init-file /data/application/init.sql + volumes: + - ./tum-live-starter.sql:/data/application/init.sql + - mariadb-data:/var/lib/mysql + restart: always +# Omitted for local development due to size. Comment out to use voice-service +# voice-service: +# container_name: tum-live-voice-service +# image: ghcr.io/tum-dev/tum-live-voice-service:latest +# environment: +# - TRANSCRIBER=whisper +# - WHISPER_MODEL=tiny +# - MAX_WORKERS=10 +# - DEBUG=1 +# volumes: +# - mass:/mass + +volumes: + recordings: + mass: + vod: + mariadb-data: From 6692655ef1fcd6f39d3222e83f6ba2524dcb6457 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:04:21 +0200 Subject: [PATCH 03/25] Fixed compose --- docker-compose-selfstream.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 3223d35f1..b180d6619 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -83,7 +83,6 @@ services: # - mass:/mass volumes: - recordings: - mass: vod: mariadb-data: + runner_data: From a3e9bcff3cf23c87c77d1b9530db1631e140cc28 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:05:12 +0200 Subject: [PATCH 04/25] Fixed compose --- docker-compose-selfstream.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index b180d6619..24689ec4e 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -86,3 +86,4 @@ volumes: vod: mariadb-data: runner_data: + mass: From ed5877917acd8eae5de06d45899fa41b7957b4e8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:05:39 +0200 Subject: [PATCH 05/25] Fixed compose --- docker-compose-selfstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 24689ec4e..5e8b32240 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -25,7 +25,7 @@ services: #- vod-service # Omitted for local development due to size. Comment out to use voice-service build: context: runner/ - dockerfile: Dockerfile-local + dockerfile: runner/Dockerfile-local platform: linux/amd64 environment: - STORAGE_PATH=/storage/mass From c511b285fbb67fb5337ce6042967e401ee26d150 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:06:38 +0200 Subject: [PATCH 06/25] Fixed compose --- docker-compose-selfstream.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 5e8b32240..9938a3f9c 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -25,7 +25,7 @@ services: #- vod-service # Omitted for local development due to size. Comment out to use voice-service build: context: runner/ - dockerfile: runner/Dockerfile-local + dockerfile: Dockerfile platform: linux/amd64 environment: - STORAGE_PATH=/storage/mass @@ -34,6 +34,14 @@ services: - runner_data:/storage/live - vod:/storage/mass network_mode: host + ingest: + container_name: tum-live-ingest + #- vod-service # Omitted for local development due to size. Comment out to use voice-service + build: + context: ingest/ + dockerfile: Dockerfile-local + platform: linux/amd64 + network_mode: host edge: container_name: tum-live-edge depends_on: From d26d4ce6ff319632d841036267ca0764ff726341 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:08:23 +0200 Subject: [PATCH 07/25] Fixed compose --- docker-compose-selfstream.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 9938a3f9c..3464b42c9 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -8,8 +8,6 @@ services: depends_on: - db build: . - ports: - - "8081:8081" volumes: - ./config.yaml:/etc/TUM-Live/config.yaml - ./branding/branding.yaml:/etc/TUM-Live/branding.yaml @@ -18,6 +16,7 @@ services: environment: - DBHOST=db - TZ=Europe/Berlin + network_mode: host runner: container_name: tum-live-runner depends_on: From ebcdf1aa6ccc9493dbcba1f21e469c067bea6119 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:10:46 +0200 Subject: [PATCH 08/25] Fixed compose --- docker-compose-selfstream.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 3464b42c9..a7197b281 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -77,6 +77,7 @@ services: - ./tum-live-starter.sql:/data/application/init.sql - mariadb-data:/var/lib/mysql restart: always + network_mode: host # Omitted for local development due to size. Comment out to use voice-service # voice-service: # container_name: tum-live-voice-service From 04c4e83bbf824713144696056213ade060f262fc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:11:32 +0200 Subject: [PATCH 09/25] Fixed compose --- docker-compose-selfstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index a7197b281..58039daa8 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -14,7 +14,7 @@ services: - mass:/mass restart: always environment: - - DBHOST=db + - DBHOST=localhost - TZ=Europe/Berlin network_mode: host runner: From ce2aa2bc2ccdaeb4472010fa267ba5a27433fb40 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:12:22 +0200 Subject: [PATCH 10/25] Fixed compose --- docker-compose-selfstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 58039daa8..5d2c76b4e 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -48,7 +48,7 @@ services: build: worker/edge environment: - VOD_DIR=/vod - - MAIN_INSTANCE=http://tum-live:8081 + - MAIN_INSTANCE=http://localhost:8081 - ADMIN_TOKEN=123 ports: - "8089:8089" From 3d7ba66448cfe249adc93e7eeece3e2a9897e239 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:20:27 +0200 Subject: [PATCH 11/25] Fixed compose --- docker-compose-selfstream.yml | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 5d2c76b4e..38ebda2c8 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -16,7 +16,8 @@ services: environment: - DBHOST=localhost - TZ=Europe/Berlin - network_mode: host + ports: + - "8081:8081" runner: container_name: tum-live-runner depends_on: @@ -29,10 +30,13 @@ services: environment: - STORAGE_PATH=/storage/mass - SEGMENT_PATH=/storage/live + - REALHOST=runner + - "EDGE_SERVER=http://localhost:8089" volumes: - runner_data:/storage/live - vod:/storage/mass - network_mode: host + ports: + - "52735:52735" ingest: container_name: tum-live-ingest #- vod-service # Omitted for local development due to size. Comment out to use voice-service @@ -40,7 +44,8 @@ services: context: ingest/ dockerfile: Dockerfile-local platform: linux/amd64 - network_mode: host + ports: + - "1935:1935" edge: container_name: tum-live-edge depends_on: @@ -48,23 +53,13 @@ services: build: worker/edge environment: - VOD_DIR=/vod - - MAIN_INSTANCE=http://localhost:8081 + - MAIN_INSTANCE=http://tum-live:8081 - ADMIN_TOKEN=123 ports: - "8089:8089" volumes: - vod:/vod network_mode: host - vod-service: - container_name: tum-live-vod-service - depends_on: - - tum-live - build: vod-service - environment: - - OUTPUT_DIR=/vod - volumes: - - vod:/vod - network_mode: host db: container_name: mariadb_container image: mariadb @@ -77,7 +72,6 @@ services: - ./tum-live-starter.sql:/data/application/init.sql - mariadb-data:/var/lib/mysql restart: always - network_mode: host # Omitted for local development due to size. Comment out to use voice-service # voice-service: # container_name: tum-live-voice-service From 5015231ee4056b4b5039e72e7b5c10a70fdb5027 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:20:46 +0200 Subject: [PATCH 12/25] Fixed compose --- docker-compose-selfstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 38ebda2c8..f962ee3d6 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -14,7 +14,7 @@ services: - mass:/mass restart: always environment: - - DBHOST=localhost + - DBHOST=db - TZ=Europe/Berlin ports: - "8081:8081" From 64deb5c3bad27a1cc2489672eeec1012d9f4d482 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:22:21 +0200 Subject: [PATCH 13/25] Fixed compose --- docker-compose-selfstream.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index f962ee3d6..86ce0ae7d 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -32,6 +32,7 @@ services: - SEGMENT_PATH=/storage/live - REALHOST=runner - "EDGE_SERVER=http://localhost:8089" + - "GOCAST_SERVER=http://tum-live:8081" volumes: - runner_data:/storage/live - vod:/storage/mass From 17c4afb494c889e4d731be210a6f87de1c7a9c90 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:23:21 +0200 Subject: [PATCH 14/25] Fixed compose --- docker-compose-selfstream.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 86ce0ae7d..0b8e099bf 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -60,7 +60,6 @@ services: - "8089:8089" volumes: - vod:/vod - network_mode: host db: container_name: mariadb_container image: mariadb From 5540a208e7284e4956dec151c30a4f7545316ac2 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:30:24 +0200 Subject: [PATCH 15/25] Fixed compose --- docker-compose-selfstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 0b8e099bf..9a3e8dfcd 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -32,7 +32,7 @@ services: - SEGMENT_PATH=/storage/live - REALHOST=runner - "EDGE_SERVER=http://localhost:8089" - - "GOCAST_SERVER=http://tum-live:8081" + - "GOCAST_SERVER=tum-live:50056" volumes: - runner_data:/storage/live - vod:/storage/mass From 6b88947761ef62fd52318b8a91cd60cc7cfbc890 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:34:00 +0200 Subject: [PATCH 16/25] Fixed local dockerfile --- ingest/Dockerfile-local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ingest/Dockerfile-local b/ingest/Dockerfile-local index bb61aa626..138e713f5 100644 --- a/ingest/Dockerfile-local +++ b/ingest/Dockerfile-local @@ -5,7 +5,7 @@ FROM alpine:3.23 ADD entrypoint.sh /entrypoint.sh ADD mediamtx.yml /mediamtx.yml RUN chmod +x /entrypoint.sh -RUN sed -i 's|externalAuthenticationURL: https://tum.live/api/selfstream/onPublish|externalAuthenticationURL: http://localhost:8081/api/selfstream/onPublish|' /mediamtx.yml +RUN sed -i 's|externalAuthenticationURL: https://tum.live/api/selfstream/onPublish|externalAuthenticationURL: http://tum-live:8081/api/selfstream/onPublish|' /mediamtx.yml RUN apk add --no-cache \ ffmpeg \ From fcdcee108834940df2873d2706c944d06e7825a3 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:46:25 +0200 Subject: [PATCH 17/25] Final fixes to make it workgit statusgit status --- Dockerfile-local | 36 +++++++++++++++++++++++++++++++++++ docker-compose-selfstream.yml | 4 +++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Dockerfile-local diff --git a/Dockerfile-local b/Dockerfile-local new file mode 100644 index 000000000..2c043cc2a --- /dev/null +++ b/Dockerfile-local @@ -0,0 +1,36 @@ +FROM node:25 AS node + +WORKDIR /app +COPY web web + +## remove generated files in case the developer build with npm before +RUN rm -rf web/assets/ts-dist &&\ + rm -rf web/assets/css-dist + +WORKDIR /app/web +RUN npm i --no-dev + +FROM golang:1.26 AS build-env + +RUN mkdir /gostuff +WORKDIR /gostuff +COPY go.mod go.sum ./ + +# Get dependencies - will also be cached if we won't change mod/sum +RUN go mod download + +WORKDIR /go/src/app +COPY . . +COPY --from=node /app/web/assets ./web/assets +COPY --from=node /app/web/node_modules ./web/node_modules + +# bundle version into binary if specified in build-args, dev otherwise. +ARG version=dev +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-w -extldflags '-static' -X main.VersionTag=${version}" -o /go/bin/tumlive cmd/tumlive/main.go + +FROM alpine:3.23 +RUN apk add --no-cache tzdata openssl +WORKDIR /app +COPY --from=build-env /go/bin/tumlive . +RUN sed -i 's|ingestbase: rtmp://ingest.tum.live/|ingestbase: rtmp://ingest/|' /etc/TUM-Live/config.yaml +CMD ["sh", "-c", "sleep 3 && ./tumlive"] diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 9a3e8dfcd..8bb1467d3 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -7,7 +7,9 @@ services: container_name: tum-live depends_on: - db - build: . + build: + context: . + dockerfile: Dockerfile-local volumes: - ./config.yaml:/etc/TUM-Live/config.yaml - ./branding/branding.yaml:/etc/TUM-Live/branding.yaml From 8b96db7333478c7f0bd027f476a734b96e30ea63 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:49:02 +0200 Subject: [PATCH 18/25] Removed sed dependency --- Dockerfile-local | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile-local b/Dockerfile-local index 2c043cc2a..576123b94 100644 --- a/Dockerfile-local +++ b/Dockerfile-local @@ -32,5 +32,7 @@ FROM alpine:3.23 RUN apk add --no-cache tzdata openssl WORKDIR /app COPY --from=build-env /go/bin/tumlive . -RUN sed -i 's|ingestbase: rtmp://ingest.tum.live/|ingestbase: rtmp://ingest/|' /etc/TUM-Live/config.yaml +RUN RUN while IFS= read -r line; do \ + echo "${line//rtmp:\/\/ingest.tum.live\//rtmp:\/\/ingest/}"; \ + done < /etc/TUM-Live/config.yaml > /etc/TUM-Live/config.yaml.tmp && mv /etc/TUM-Live/config.yaml.tmp /etc/TUM-Live/config.yaml CMD ["sh", "-c", "sleep 3 && ./tumlive"] From c9b41b6bee82716471520e839eea740f0ef13599 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:50:38 +0200 Subject: [PATCH 19/25] Removed sed dependency --- Dockerfile-local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile-local b/Dockerfile-local index 576123b94..5676b6f0b 100644 --- a/Dockerfile-local +++ b/Dockerfile-local @@ -32,7 +32,7 @@ FROM alpine:3.23 RUN apk add --no-cache tzdata openssl WORKDIR /app COPY --from=build-env /go/bin/tumlive . -RUN RUN while IFS= read -r line; do \ +RUN while IFS= read -r line; do \ echo "${line//rtmp:\/\/ingest.tum.live\//rtmp:\/\/ingest/}"; \ done < /etc/TUM-Live/config.yaml > /etc/TUM-Live/config.yaml.tmp && mv /etc/TUM-Live/config.yaml.tmp /etc/TUM-Live/config.yaml CMD ["sh", "-c", "sleep 3 && ./tumlive"] From 27b891b52fd3748bdf343202bdb74e275d1b87d8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 14 Apr 2026 22:53:41 +0200 Subject: [PATCH 20/25] Removed sed dependency --- Dockerfile-local | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile-local b/Dockerfile-local index 5676b6f0b..73dfb505e 100644 --- a/Dockerfile-local +++ b/Dockerfile-local @@ -32,7 +32,6 @@ FROM alpine:3.23 RUN apk add --no-cache tzdata openssl WORKDIR /app COPY --from=build-env /go/bin/tumlive . -RUN while IFS= read -r line; do \ - echo "${line//rtmp:\/\/ingest.tum.live\//rtmp:\/\/ingest/}"; \ - done < /etc/TUM-Live/config.yaml > /etc/TUM-Live/config.yaml.tmp && mv /etc/TUM-Live/config.yaml.tmp /etc/TUM-Live/config.yaml +COPY config.yaml /etc/TUM-Live/config.yaml +RUN sed -i 's|ingestbase: rtmp://ingest.tum.live/|ingestbase: rtmp://ingest/|' /etc/TUM-Live/config.yaml CMD ["sh", "-c", "sleep 3 && ./tumlive"] From 1dfdeab7bc8ca20e6a396e44e8fadc9fb3e06200 Mon Sep 17 00:00:00 2001 From: Mazi02 Date: Sat, 25 Apr 2026 11:24:50 +0200 Subject: [PATCH 21/25] add healthcheck and extra hosts --- docker-compose-selfstream.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 8bb1467d3..08ffecd09 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -20,10 +20,19 @@ services: - TZ=Europe/Berlin ports: - "8081:8081" + #extra_hosts: # Only needed if you use wsl + # - "localhost:host-gateway" + healthcheck: + test: [ "CMD-SHELL", "nc -z localhost 8081 || exit 1" ] + interval: 5s + timeout: 3s + retries: 5 + start_period: 5s # Gibt dem Dienst Zeit zum Booten runner: container_name: tum-live-runner depends_on: - - tum-live + tum-live: + condition: service_healthy #- vod-service # Omitted for local development due to size. Comment out to use voice-service build: context: runner/ @@ -40,6 +49,8 @@ services: - vod:/storage/mass ports: - "52735:52735" + #extra_hosts: # Only needed if you use wsl + # - "ingest.tum.live:host-gateway" ingest: container_name: tum-live-ingest #- vod-service # Omitted for local development due to size. Comment out to use voice-service @@ -52,7 +63,8 @@ services: edge: container_name: tum-live-edge depends_on: - - tum-live + tum-live: + condition: service_healthy build: worker/edge environment: - VOD_DIR=/vod From ccd08406811fe30eaf0b8899c74692a70a474882 Mon Sep 17 00:00:00 2001 From: Mazi02 Date: Sun, 26 Apr 2026 00:42:40 +0200 Subject: [PATCH 22/25] add meilisearch --- docker-compose-selfstream.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index 08ffecd09..aeedbd420 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -7,6 +7,7 @@ services: container_name: tum-live depends_on: - db + - meili-internal build: context: . dockerfile: Dockerfile-local @@ -20,8 +21,8 @@ services: - TZ=Europe/Berlin ports: - "8081:8081" - #extra_hosts: # Only needed if you use wsl - # - "localhost:host-gateway" + extra_hosts: # Only needed if you use wsl + - "localhost:host-gateway" healthcheck: test: [ "CMD-SHELL", "nc -z localhost 8081 || exit 1" ] interval: 5s @@ -49,8 +50,8 @@ services: - vod:/storage/mass ports: - "52735:52735" - #extra_hosts: # Only needed if you use wsl - # - "ingest.tum.live:host-gateway" + extra_hosts: # Only needed if you use wsl + - "ingest.tum.live:host-gateway" ingest: container_name: tum-live-ingest #- vod-service # Omitted for local development due to size. Comment out to use voice-service @@ -86,6 +87,18 @@ services: - ./tum-live-starter.sql:/data/application/init.sql - mariadb-data:/var/lib/mysql restart: always + + meili-internal: # Service-Name geändert + 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 # Omitted for local development due to size. Comment out to use voice-service # voice-service: # container_name: tum-live-voice-service @@ -103,3 +116,4 @@ volumes: mariadb-data: runner_data: mass: + meili_gocast_data: From 91f5e3e688e6dcc4c9c646ab6e9df8b94b8fc932 Mon Sep 17 00:00:00 2001 From: Mazi02 Date: Sat, 2 May 2026 13:39:10 +0200 Subject: [PATCH 23/25] added Dockerfile-local for vod-service --- vod-service/Dockerfile-local | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 vod-service/Dockerfile-local diff --git a/vod-service/Dockerfile-local b/vod-service/Dockerfile-local new file mode 100644 index 000000000..5c62b3c39 --- /dev/null +++ b/vod-service/Dockerfile-local @@ -0,0 +1,15 @@ +FROM golang:1.26 as builder + +WORKDIR /app +COPY . . + +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /vod-service cmd/vod-service/main.go + +FROM alpine:3.23 + +RUN apk add ffmpeg +COPY --from=builder /vod-service /vod-service + +EXPOSE 8080 + +CMD ["/vod-service"] \ No newline at end of file From e0ed478ab078fd15daab622e4ea4bcc20d18437a Mon Sep 17 00:00:00 2001 From: Mazi02 Date: Sat, 2 May 2026 19:36:00 +0200 Subject: [PATCH 24/25] modified the compose file --- docker-compose-selfstream.yml | 48 +++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/docker-compose-selfstream.yml b/docker-compose-selfstream.yml index aeedbd420..44f564ba1 100644 --- a/docker-compose-selfstream.yml +++ b/docker-compose-selfstream.yml @@ -6,8 +6,10 @@ services: tum-live: container_name: tum-live depends_on: - - db - - meili-internal + db: + condition: service_started + meili-internal: + condition: service_healthy build: context: . dockerfile: Dockerfile-local @@ -27,8 +29,8 @@ services: test: [ "CMD-SHELL", "nc -z localhost 8081 || exit 1" ] interval: 5s timeout: 3s - retries: 5 - start_period: 5s # Gibt dem Dienst Zeit zum Booten + retries: 15 + start_period: 60s # Gibt dem Dienst Zeit zum Booten runner: container_name: tum-live-runner depends_on: @@ -87,7 +89,36 @@ services: - ./tum-live-starter.sql:/data/application/init.sql - mariadb-data:/var/lib/mysql restart: always - + worker: + container_name: tum-live-worker + depends_on: + runner: + condition: service_started + #- vod-service # Omitted for local development due to size. Comment out to use voice-service + 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:8080 + - DEBUG-MODE=true + volumes: + - recordings:/recordings + - mass:/mass + 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: # Service-Name geändert image: getmeili/meilisearch:latest # KEIN container_name! (Docker generiert einen eindeutigen Namen) @@ -99,6 +130,12 @@ services: - 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 # Omitted for local development due to size. Comment out to use voice-service # voice-service: # container_name: tum-live-voice-service @@ -117,3 +154,4 @@ volumes: runner_data: mass: meili_gocast_data: + recordings: \ No newline at end of file From 889a51e803dca3bd7dd20483840cccd4adce73b9 Mon Sep 17 00:00:00 2001 From: Kordian Bruck Date: Sat, 2 May 2026 20:13:59 +0200 Subject: [PATCH 25/25] Update Dockerfile-local --- ingest/Dockerfile-local | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ingest/Dockerfile-local b/ingest/Dockerfile-local index 138e713f5..358ac4965 100644 --- a/ingest/Dockerfile-local +++ b/ingest/Dockerfile-local @@ -1,6 +1,5 @@ FROM bluenviron/mediamtx:1.17.1 as mediamtx - FROM alpine:3.23 ADD entrypoint.sh /entrypoint.sh ADD mediamtx.yml /mediamtx.yml @@ -14,4 +13,4 @@ RUN apk add --no-cache \ COPY --from=mediamtx /mediamtx /mediamtx RUN chmod +x /mediamtx -CMD ["/entrypoint.sh"] \ No newline at end of file +CMD ["/entrypoint.sh"]