docker-compose.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. version: '3.4'
  2. services:
  3. ejabberd:
  4. image: ejabberd/ecs:21.12
  5. container_name: ejabberd
  6. hostname: ${HOSTNAME}
  7. mem_limit: 512m
  8. restart: on-failure:3
  9. ports:
  10. - 5222:5222 #c2s stattls#
  11. - 5223:5223 #c2s ssl#
  12. - 5269:5269 #s2s#
  13. - 5280:5280 #bosh + admin#
  14. - 5443:5443 #http-upload#
  15. - 3478:3478/udp #stun/turn
  16. - 5349:5349/tcp #stuns/turns
  17. - 7777:7777 #proxy65
  18. entrypoint: /home/ejabberd/entrypoint.sh
  19. command: foreground
  20. healthcheck:
  21. test: ["CMD", "nc", "-z", "ejabberd:5347"]
  22. interval: 15s #interval for the first and subsequent checks
  23. timeout: 10s
  24. retries: 3
  25. volumes:
  26. - ./entrypoint.sh:/home/ejabberd/entrypoint.sh:ro
  27. - ./data/conf/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml:ro
  28. - ./data/conf.d/:/home/ejabberd/conf/conf.d/:ro
  29. - ./data/database/:/home/ejabberd/database/
  30. - ./data/backup/:/home/ejabberd/backup/
  31. - ./data/upload/:/home/ejabberd/upload/
  32. - /opt/docker/reverse-proxy/data/certs/${HOSTNAME}:/etc/ssl/ejabberd:ro
  33. environment:
  34. IP_ADDRESS: ${IP_ADDRESS}
  35. IRCPASS: ${IRCPASS}
  36. VIRTUAL_HOST: >
  37. ${HOSTNAME},
  38. conference.${HOSTNAME},
  39. pubsub.${HOSTNAME},
  40. upload.${HOSTNAME},
  41. irc.${HOSTNAME},
  42. proxy.${HOSTNAME},
  43. push.${HOSTNAME}
  44. LETSENCRYPT_HOST: >
  45. ${HOSTNAME},
  46. conference.${HOSTNAME},
  47. pubsub.${HOSTNAME},
  48. upload.${HOSTNAME},
  49. irc.${HOSTNAME},
  50. proxy.${HOSTNAME},
  51. push.${HOSTNAME}
  52. LETSENCRYPT_EMAIL: webmaster@${HOSTNAME}
  53. networks:
  54. - reverse-proxy_default
  55. - irc
  56. biboumi:
  57. image: louiz/biboumi:9.0
  58. container_name: ejabberd_biboumi
  59. mem_limit: 200m
  60. restart: on-failure:3
  61. ports:
  62. - 113:8113 #identd, used by irc servers to differentiate user coming from one host#
  63. depends_on:
  64. ejabberd:
  65. condition: service_healthy
  66. volumes:
  67. - ./data/biboumi/database/:/var/lib/biboumi/
  68. - ./data/biboumi/ca-bundle.crt:/etc/ssl/certs/ca-bundle.crt
  69. environment:
  70. BIBOUMI_HOSTNAME: irc.${HOSTNAME}
  71. BIBOUMI_PORT: 5347
  72. BIBOUMI_PASSWORD: ${IRCPASS}
  73. BIBOUMI_XMPP_SERVER_IP: ejabberd
  74. BIBOUMI_ADMIN: admin@${HOSTNAME}
  75. BIBOUMI_IDENTD_PORT: 8113 ## the biboumi has not the privilege to open port 113 directly
  76. BIBOUMI_log_level: 1 ## disable logging of chat messages
  77. networks:
  78. - irc
  79. networks:
  80. reverse-proxy_default:
  81. external: true
  82. irc: