docker-compose.yml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. version: '3.9'
  2. services:
  3. keycloak:
  4. build:
  5. context: .
  6. dockerfile: keycloak.Containerfile
  7. args:
  8. KC_DB_USERNAME: ${KC_DB_USERNAME}
  9. KC_DB_PASSWORD: ${KC_DB_PASSWORD}
  10. container_name: keycloak
  11. environment:
  12. KC_DB: postgres
  13. KC_DB_URL: jdbc:postgresql://keycloak-db:5432/keycloak
  14. KC_DB_USERNAME: ${KC_DB_USERNAME}
  15. KC_DB_PASSWORD: ${KC_DB_PASSWORD}
  16. KC_PROXY_HEADERS: xforwarded
  17. KC_PROXY_ADDRESS_FORWARDING: "true"
  18. KC_HTTP_ENABLED: "true"
  19. KC_HOSTNAME_STRICT: "false"
  20. KC_PROXY: edge
  21. KC_FEATURES: "token-exchange,scripts,preview,admin-api"
  22. KC_HEALTH_ENABLED: "true"
  23. KC_METRICS_ENABLED: "true"
  24. KC_HOSTNAME: https://auth.mrx8086.com
  25. KC_BOOTSTRAP_ADMIN_USERNAME: admin
  26. KC_BOOTSTRAP_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
  27. command: ["start-dev"] # Für Entwicklung; entferne "-dev" für Produktion
  28. ports:
  29. - "8080:8080"
  30. volumes:
  31. - ../config/keycloak/themes:/opt/keycloak/themes:ro
  32. networks:
  33. - keycloak-network
  34. depends_on:
  35. - keycloak-db
  36. extra_hosts:
  37. - "cloud.mrx8086.com:172.23.171.133"
  38. - "docs.mrx8086.com:172.23.171.133"
  39. healthcheck:
  40. test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
  41. interval: 30s
  42. timeout: 10s
  43. retries: 3
  44. keycloak-db:
  45. image: postgres:15
  46. container_name: keycloak-db
  47. environment:
  48. POSTGRES_DB: keycloak
  49. POSTGRES_USER: ${KC_DB_USERNAME}
  50. POSTGRES_PASSWORD: ${KC_DB_PASSWORD}
  51. volumes:
  52. - ../data/keycloak-db:/var/lib/postgresql/data
  53. networks:
  54. - keycloak-network
  55. restart: unless-stopped
  56. healthcheck:
  57. test: ["CMD-SHELL", "pg_isready -U ${KC_DB_USERNAME} -d keycloak"]
  58. interval: 10s
  59. timeout: 5s
  60. retries: 5
  61. # In docker-compose.yml ergänzen:
  62. nextcloud:
  63. image: nextcloud:latest
  64. container_name: nextcloud
  65. restart: unless-stopped
  66. ports:
  67. - "8081:80"
  68. volumes:
  69. - ../data/nextcloud:/var/www/html
  70. - ../config/nextcloud/config:/var/www/html/config
  71. - ../config/nextcloud/custom_apps:/var/www/html/custom_apps
  72. - ../data/nextcloud-db:/var/lib/mysql
  73. environment:
  74. - MYSQL_HOST=nextcloud-db
  75. - MYSQL_DATABASE=nextcloud
  76. - MYSQL_USER=${NEXTCLOUD_DB_USER}
  77. - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
  78. - NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
  79. - NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
  80. - NEXTCLOUD_TRUSTED_DOMAINS=cloud.mrx8086.com
  81. - OVERWRITEPROTOCOL=https
  82. - OVERWRITEHOST=cloud.mrx8086.com
  83. - OVERWRITEWEBROOT=/
  84. - TRUSTED_PROXIES=172.19.0.0/16
  85. - NEXTCLOUD_URL=https://cloud.mrx8086.com
  86. - NEXTCLOUD_DEBUG=1
  87. - NEXTCLOUD_CONFIG_CUSTOM_SCOPE="openid profile groups-nextcloud"
  88. healthcheck:
  89. test: ["CMD", "curl", "-f", "http://localhost:80/"]
  90. interval: 30s
  91. timeout: 10s
  92. retries: 3
  93. networks:
  94. - nextcloud-network
  95. depends_on:
  96. - nextcloud-db
  97. extra_hosts:
  98. - "auth.mrx8086.com:172.23.171.133"
  99. dns:
  100. - 8.8.8.8
  101. - 8.8.4.4
  102. nextcloud-db:
  103. image: mariadb:10.6
  104. container_name: nextcloud-db
  105. restart: unless-stopped
  106. command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
  107. environment:
  108. - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_DB_ROOT_PASSWORD}
  109. - MYSQL_DATABASE=nextcloud
  110. - MYSQL_USER=${NEXTCLOUD_DB_USER}
  111. - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
  112. volumes:
  113. - ../data/nextcloud-db:/var/lib/mysql
  114. networks:
  115. - nextcloud-network
  116. paperless:
  117. build:
  118. context: .
  119. dockerfile: paperless.Containerfile
  120. container_name: paperless
  121. restart: unless-stopped
  122. ports:
  123. - "8000:8000"
  124. volumes:
  125. - ../data/paperless:/usr/src/paperless/data
  126. - ../config/paperless/media:/usr/src/paperless/media
  127. - ../config/paperless/export:/usr/src/paperless/export
  128. - ../config/paperless/consume:/usr/src/paperless/consume
  129. - ../config/paperless/src/custom_settings.py:/usr/src/paperless/custom_settings.py
  130. - ../config/paperless/src/middleware.py:/usr/src/paperless/middleware.py
  131. environment:
  132. # Base Configuration
  133. - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY}
  134. - PAPERLESS_REDIS=redis://paperless-redis:6379
  135. - PAPERLESS_DBHOST=paperless-db
  136. - PAPERLESS_DBPORT=5432
  137. - PAPERLESS_DBNAME=paperless
  138. - PAPERLESS_DBUSER=${PAPERLESS_DB_USER}
  139. - PAPERLESS_DBPASS=${PAPERLESS_DB_PASSWORD}
  140. - PAPERLESS_URL=https://docs.mrx8086.com
  141. - PAPERLESS_ALLOWED_HOSTS=*
  142. - PAPERLESS_FORCE_SCRIPT_NAME=
  143. - PAPERLESS_CSRF_TRUSTED_ORIGINS=https://docs.mrx8086.com
  144. # Authentication Configuration
  145. - PAPERLESS_NO_NATIVE_AUTH=true
  146. - PAPERLESS_DISABLE_PASSWORD_LOGIN=true
  147. # Debug settings
  148. - PAPERLESS_DEBUG=true
  149. - PAPERLESS_LOG_LEVEL=DEBUG
  150. - DJANGO_LOG_LEVEL=DEBUG
  151. - PYTHONPATH=/usr/src/paperless
  152. - DJANGO_SETTINGS_MODULE=custom_settings
  153. depends_on:
  154. - paperless-db
  155. - paperless-redis
  156. networks:
  157. - paperless-network
  158. extra_hosts:
  159. - "auth.mrx8086.com:172.23.171.133"
  160. - "docs.mrx8086.com:172.23.171.133"
  161. dns:
  162. - 8.8.8.8
  163. - 8.8.4.4
  164. healthcheck:
  165. test: ["CMD", "curl", "-f", "http://localhost:8000/"]
  166. interval: 30s
  167. timeout: 10s
  168. retries: 3
  169. paperless-db:
  170. image: postgres:15
  171. container_name: paperless-db
  172. restart: unless-stopped
  173. environment:
  174. POSTGRES_USER: ${PAPERLESS_DB_USER}
  175. POSTGRES_PASSWORD: ${PAPERLESS_DB_PASSWORD}
  176. POSTGRES_DB: paperless
  177. volumes:
  178. - ../data/paperless-db:/var/lib/postgresql/data
  179. networks:
  180. - paperless-network
  181. healthcheck:
  182. test: ["CMD-SHELL", "pg_isready -U ${PAPERLESS_DB_USER} -d paperless"]
  183. interval: 10s
  184. timeout: 5s
  185. retries: 5
  186. paperless-redis:
  187. image: redis:7
  188. container_name: paperless-redis
  189. restart: unless-stopped
  190. networks:
  191. - paperless-network
  192. healthcheck:
  193. test: ["CMD", "redis-cli", "ping"]
  194. interval: 10s
  195. timeout: 5s
  196. retries: 5
  197. networks:
  198. keycloak-network:
  199. name: keycloak-network
  200. driver: bridge
  201. nextcloud-network:
  202. name: nextcloud-network
  203. driver: bridge
  204. paperless-network:
  205. name: paperless-network