aboutsummaryrefslogtreecommitdiff
path: root/cluster/prod/app/jitsi/build/jitsi-videobridge
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-08-24 15:42:47 +0200
committerAlex Auvolat <alex@adnab.me>2022-08-24 15:42:47 +0200
commit2e8923b383eb06c53261eee8e5c442b857fb67e4 (patch)
tree0ad148f75f7b54dfed2dbac8f43f6df9badc502a /cluster/prod/app/jitsi/build/jitsi-videobridge
parent9848f3090f77363a2fda0f9fa673ebcf1fb8228c (diff)
downloadnixcfg-2e8923b383eb06c53261eee8e5c442b857fb67e4.tar.gz
nixcfg-2e8923b383eb06c53261eee8e5c442b857fb67e4.zip
Move app files into cluster subdirectories; add prod garage
Diffstat (limited to 'cluster/prod/app/jitsi/build/jitsi-videobridge')
-rw-r--r--cluster/prod/app/jitsi/build/jitsi-videobridge/0001-Remove-deprecated-argument.patch40
-rw-r--r--cluster/prod/app/jitsi/build/jitsi-videobridge/Dockerfile24
-rwxr-xr-xcluster/prod/app/jitsi/build/jitsi-videobridge/jvb_run22
3 files changed, 86 insertions, 0 deletions
diff --git a/cluster/prod/app/jitsi/build/jitsi-videobridge/0001-Remove-deprecated-argument.patch b/cluster/prod/app/jitsi/build/jitsi-videobridge/0001-Remove-deprecated-argument.patch
new file mode 100644
index 0000000..575d93f
--- /dev/null
+++ b/cluster/prod/app/jitsi/build/jitsi-videobridge/0001-Remove-deprecated-argument.patch
@@ -0,0 +1,40 @@
+From 01507442620e5a57624c921b508eac7d572440d0 Mon Sep 17 00:00:00 2001
+From: Quentin Dufour <quentin@deuxfleurs.fr>
+Date: Tue, 25 Jan 2022 14:46:22 +0100
+Subject: [PATCH] Remove deprecated argument
+
+---
+ .../main/kotlin/org/jitsi/videobridge/Main.kt | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+diff --git a/jvb/src/main/kotlin/org/jitsi/videobridge/Main.kt b/jvb/src/main/kotlin/org/jitsi/videobridge/Main.kt
+index 4f6cb78..3db00f2 100644
+--- a/jvb/src/main/kotlin/org/jitsi/videobridge/Main.kt
++++ b/jvb/src/main/kotlin/org/jitsi/videobridge/Main.kt
+@@ -52,23 +52,6 @@ import org.jitsi.videobridge.websocket.singleton as webSocketServiceSingleton
+ fun main(args: Array<String>) {
+ val logger = LoggerImpl("org.jitsi.videobridge.Main")
+
+- // We only support command line arguments for backward compatibility. The --apis options is the last one supported,
+- // and it is only used to enable/disable the REST API (XMPP is only controlled through the config files).
+- // TODO: fully remove support for --apis
+- CmdLine().apply {
+- parse(args)
+- getOptionValue("--apis")?.let {
+- logger.warn(
+- "A deprecated command line argument (--apis) is present. Please use the config file to control the " +
+- "REST API instead (see rest.md). Support for --apis will be removed in a future version."
+- )
+- System.setProperty(
+- Videobridge.REST_API_PNAME,
+- it.contains(Videobridge.REST_API).toString()
+- )
+- }
+- }
+-
+ setupMetaconfigLogger()
+
+ setSystemPropertyDefaults()
+--
+2.33.1
+
diff --git a/cluster/prod/app/jitsi/build/jitsi-videobridge/Dockerfile b/cluster/prod/app/jitsi/build/jitsi-videobridge/Dockerfile
new file mode 100644
index 0000000..1f2509b
--- /dev/null
+++ b/cluster/prod/app/jitsi/build/jitsi-videobridge/Dockerfile
@@ -0,0 +1,24 @@
+FROM debian:bookworm AS builder
+
+RUN apt-get update && \
+ apt-get install -y git unzip maven openjdk-11-jdk-headless
+
+ARG JVB_TAG
+RUN git clone --depth 1 --branch ${JVB_TAG} https://github.com/jitsi/jitsi-videobridge
+
+WORKDIR jitsi-videobridge
+COPY *.patch .
+RUN git apply 0001-Remove-deprecated-argument.patch
+RUN mvn package -DskipTests
+RUN unzip jvb/target/jitsi-videobridge*.zip && \
+ mv jitsi-videobridge-*-SNAPSHOT build
+
+FROM debian:bookworm
+
+RUN apt-get update && \
+ apt-get install -y openjdk-11-jre-headless curl iproute2
+
+COPY --from=builder /jitsi-videobridge/build /usr/share/jvb
+COPY jvb_run /usr/local/bin/jvb_run
+
+CMD ["/usr/local/bin/jvb_run"]
diff --git a/cluster/prod/app/jitsi/build/jitsi-videobridge/jvb_run b/cluster/prod/app/jitsi/build/jitsi-videobridge/jvb_run
new file mode 100755
index 0000000..8d595e6
--- /dev/null
+++ b/cluster/prod/app/jitsi/build/jitsi-videobridge/jvb_run
@@ -0,0 +1,22 @@
+#!/bin/bash
+update-ca-certificates -f
+
+if [ -z "${JITSI_NAT_LOCAL_IP}" ]; then
+ JITSI_NAT_LOCAL_IP=$(ip route get $(ip route show 0.0.0.0/0 | grep -oP 'via \K\S+') | grep -oP 'src \K\S+')
+fi
+
+if [ -z "${JITSI_NAT_PUBLIC_IP}" ]; then
+ JITSI_NAT_PUBLIC_IP=$(curl https://ifconfig.me)
+fi
+
+echo "NAT config: ${JITSI_NAT_LOCAL_IP} -> ${JITSI_NAT_PUBLIC_IP}"
+
+exec java \
+ -Dlog4j2.formatMsgNoLookups=true \
+ -Djdk.tls.ephemeralDHKeySize=2048 \
+ -Djava.util.logging.config.file=/usr/share/jvb/lib/logging.properties \
+ -Dconfig.file=/etc/jitsi/videobridge.conf \
+ -Dorg.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=${JITSI_NAT_LOCAL_IP} \
+ -Dorg.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=${JITSI_NAT_PUBLIC_IP} \
+ -cp '/usr/share/jvb/jitsi-videobridge.jar:/usr/share/jvb/lib/*' \
+ org.jitsi.videobridge.MainKt