Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

258 lines
5.6KB

  1. version: '3.1'
  2. services:
  3. openldap:
  4. build:
  5. context: ./images/rpi-openldap/
  6. image: bingen/rpi-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/rpi-mariadb/
  47. image: bingen/rpi-mariadb:latest
  48. secrets:
  49. - source: db_pwd
  50. target: admin_pwd
  51. mode: 0440
  52. environment:
  53. - MYSQL_ROOT_PWD_FILE=/run/secrets/admin_pwd
  54. #container_name: mariadb
  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/rpi-haproxy/
  65. image: bingen/rpi-haproxy:latest
  66. depends_on:
  67. # For DNS resolution
  68. - nextcloud
  69. - gogs
  70. env_file:
  71. - haproxy.env
  72. networks:
  73. - default
  74. ports:
  75. - "80:80"
  76. - "443:443"
  77. volumes:
  78. - ${LETSENCRYPT_VOLUME_PATH}:/etc/letsencrypt
  79. mail:
  80. build:
  81. context: ./images/rpi-email/
  82. image: bingen/rpi-mailserver:latest
  83. depends_on:
  84. - openldap
  85. secrets:
  86. - source: ldap_mail_pwd
  87. target: ldap_pwd
  88. uid: '999'
  89. mode: 0440
  90. hostname: ${MAIL_HOSTNAME}.${MAIL_DOMAIN}
  91. #domainname: ${MAIL_DOMAIN}
  92. env_file:
  93. - mail.env
  94. networks:
  95. - default
  96. ports:
  97. - "25:25"
  98. - "143:143"
  99. - "587:587"
  100. - "993:993"
  101. volumes:
  102. - ${MAIL_DATA_VOLUME_PATH}:${MAIL_DATA_PATH}
  103. #- ${MAIL_STATE_VOLUME_PATH}:${MAIL_STATE_PATH}
  104. cap_add:
  105. - NET_ADMIN
  106. nextcloud:
  107. build:
  108. context: ./images/rpi-nextcloud/
  109. args:
  110. - NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION}
  111. - NEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}
  112. - NEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH}
  113. image: bingen/rpi-nextcloud:latest
  114. deploy:
  115. placement:
  116. constraints:
  117. - node.role == worker
  118. depends_on:
  119. - db
  120. - openldap
  121. #- haproxy
  122. secrets:
  123. - source: nextcloud_admin_pwd
  124. target: admin_pwd
  125. uid: '999'
  126. mode: 0440
  127. - source: ldap_nextcloud_pwd
  128. target: ldap_pwd
  129. uid: '999'
  130. mode: 0440
  131. - source: db_pwd
  132. target: mysql_pwd
  133. mode: 0440
  134. - source: nextcloud_salt
  135. target: salt
  136. uid: '999'
  137. mode: 0440
  138. - source: nextcloud_secret
  139. target: secret
  140. uid: '999'
  141. mode: 0440
  142. env_file:
  143. - nextcloud.env
  144. networks:
  145. - default
  146. ports:
  147. - "8000:80"
  148. - "8443:443"
  149. volumes:
  150. - ${NEXTCLOUD_DATA_VOLUME_PATH}:${NEXTCLOUD_DATA_PATH}
  151. - ${NEXTCLOUD_BACKUP_VOLUME_PATH}:${NEXTCLOUD_BACKUP_PATH}
  152. sftp:
  153. build:
  154. context: ./images/rpi-sftp/
  155. image: bingen/rpi-sftp
  156. ports:
  157. - "1022:22"
  158. volumes:
  159. - ${PAPERLESS_CONSUMPTION_VOLUME_PATH}:${PAPERLESS_CONSUMPTION_PATH}
  160. secrets:
  161. - source: paperless_ftp_pwd
  162. target: ftp_pwd
  163. uid: '999'
  164. mode: 0440
  165. env_file:
  166. - sftp.env
  167. paperless:
  168. build:
  169. context: ./images/rpi-paperless/
  170. image: bingen/rpi-paperless
  171. depends_on:
  172. - sftp
  173. ports:
  174. - "8081:8000"
  175. volumes:
  176. - ${PAPERLESS_CONSUMPTION_VOLUME_PATH}:${PAPERLESS_CONSUMPTION_PATH}
  177. - ${PAPERLESS_DATA_VOLUME_PATH}:/usr/src/paperless/data
  178. - ${PAPERLESS_MEDIA_VOLUME_PATH}:/usr/src/paperless/media
  179. - ${PAPERLESS_EXPORT_VOLUME_PATH}:${PAPERLESS_EXPORT_PATH}
  180. secrets:
  181. - source: paperless_webserver_pwd
  182. target: webserver_pwd
  183. uid: '999'
  184. mode: 0440
  185. - source: paperless_passphrase
  186. target: passphrase
  187. uid: '999'
  188. mode: 0440
  189. env_file:
  190. - paperless.env
  191. gogs:
  192. build:
  193. context: ./images/rpi-gogs/
  194. image: bingen/rpi-gogs
  195. depends_on:
  196. - db
  197. - openldap
  198. env_file:
  199. - gogs.env
  200. ports:
  201. - "2080:2080"
  202. - "2443:2443"
  203. - "2022:22"
  204. volumes:
  205. - ${GOGS_DATA_VOLUME_PATH}:/data
  206. secrets:
  207. - source: db_pwd
  208. target: mysql_pwd
  209. mode: 0440
  210. - source: ldap_gogs_pwd
  211. target: ldap_pwd
  212. uid: '999'
  213. mode: 0440
  214. - source: gogs_admin_pwd
  215. target: admin_pwd
  216. uid: '999'
  217. mode: 0440
  218. #wordpress:
  219. #transmission:
  220. #image: lsioarmhf/transmission:15.01.17
  221. secrets:
  222. db_pwd:
  223. external: true
  224. ldap_pwd:
  225. external: true
  226. ldap_mail_pwd:
  227. external: true
  228. ldap_nextcloud_pwd:
  229. external: true
  230. ldap_gogs_pwd:
  231. external: true
  232. nextcloud_admin_pwd:
  233. external: true
  234. nextcloud_salt:
  235. external: true
  236. nextcloud_secret:
  237. external: true
  238. gogs_admin_pwd:
  239. external: true
  240. paperless_webserver_pwd:
  241. external: true
  242. paperless_passphrase:
  243. external: true
  244. paperless_ftp_pwd:
  245. external: true
  246. networks:
  247. default:
  248. driver: overlay