docker-compose.yml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. version: '3.4'
  2. services:
  3. ejabberd:
  4. image: ejabberd/ecs:22.05
  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. expose:
  19. - 80
  20. entrypoint: /home/ejabberd/entrypoint.sh
  21. command: foreground
  22. healthcheck:
  23. # test: ["CMD", "nc", "-z", "ejabberd:5347"]
  24. test: /home/ejabberd/bin/ejabberdctl status | grep -q started
  25. interval: 15s #interval for the first and subsequent checks
  26. timeout: 10s
  27. retries: 3
  28. volumes:
  29. - ./entrypoint.sh:/home/ejabberd/entrypoint.sh:ro
  30. - ./data/backup/:/home/ejabberd/backup/
  31. - ./data/conf/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml:ro
  32. - ./data/conf.custom/:/home/ejabberd/conf.custom/:ro
  33. - ./data/conf.d/:/home/ejabberd/conf/conf.d/:ro
  34. - ./data/database/:/home/ejabberd/database/
  35. - ./data/upload/:/home/ejabberd/upload/
  36. - ./data/www:/home/ejabberd/www/
  37. - /opt/docker/reverse-proxy/data/certs/${HOSTNAME}:/etc/ssl/ejabberd:ro
  38. environment:
  39. IP_ADDRESS: ${IP_ADDRESS}
  40. IRCPASS: ${IRCPASS}
  41. VIRTUAL_HOST: >
  42. ${HOSTNAME},
  43. conference.${HOSTNAME},
  44. pubsub.${HOSTNAME},
  45. upload.${HOSTNAME},
  46. irc.${HOSTNAME},
  47. proxy.${HOSTNAME},
  48. push.${HOSTNAME}
  49. LETSENCRYPT_HOST: >
  50. ${HOSTNAME},
  51. conference.${HOSTNAME},
  52. pubsub.${HOSTNAME},
  53. upload.${HOSTNAME},
  54. irc.${HOSTNAME},
  55. proxy.${HOSTNAME},
  56. push.${HOSTNAME}
  57. LETSENCRYPT_EMAIL: webmaster@${HOSTNAME}
  58. ACME_POST_HOOK: install --owner=9000 --group=9000 --mode=500 --preserve-timestamps /etc/nginx/certs/${HOSTNAME}/key.pem /etc/nginx/certs/${HOSTNAME}/ejabberd-key.pem
  59. networks:
  60. - reverse-proxy_default
  61. - irc
  62. - db_default
  63. biboumi:
  64. image: louiz/biboumi:9.0
  65. container_name: ejabberd_biboumi
  66. mem_limit: 200m
  67. restart: on-failure:3
  68. ports:
  69. - 113:8113 #identd, used by irc servers to differentiate user coming from one host#
  70. depends_on:
  71. ejabberd:
  72. condition: service_healthy
  73. volumes:
  74. - ./data/biboumi/database/:/var/lib/biboumi/
  75. - ./data/biboumi/ca-bundle.crt:/etc/ssl/certs/ca-bundle.crt
  76. environment:
  77. BIBOUMI_HOSTNAME: irc.${HOSTNAME}
  78. BIBOUMI_PORT: 5347
  79. BIBOUMI_PASSWORD: ${IRCPASS}
  80. BIBOUMI_XMPP_SERVER_IP: ejabberd
  81. BIBOUMI_ADMIN: admin@${HOSTNAME}
  82. BIBOUMI_IDENTD_PORT: 8113 ## the biboumi has not the privilege to open port 113 directly
  83. BIBOUMI_log_level: 1 ## disable logging of chat messages
  84. networks:
  85. - irc
  86. networks:
  87. db_default:
  88. external: true
  89. reverse-proxy_default:
  90. external: true
  91. irc: