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.

249 lines
5.4KB

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