TraefikでJitsiを使う最小限の設定

2022年9月30日

最小限の設定でjitsiをTraefikとともに動作させる。

Self-Hosting Guide – Dockerに従ってインストールする。現在の安定バージョンは、stable-7830だった。

以下では動作させるURLをhttps://jitsi.example.comとする。

準備

リリースをunzipして展開し、以下を行う。

cp env.example .env
./gen-passwords.sh
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

.envの設定

以下だけで良い。

PUBLIC_URL=https://jitsi.example.com

docker-compose.ymlの設定

webコンテナの設定のみが問題なので、次のように改造する。

    web:
        image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-7830}
        restart: ${RESTART_POLICY:-unless-stopped}
#        ports: ポート定義は削除する
#            - '${HTTP_PORT}:80'
#            - '${HTTPS_PORT}:443'
        volumes:
            - ${CONFIG}/web:/config:Z
            - ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z
            - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z
        environment:
            - AMPLITUDE_ID
            - ANALYTICS_SCRIPT_URLS
            - ANALYTICS_WHITELISTED_EVENTS
            ..... もっとたくさんの環境変数がある ......
        networks:
            meet.jitsi:
      traefik-network: # traefikが使っているネットワークに参加する
        labels: # traefik用のラベルを追加
            traefik.enable: true
            traefik.http.middlewares.jitsi-redirect.redirectscheme.scheme: https
            traefik.http.routers.jitsi-http.entrypoints: web
            traefik.http.routers.jitsi-http.middlewares: jitsi-redirect
            traefik.http.routers.jitsi-http.rule: 'Host(`jitsi.example.com`)'
            traefik.http.routers.jitsi.entrypoints: websecure
            traefik.http.routers.jitsi.rule: 'Host(`jitsi.example.com`)'
            traefik.http.routers.jitsi.tls: true
            traefik.http.routers.jitsi.tls.certresolver: myresolver
            traefik.http.services.jitsi.loadbalancer.server.port: 80
            traefik.docker.network: traefik-network

routers, middlewaresの名称、jitsi-redirect, jitsi-http, jitsiは任意でよい。

entrypointsのweb, websecureは、trafiek側で定義した名称。

myresolverもtraefik側で定義したリゾルバの名称。

そして、最後のnetworks設定にtraefik-networkを追加する。

networks:
    meet.jitsi:
    traefik-network: # traefik-networkに参加
        external: true

起動

これで、docker-compose up -dして少し待てば普通にjitsiが使えることになる。

不特定多数に使われては困る場合の設定

上の設定だと、jitsiの存在を知る者であれば誰でも使えてしまう。以下の措置を施す。

下の三つのフラグをONにする。

ENABLE_AUTH=1
ENABLE_GUESTS=1
AUTH_TYPE=internal

起動した後で、prosodyコンテナの中で以下を設定する。

prosodyctl --config /config/prosody.cfg.lua register USERNAME meet.jitsi PASSWORD

これで、最初に入る人間は、USERNAME/PASSWORDを入力しなければならなくなる。