您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

254 行
5.3KB

  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. gogs:
  168. build:
  169. context: ./images/rpi-gogs/
  170. image: bingen/rpi-gogs
  171. depends_on:
  172. - db
  173. - openldap
  174. env_file:
  175. - gogs.env
  176. ports:
  177. - "2080:2080"
  178. - "2443:2443"
  179. - "2022:22"
  180. volumes:
  181. - ${GOGS_DATA_VOLUME_PATH}:/data
  182. secrets:
  183. - source: db_pwd
  184. target: mysql_pwd
  185. mode: 0440
  186. - source: ldap_gogs_pwd
  187. target: ldap_pwd
  188. uid: '999'
  189. mode: 0440
  190. - source: gogs_admin_pwd
  191. target: admin_pwd
  192. uid: '999'
  193. mode: 0440
  194. pihole:
  195. image: pihole/pihole:v4.0_armhf
  196. deploy:
  197. placement:
  198. constraints:
  199. - node.role == manager
  200. env_file:
  201. - pihole.env
  202. # cap_add: # for DHCP
  203. # - NET_ADMIN
  204. ports:
  205. - "53:53/tcp"
  206. - "53:53/udp"
  207. # - "67:67/udp" # for DHCP
  208. - "8314:80"
  209. - "3443:443"
  210. volumes:
  211. - ${PIHOLE_CONFIG_VOLUME_PATH}:/etc/pihole/
  212. - ${PIHOLE_DNSMASQ_VOLUME_PATH}:/etc/dnsmasq.d/
  213. restart: always
  214. #wordpress:
  215. #transmission:
  216. #image: lsioarmhf/transmission:15.01.17
  217. secrets:
  218. db_pwd:
  219. external: true
  220. ldap_pwd:
  221. external: true
  222. ldap_mail_pwd:
  223. external: true
  224. ldap_nextcloud_pwd:
  225. external: true
  226. ldap_gogs_pwd:
  227. external: true
  228. nextcloud_admin_pwd:
  229. external: true
  230. nextcloud_salt:
  231. external: true
  232. nextcloud_secret:
  233. external: true
  234. gogs_admin_pwd:
  235. external: true
  236. paperless_webserver_pwd:
  237. external: true
  238. paperless_passphrase:
  239. external: true
  240. paperless_ftp_pwd:
  241. external: true
  242. networks:
  243. default:
  244. driver: overlay