No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

255 líneas
5.3KB

  1. version: '3.1'
  2. services:
  3. openldap:
  4. build:
  5. context: ./images/openldap/
  6. image: bingen/${ARCH}-openldap:latest
  7. deploy:
  8. placement:
  9. constraints:
  10. - node.role == manager
  11. secrets:
  12. - source: ldap_pwd
  13. target: admin_pwd
  14. uid: '999'
  15. mode: 0440
  16. - source: ldap_mail_pwd
  17. target: mail_pwd
  18. uid: '999'
  19. mode: 0440
  20. - source: ldap_nextcloud_pwd
  21. target: nextcloud_pwd
  22. uid: '999'
  23. mode: 0440
  24. - source: ldap_gogs_pwd
  25. target: gogs_pwd
  26. uid: '999'
  27. mode: 0440
  28. # container_name: openldap
  29. tty: true
  30. stdin_open: true
  31. env_file:
  32. - openldap.env
  33. networks:
  34. - default
  35. #ports:
  36. #- "389:389"
  37. #- "639:639"
  38. #- "8080:80"
  39. volumes:
  40. - ${LDAP_DATA_VOLUME_PATH}:/var/lib/ldap
  41. - ${LDAP_CONFIG_VOLUME_PATH}:/etc/ldap/slapd.d
  42. - ${LDAP_CERTS_VOLUME_PATH}:/container/service/slapd/assets/certs/
  43. hostname: openldap.${LDAP_DOMAIN}
  44. db:
  45. build:
  46. context: ./images/mariadb/
  47. image: bingen/${ARCH}-mariadb:latest
  48. secrets:
  49. - source: db_pwd
  50. target: admin_pwd
  51. mode: 0440
  52. #container_name: mariadb
  53. env_file:
  54. - mariadb.env
  55. networks:
  56. - default
  57. #ports:
  58. #- "3306:3306"
  59. volumes:
  60. #- ${DB_CONFIG_VOLUME_PATH}:/etc/mysql
  61. - ${DB_DATA_VOLUME_PATH}:/var/lib/mysql
  62. haproxy:
  63. build:
  64. context: ./images/haproxy/
  65. image: bingen/${ARCH}-haproxy:latest
  66. depends_on:
  67. # For DNS resolution
  68. - nextcloud
  69. - gogs
  70. - pihole
  71. env_file:
  72. - haproxy.env
  73. networks:
  74. - default
  75. ports:
  76. - "80:80"
  77. - "443:443"
  78. volumes:
  79. - ${LETSENCRYPT_VOLUME_PATH}:/etc/letsencrypt
  80. mail:
  81. build:
  82. context: ./images/email/
  83. image: bingen/${ARCH}-mailserver:latest
  84. depends_on:
  85. - openldap
  86. secrets:
  87. - source: ldap_mail_pwd
  88. target: ldap_pwd
  89. uid: '999'
  90. mode: 0440
  91. hostname: ${MAIL_HOSTNAME}.${MAIL_DOMAIN}
  92. #domainname: ${MAIL_DOMAIN}
  93. env_file:
  94. - mail.env
  95. networks:
  96. - default
  97. ports:
  98. - "25:25"
  99. - "143:143"
  100. - "587:587"
  101. - "993:993"
  102. volumes:
  103. - ${MAIL_DATA_VOLUME_PATH}:${MAIL_DATA_PATH}
  104. #- ${MAIL_STATE_VOLUME_PATH}:${MAIL_STATE_PATH}
  105. cap_add:
  106. - NET_ADMIN
  107. nextcloud:
  108. build:
  109. context: ./images/nextcloud/
  110. args:
  111. - NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION}
  112. - NEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}
  113. - NEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH}
  114. image: bingen/${ARCH}-nextcloud:latest
  115. # deploy:
  116. # placement:
  117. # constraints:
  118. # - node.role == worker
  119. depends_on:
  120. - db
  121. - openldap
  122. #- haproxy
  123. secrets:
  124. - source: nextcloud_admin_pwd
  125. target: admin_pwd
  126. uid: '999'
  127. mode: 0440
  128. - source: ldap_nextcloud_pwd
  129. target: ldap_pwd
  130. uid: '999'
  131. mode: 0440
  132. - source: db_pwd
  133. target: mysql_pwd
  134. mode: 0440
  135. - source: nextcloud_salt
  136. target: salt
  137. uid: '999'
  138. mode: 0440
  139. - source: nextcloud_secret
  140. target: secret
  141. uid: '999'
  142. mode: 0440
  143. env_file:
  144. - nextcloud.env
  145. networks:
  146. - default
  147. ports:
  148. - "8000:80"
  149. - "8443:443"
  150. volumes:
  151. - ${NEXTCLOUD_DATA_VOLUME_PATH}:${NEXTCLOUD_DATA_PATH}
  152. - ${NEXTCLOUD_BACKUP_VOLUME_PATH}:${NEXTCLOUD_BACKUP_PATH}
  153. sftp:
  154. build:
  155. context: ./images/sftp/
  156. image: bingen/${ARCH}-sftp
  157. ports:
  158. - "1022:22"
  159. volumes:
  160. - ${PAPERLESS_CONSUMPTION_VOLUME_PATH}:${PAPERLESS_CONSUMPTION_PATH}
  161. secrets:
  162. - source: paperless_ftp_pwd
  163. target: ftp_pwd
  164. uid: '999'
  165. mode: 0440
  166. env_file:
  167. - sftp.env
  168. gogs:
  169. build:
  170. context: ./images/gogs/
  171. image: bingen/${ARCH}-gogs
  172. depends_on:
  173. - db
  174. - openldap
  175. env_file:
  176. - gogs.env
  177. ports:
  178. - "2080:2080"
  179. - "2443:2443"
  180. - "2022:22"
  181. volumes:
  182. - ${GOGS_DATA_VOLUME_PATH}:/data
  183. secrets:
  184. - source: db_pwd
  185. target: mysql_pwd
  186. mode: 0440
  187. - source: ldap_gogs_pwd
  188. target: ldap_pwd
  189. uid: '999'
  190. mode: 0440
  191. - source: gogs_admin_pwd
  192. target: admin_pwd
  193. uid: '999'
  194. mode: 0440
  195. pihole:
  196. image: pihole/pihole:latest
  197. deploy:
  198. placement:
  199. constraints:
  200. - node.role == manager
  201. env_file:
  202. - pihole.env
  203. # cap_add: # for DHCP
  204. # - NET_ADMIN
  205. ports:
  206. - "53:53/tcp"
  207. - "53:53/udp"
  208. # - "67:67/udp" # for DHCP
  209. - "8314:80"
  210. - "3443:443"
  211. volumes:
  212. - ${PIHOLE_CONFIG_VOLUME_PATH}:/etc/pihole/
  213. - ${PIHOLE_DNSMASQ_VOLUME_PATH}:/etc/dnsmasq.d/
  214. restart: always
  215. #wordpress:
  216. #transmission:
  217. #image: lsioarmhf/transmission:15.01.17
  218. secrets:
  219. db_pwd:
  220. external: true
  221. ldap_pwd:
  222. external: true
  223. ldap_mail_pwd:
  224. external: true
  225. ldap_nextcloud_pwd:
  226. external: true
  227. ldap_gogs_pwd:
  228. external: true
  229. nextcloud_admin_pwd:
  230. external: true
  231. nextcloud_salt:
  232. external: true
  233. nextcloud_secret:
  234. external: true
  235. gogs_admin_pwd:
  236. external: true
  237. paperless_webserver_pwd:
  238. external: true
  239. paperless_passphrase:
  240. external: true
  241. paperless_ftp_pwd:
  242. external: true
  243. networks:
  244. default:
  245. driver: overlay