docker-compose.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. version: '3'
  2. services:
  3. ### SERVICE: cloud
  4. cloud_db:
  5. image: mariadb
  6. restart: always
  7. environment:
  8. - MYSQL_DATABASE=nextcloud
  9. - MYSQL_USER=nextcloud
  10. env_file:
  11. - cloud/.env
  12. networks:
  13. - cloud
  14. volumes:
  15. - ${CHATONS_ROOT_DIR}/nextcloud/db:/var/lib/mysql
  16. cloud_app:
  17. image: nextcloud
  18. restart: always
  19. depends_on:
  20. - cloud_db
  21. labels:
  22. - "traefik.backend=nextcloud"
  23. - "traefik.docker.network=${COMPOSE_PROJECT_NAME}_traefik"
  24. - "traefik.frontend.rule=Host:cloud.${CHATONS_DOMAIN}"
  25. - "traefik.enable=true"
  26. - "traefik.port=80"
  27. networks:
  28. - cloud
  29. - traefik
  30. volumes:
  31. - ${CHATONS_ROOT_DIR}/nextcloud/app:/var/www/html
  32. ### SERVICE: homepage
  33. homepage_app:
  34. build: homepage
  35. restart: always
  36. labels:
  37. - "traefik.backend=homepage"
  38. - "traefik.docker.network=${COMPOSE_PROJECT_NAME}_traefik"
  39. # note: www must also be present because we need its certificate
  40. # and it is required for traefik redirection to work too (in traefik.yml)
  41. - "traefik.frontend.rule=Host:${CHATONS_DOMAIN},www.${CHATONS_DOMAIN}"
  42. - "traefik.enable=true"
  43. - "traefik.port=80"
  44. networks:
  45. - homepage
  46. - traefik
  47. ### SERVICE: pad
  48. pad_db:
  49. image: mariadb
  50. restart: always
  51. env_file:
  52. - pad/.env
  53. networks:
  54. - pad
  55. volumes:
  56. - ${CHATONS_ROOT_DIR}/etherpad/db:/var/lib/mysql
  57. pad_app:
  58. build: pad
  59. restart: always
  60. depends_on:
  61. - pad_db
  62. env_file:
  63. - pad/.env
  64. environment:
  65. - ETHERPAD_DB_HOST=pad_db
  66. - ETHERPAD_TITLE=Bloc Note
  67. labels:
  68. - "traefik.backend=etherpad"
  69. - "traefik.docker.network=${COMPOSE_PROJECT_NAME}_traefik"
  70. - "traefik.frontend.rule=Host:pad.${CHATONS_DOMAIN}"
  71. - "traefik.enable=true"
  72. - "traefik.port=9001"
  73. networks:
  74. - pad
  75. - traefik
  76. volumes:
  77. - ${CHATONS_ROOT_DIR}/etherpad/app:/opt/etherpad-lite/var
  78. ### TRAEFIK
  79. traefik:
  80. image: traefik
  81. command: --docker.domain=${CHATONS_DOMAIN} --acme.email=${CHATONS_MAIL}
  82. restart: always
  83. ports:
  84. - 80:80
  85. - 443:443
  86. - 127.0.0.1:8080:8080
  87. networks:
  88. - traefik
  89. volumes:
  90. - /var/run/docker.sock:/var/run/docker.sock
  91. - ${CHATONS_ROOT_DIR}/traefik/acme.json:/acme.json
  92. - ${CHATONS_ROOT_DIR}/traefik/traefik.toml:/traefik.toml
  93. ### NETWORKS
  94. networks:
  95. traefik:
  96. cloud:
  97. homepage:
  98. pad: