tf/modules/swarm/jitsi/jitsi_web.tf

52 lines
1.5 KiB
HCL

data "docker_registry_image" "jitsi_web" {
name = "jitsi/web:stable"
}
locals {
labels_web = {
"shepherd.auto-update" = "true",
"traefik.enable" = "true"
"traefik.http.services.jitsi-web.loadbalancer.server.port" = "80",
"traefik.http.routers.jitsi-web.rule" = "Host(`talk.chaoswest.tv`)&&!(Path(`/room-census`)||Path(`/xmpp-websocket`)||PathPrefix(`/colibri-ws`))",
"traefik.http.routers.jitsi-web.tls" = "true",
"traefik.http.routers.jitsi-web.tls.certresolver" = "default",
}
}
resource "docker_service" "jitsi_web" {
name = "jitsi_web"
dynamic "labels" {
for_each = local.labels_web
content {
label = labels.key
value = labels.value
}
}
task_spec {
networks_advanced {
name = data.docker_network.traefik.id
}
networks_advanced {
name = docker_network.jitsi.id
}
container_spec {
image = "${data.docker_registry_image.jitsi_web.name}@${data.docker_registry_image.jitsi_web.sha256_digest}"
env = {
PUBLIC_URL = "https://talk.chaoswest.tv",
TZ = "Europe/Berlin",
XMPP_AUTH_DOMAIN = "auth.meet.jitsi",
XMPP_BOSH_URL_BASE = "http://jitsi_prosody:5280",
XMPP_DOMAIN = "meet.jitsi",
XMPP_GUEST_DOMAIN = "guest.meet.jitsi",
XMPP_MUC_DOMAIN = "muc.meet.jitsi",
XMPP_RECORDER_DOMAIN = "recorder.meet.jitsi",
}
}
}
}