2
0

docker-compose.yml 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. version: '3'
  2. services:
  3. # Frontend
  4. web:
  5. image: jitsi/web
  6. volumes:
  7. - ${CONFIG}/web:/config
  8. - ${CONFIG}/web/letsencrypt:/etc/letsencrypt
  9. - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts
  10. environment:
  11. - ENABLE_LETSENCRYPT
  12. - ENABLE_HTTP_REDIRECT
  13. - ENABLE_HSTS
  14. - ENABLE_XMPP_WEBSOCKET
  15. - DISABLE_HTTPS
  16. - LETSENCRYPT_DOMAIN
  17. - LETSENCRYPT_EMAIL
  18. - LETSENCRYPT_USE_STAGING
  19. - PUBLIC_URL
  20. - TZ
  21. - AMPLITUDE_ID
  22. - ANALYTICS_SCRIPT_URLS
  23. - ANALYTICS_WHITELISTED_EVENTS
  24. - BRIDGE_CHANNEL
  25. - CALLSTATS_CUSTOM_SCRIPT_URL
  26. - CALLSTATS_ID
  27. - CALLSTATS_SECRET
  28. - CHROME_EXTENSION_BANNER_JSON
  29. - CONFCODE_URL
  30. - CONFIG_EXTERNAL_CONNECT
  31. - DEPLOYMENTINFO_ENVIRONMENT
  32. - DEPLOYMENTINFO_ENVIRONMENT_TYPE
  33. - DEPLOYMENTINFO_USERREGION
  34. - DIALIN_NUMBERS_URL
  35. - DIALOUT_AUTH_URL
  36. - DIALOUT_CODES_URL
  37. - DROPBOX_APPKEY
  38. - DROPBOX_REDIRECT_URI
  39. - DYNAMIC_BRANDING_URL
  40. - ENABLE_AUDIO_PROCESSING
  41. - ENABLE_AUTH
  42. - ENABLE_CALENDAR
  43. - ENABLE_FILE_RECORDING_SERVICE
  44. - ENABLE_FILE_RECORDING_SERVICE_SHARING
  45. - ENABLE_GUESTS
  46. - ENABLE_IPV6
  47. - ENABLE_LIPSYNC
  48. - ENABLE_NO_AUDIO_DETECTION
  49. - ENABLE_P2P
  50. - ENABLE_PREJOIN_PAGE
  51. - ENABLE_WELCOME_PAGE
  52. - ENABLE_CLOSE_PAGE
  53. - ENABLE_RECORDING
  54. - ENABLE_REMB
  55. - ENABLE_REQUIRE_DISPLAY_NAME
  56. - ENABLE_SIMULCAST
  57. - ENABLE_STATS_ID
  58. - ENABLE_STEREO
  59. - ENABLE_SUBDOMAINS
  60. - ENABLE_TALK_WHILE_MUTED
  61. - ENABLE_TCC
  62. - ENABLE_TRANSCRIPTIONS
  63. - ETHERPAD_PUBLIC_URL
  64. - ETHERPAD_URL_BASE
  65. - GOOGLE_ANALYTICS_ID
  66. - GOOGLE_API_APP_CLIENT_ID
  67. - INVITE_SERVICE_URL
  68. - JICOFO_AUTH_USER
  69. - MATOMO_ENDPOINT
  70. - MATOMO_SITE_ID
  71. - MICROSOFT_API_APP_CLIENT_ID
  72. - NGINX_RESOLVER
  73. - NGINX_WORKER_PROCESSES
  74. - NGINX_WORKER_CONNECTIONS
  75. - PEOPLE_SEARCH_URL
  76. - RESOLUTION
  77. - RESOLUTION_MIN
  78. - RESOLUTION_WIDTH
  79. - RESOLUTION_WIDTH_MIN
  80. - START_AUDIO_ONLY
  81. - START_AUDIO_MUTED
  82. - DISABLE_AUDIO_LEVELS
  83. - ENABLE_NOISY_MIC_DETECTION
  84. - START_BITRATE
  85. - DESKTOP_SHARING_FRAMERATE_MIN
  86. - DESKTOP_SHARING_FRAMERATE_MAX
  87. - START_VIDEO_MUTED
  88. - TESTING_CAP_SCREENSHARE_BITRATE
  89. - TESTING_OCTO_PROBABILITY
  90. - XMPP_AUTH_DOMAIN
  91. - XMPP_BOSH_URL_BASE
  92. - XMPP_DOMAIN
  93. - XMPP_GUEST_DOMAIN
  94. - XMPP_MUC_DOMAIN
  95. - XMPP_RECORDER_DOMAIN
  96. - TOKEN_AUTH_URL
  97. networks:
  98. # traefik: change the following line to your external docker network
  99. web:
  100. meet.jitsi:
  101. aliases:
  102. - ${XMPP_DOMAIN}
  103. labels:
  104. traefik.http.middlewares.redirect.redirectscheme.scheme: https
  105. traefik.http.routers.app-http.entrypoints: web
  106. traefik.http.routers.app-http.middlewares: redirect
  107. traefik.http.routers.app-http.rule: 'Host(`your.host.name`)'
  108. traefik.http.routers.app.entrypoints: websecure
  109. traefik.http.routers.app.rule: 'Host(`your.host.name`)'
  110. traefik.http.routers.app.tls: 'true'
  111. traefik.http.routers.app.tls.certresolver: le
  112. traefik.http.services.app.loadbalancer.server.port: 80
  113. # traefik: change the following line to your external docker network
  114. traefik.docker.network: web
  115. # XMPP server
  116. prosody:
  117. image: jitsi/prosody
  118. expose:
  119. - '5222'
  120. - '5347'
  121. - '5280'
  122. volumes:
  123. - ${CONFIG}/prosody:/config
  124. environment:
  125. - AUTH_TYPE
  126. - ENABLE_AUTH
  127. - ENABLE_GUESTS
  128. - ENABLE_LOBBY
  129. - ENABLE_XMPP_WEBSOCKET
  130. - GLOBAL_MODULES
  131. - GLOBAL_CONFIG
  132. - LDAP_URL
  133. - LDAP_BASE
  134. - LDAP_BINDDN
  135. - LDAP_BINDPW
  136. - LDAP_FILTER
  137. - LDAP_AUTH_METHOD
  138. - LDAP_VERSION
  139. - LDAP_USE_TLS
  140. - LDAP_TLS_CIPHERS
  141. - LDAP_TLS_CHECK_PEER
  142. - LDAP_TLS_CACERT_FILE
  143. - LDAP_TLS_CACERT_DIR
  144. - LDAP_START_TLS
  145. - XMPP_DOMAIN
  146. - XMPP_AUTH_DOMAIN
  147. - XMPP_GUEST_DOMAIN
  148. - XMPP_MUC_DOMAIN
  149. - XMPP_INTERNAL_MUC_DOMAIN
  150. - XMPP_MODULES
  151. - XMPP_MUC_MODULES
  152. - XMPP_INTERNAL_MUC_MODULES
  153. - XMPP_RECORDER_DOMAIN
  154. - XMPP_CROSS_DOMAIN
  155. - JICOFO_COMPONENT_SECRET
  156. - JICOFO_AUTH_USER
  157. - JICOFO_AUTH_PASSWORD
  158. - JVB_AUTH_USER
  159. - JVB_AUTH_PASSWORD
  160. - JIGASI_XMPP_USER
  161. - JIGASI_XMPP_PASSWORD
  162. - JIBRI_XMPP_USER
  163. - JIBRI_XMPP_PASSWORD
  164. - JIBRI_RECORDER_USER
  165. - JIBRI_RECORDER_PASSWORD
  166. - JWT_APP_ID
  167. - JWT_APP_SECRET
  168. - JWT_ACCEPTED_ISSUERS
  169. - JWT_ACCEPTED_AUDIENCES
  170. - JWT_ASAP_KEYSERVER
  171. - JWT_ALLOW_EMPTY
  172. - JWT_AUTH_TYPE
  173. - JWT_TOKEN_AUTH_MODULE
  174. - LOG_LEVEL
  175. - PUBLIC_URL
  176. - TZ
  177. networks:
  178. meet.jitsi:
  179. aliases:
  180. - ${XMPP_SERVER}
  181. # Focus component
  182. jicofo:
  183. image: jitsi/jicofo
  184. volumes:
  185. - ${CONFIG}/jicofo:/config
  186. environment:
  187. - AUTH_TYPE
  188. - BRIDGE_AVG_PARTICIPANT_STRESS
  189. - BRIDGE_STRESS_THRESHOLD
  190. - ENABLE_AUTH
  191. - ENABLE_AUTO_OWNER
  192. - ENABLE_CODEC_VP8
  193. - ENABLE_CODEC_VP9
  194. - ENABLE_CODEC_H264
  195. - ENABLE_RECORDING
  196. - ENABLE_SCTP
  197. - JICOFO_COMPONENT_SECRET
  198. - JICOFO_AUTH_USER
  199. - JICOFO_AUTH_PASSWORD
  200. - JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS
  201. - JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT
  202. - JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT
  203. - JICOFO_ENABLE_HEALTH_CHECKS
  204. - JICOFO_SHORT_ID
  205. - JICOFO_RESERVATION_ENABLED
  206. - JICOFO_RESERVATION_REST_BASE_URL
  207. - JIBRI_BREWERY_MUC
  208. - JIBRI_REQUEST_RETRIES
  209. - JIBRI_PENDING_TIMEOUT
  210. - JIGASI_BREWERY_MUC
  211. - JIGASI_SIP_URI
  212. - JVB_BREWERY_MUC
  213. - MAX_BRIDGE_PARTICIPANTS
  214. - OCTO_BRIDGE_SELECTION_STRATEGY
  215. - TZ
  216. - XMPP_DOMAIN
  217. - XMPP_AUTH_DOMAIN
  218. - XMPP_INTERNAL_MUC_DOMAIN
  219. - XMPP_MUC_DOMAIN
  220. - XMPP_SERVER
  221. depends_on:
  222. - prosody
  223. networks:
  224. meet.jitsi:
  225. # Video bridge
  226. jvb:
  227. image: jitsi/jvb
  228. ports:
  229. - '${JVB_PORT}:${JVB_PORT}/udp'
  230. - '${JVB_TCP_MAPPED_PORT}:${JVB_TCP_PORT}'
  231. volumes:
  232. - ${CONFIG}/jvb:/config
  233. environment:
  234. - DOCKER_HOST_ADDRESS
  235. - XMPP_AUTH_DOMAIN
  236. - XMPP_INTERNAL_MUC_DOMAIN
  237. - XMPP_SERVER
  238. - JVB_AUTH_USER
  239. - JVB_AUTH_PASSWORD
  240. - JVB_BREWERY_MUC
  241. - JVB_PORT
  242. - JVB_TCP_HARVESTER_DISABLED
  243. - JVB_TCP_PORT
  244. - JVB_TCP_MAPPED_PORT
  245. - JVB_STUN_SERVERS
  246. - JVB_ENABLE_APIS
  247. - JVB_WS_DOMAIN
  248. - JVB_WS_SERVER_ID
  249. - PUBLIC_URL
  250. - TZ
  251. depends_on:
  252. - prosody
  253. networks:
  254. meet.jitsi:
  255. labels:
  256. traefik.udp.routers.jvb.entrypoints: video
  257. traefik.udp.routers.jvb.service: jvb
  258. traefik.udp.services.jvb.loadbalancer.server.port: 10000
  259. # Custom network so all services can communicate using a FQDN
  260. networks:
  261. meet.jitsi:
  262. # traefik: change the following line to your external docker network
  263. web:
  264. external: true