You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

247 lines
5.3KB

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