|
|
@@ -0,0 +1,253 @@
|
|
|
+version: '3.8'
|
|
|
+
|
|
|
+services:
|
|
|
+ npm:
|
|
|
+ image: 'jc21/nginx-proxy-manager:latest'
|
|
|
+ container_name: 'nginx-proxy-manager'
|
|
|
+ restart: unless-stopped
|
|
|
+ ports:
|
|
|
+ - "80:80"
|
|
|
+ - "81:81"
|
|
|
+ - "443:443"
|
|
|
+ volumes:
|
|
|
+ - ../data/npm:/data
|
|
|
+ - ../data/npm_letsencrypt:/etc/letsencrypt
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ paperless:
|
|
|
+ image: 'ghcr.io/paperless-ngx/paperless-ngx:latest'
|
|
|
+ container_name: 'paperless'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - PAPERLESS_DB_HOST=${PAPERLESS_DB_HOST}
|
|
|
+ - PAPERLESS_DB_NAME=${PAPERLESS_DB_NAME}
|
|
|
+ - PAPERLESS_DB_USER=${PAPERLESS_DB_USER}
|
|
|
+ - PAPERLESS_DB_PASSWORD=${PAPERLESS_DB_PASSWORD}
|
|
|
+ - PAPERLESS_REDIS=redis://paperless-redis:6379
|
|
|
+ ports:
|
|
|
+ - "8000:8000"
|
|
|
+ volumes:
|
|
|
+ - ../data/paperless:/usr/src/paperless/data
|
|
|
+ depends_on:
|
|
|
+ - paperless-db
|
|
|
+ - paperless-redis
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ paperless-db:
|
|
|
+ image: 'postgres:13'
|
|
|
+ container_name: 'paperless-db'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - POSTGRES_DB=${PAPERLESS_DB_NAME}
|
|
|
+ - POSTGRES_USER=${PAPERLESS_DB_USER}
|
|
|
+ - POSTGRES_PASSWORD=${PAPERLESS_DB_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "5432:5432" # Expose PostgreSQL on host port 5432
|
|
|
+ volumes:
|
|
|
+ - ../data/paperless_db:/var/lib/postgresql/data
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ paperless-redis:
|
|
|
+ image: 'redis:alpine'
|
|
|
+ container_name: 'paperless-redis'
|
|
|
+ ports:
|
|
|
+ - "6379:6379"
|
|
|
+ restart: unless-stopped
|
|
|
+ volumes:
|
|
|
+ - ../data/paperless_redis:/data
|
|
|
+ healthcheck:
|
|
|
+ test: ["CMD", "redis-cli", "ping"]
|
|
|
+ interval: 10s
|
|
|
+ timeout: 5s
|
|
|
+ retries: 5
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ nextcloud:
|
|
|
+ image: 'nextcloud:latest'
|
|
|
+ container_name: 'nextcloud'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - MYSQL_HOST=${NEXTCLOUD_DB_HOST}
|
|
|
+ - MYSQL_DATABASE=${NEXTCLOUD_DB_NAME}
|
|
|
+ - MYSQL_USER=${NEXTCLOUD_DB_USER}
|
|
|
+ - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
|
|
|
+ - OVERWRITEPROTOCOL=https # Setze das Protokoll auf HTTPS
|
|
|
+ - TRUSTED_PROXIES=172.18.0.5 # Setze die trusted_proxies
|
|
|
+ - OVERWRITE_CLI_URL=https://cloud.mrx8086.com # Setze die CLI-URL auf HTTPS
|
|
|
+ ports:
|
|
|
+ - "9080:80" # HTTP Port für Nextcloud
|
|
|
+ - "9443:443" # HTTPS Port für Nextcloud
|
|
|
+ volumes:
|
|
|
+ - ../data/nextcloud:/var/www/html
|
|
|
+ - ../configs/certs/mrx8086.com:/etc/ssl/certs/mrx8086.com
|
|
|
+ - ../configs/nextcloud/nextcloud-ssl.conf:/etc/apache2/sites-available/nextcloud-ssl.conf
|
|
|
+ - ../configs/nextcloud/hsts.conf:/etc/apache2/conf-available/hsts.conf # HSTS Konfiguration hinzufügen
|
|
|
+ - ../configs/nextcloud/config.php:/var/www/html/config/config.php # Überschreibe config.php
|
|
|
+ depends_on:
|
|
|
+ - nextcloud-db
|
|
|
+ networks:
|
|
|
+ automate-network:
|
|
|
+ ipv4_address: 172.18.0.11
|
|
|
+ extra_hosts:
|
|
|
+ - "auth.mrx8086.com:172.18.0.6"
|
|
|
+ - "cloud.mrx8086.com:172.18.0.11"
|
|
|
+ command: >
|
|
|
+ bash -c "
|
|
|
+ a2enmod ssl &&
|
|
|
+ a2ensite nextcloud-ssl &&
|
|
|
+ a2enconf hsts &&
|
|
|
+ apache2-foreground"
|
|
|
+
|
|
|
+ nextcloud-db:
|
|
|
+ image: 'mariadb:latest'
|
|
|
+ container_name: 'nextcloud-db'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_DB_ROOT_PASSWORD}
|
|
|
+ - MYSQL_DATABASE=${NEXTCLOUD_DB_NAME}
|
|
|
+ - MYSQL_USER=${NEXTCLOUD_DB_USER}
|
|
|
+ - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "3306:3306"
|
|
|
+ volumes:
|
|
|
+ - ../data/nextcloud_db:/var/lib/mysql
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ kimai:
|
|
|
+ image: 'kimai/kimai2:apache'
|
|
|
+ container_name: 'kimai'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - APP_ENV=prod
|
|
|
+ - DATABASE_URL=mysql://${KIMAI_DB_USER}:${KIMAI_DB_PASSWORD}@${KIMAI_DB_HOST}/${KIMAI_DB_NAME}
|
|
|
+ - TRUSTED_PROXIES=nginx,localhost,127.0.0.1 # Vertrauenswürdige Proxies für Reverse Proxy Setup
|
|
|
+ - ADMINMAIL=${KIMAI_ADMIN_EMAIL} # E-Mail für den Admin
|
|
|
+ - ADMINPASS=${KIMAI_ADMIN_PASSWORD} # Passwort für den Admin
|
|
|
+ - TIMEZONE=Europe/Berlin # Zeitzone für Kimai
|
|
|
+ - APP_SECRET=${KIMAI_APP_SECRET} # Sicherer Secret Key für die Anwendung
|
|
|
+ ports:
|
|
|
+ - "8001:8001"
|
|
|
+ volumes:
|
|
|
+ - data:/opt/kimai/var/data
|
|
|
+ - plugins:/opt/kimai/var/plugins
|
|
|
+ depends_on:
|
|
|
+ - kimai-db
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ kimai-db:
|
|
|
+ image: 'mariadb:10.5'
|
|
|
+ container_name: 'kimai-db'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - MYSQL_ROOT_PASSWORD=${KIMAI_DB_ROOT_PASSWORD}
|
|
|
+ - MYSQL_DATABASE=${KIMAI_DB_NAME}
|
|
|
+ - MYSQL_USER=${KIMAI_DB_USER}
|
|
|
+ - MYSQL_PASSWORD=${KIMAI_DB_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "3307:3306"
|
|
|
+ volumes:
|
|
|
+ - ../data/kimai_db:/var/lib/mysql
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ n8n:
|
|
|
+ image: 'n8nio/n8n:latest'
|
|
|
+ container_name: 'n8n'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - N8N_BASIC_AUTH_ACTIVE=true
|
|
|
+ - N8N_BASIC_AUTH_USER=${N8N_USER}
|
|
|
+ - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
|
|
|
+ - N8N_PORT=5678
|
|
|
+ - DB_TYPE=postgresdb
|
|
|
+ - DB_POSTGRESDB_HOST=n8n-db
|
|
|
+ - DB_POSTGRESDB_DATABASE=${N8N_DB_NAME}
|
|
|
+ - DB_POSTGRESDB_USER=${N8N_DB_USER}
|
|
|
+ - DB_POSTGRESDB_PASSWORD=${N8N_DB_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "5678:5678"
|
|
|
+ volumes:
|
|
|
+ - ../data/n8n:/home/node/.n8n
|
|
|
+ depends_on:
|
|
|
+ - n8n-db
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ n8n-db:
|
|
|
+ image: 'postgres:13'
|
|
|
+ container_name: 'n8n-db'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - POSTGRES_DB=${N8N_DB_NAME}
|
|
|
+ - POSTGRES_USER=${N8N_DB_USER}
|
|
|
+ - POSTGRES_PASSWORD=${N8N_DB_PASSWORD}
|
|
|
+ volumes:
|
|
|
+ - ../data/n8n_db:/var/lib/postgresql/data
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+ keycloak:
|
|
|
+ image: 'quay.io/keycloak/keycloak:latest'
|
|
|
+ container_name: 'keycloak'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - KC_DB=postgres
|
|
|
+ - KC_DB_URL=jdbc:postgresql://keycloak-db:5432/${KEYCLOAK_DB_NAME}
|
|
|
+ - KC_DB_USERNAME=${KEYCLOAK_DB_USER}
|
|
|
+ - KC_DB_PASSWORD=${KEYCLOAK_DB_PASSWORD}
|
|
|
+ - KC_HOSTNAME=auth.mrx8086.com
|
|
|
+ - KC_HTTPS_CERTIFICATE_FILE=/etc/x509/https/fullchain.pem
|
|
|
+ - KC_HTTPS_CERTIFICATE_KEY_FILE=/etc/x509/https/privkey.pem
|
|
|
+ - KC_BOOTSTRAP_ADMIN_USERNAME=${KEYCLOAK_ADMIN_USER}
|
|
|
+ - KC_BOOTSTRAP_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "8443:8443"
|
|
|
+ volumes:
|
|
|
+ - ../configs/certs/mrx8086.com:/etc/x509/https
|
|
|
+ - ../data/keycloak_data:/opt/keycloak/data
|
|
|
+ - ../data/keycloak_transaction_logs:/opt/keycloak/data/transaction-logs
|
|
|
+ - ../data/keycloak_conf:/opt/keycloak/conf
|
|
|
+ - ../data/keycloak_logs:/opt/keycloak/log
|
|
|
+ - ../data/keycloak_tmp:/opt/keycloak/data/tmp # <--- Neu hinzugefügt
|
|
|
+ command:
|
|
|
+ - start-dev
|
|
|
+ depends_on:
|
|
|
+ - keycloak-db
|
|
|
+ networks:
|
|
|
+ automate-network:
|
|
|
+ ipv4_address: 172.18.0.6
|
|
|
+ extra_hosts:
|
|
|
+ - "auth.mrx8086.com:172.18.0.6"
|
|
|
+ - "cloud.mrx8086.com:172.18.0.11"
|
|
|
+
|
|
|
+ keycloak-db:
|
|
|
+ image: 'postgres:13'
|
|
|
+ container_name: 'keycloak-db'
|
|
|
+ restart: unless-stopped
|
|
|
+ environment:
|
|
|
+ - POSTGRES_DB=${KEYCLOAK_DB_NAME}
|
|
|
+ - POSTGRES_USER=${KEYCLOAK_DB_USER}
|
|
|
+ - POSTGRES_PASSWORD=${KEYCLOAK_DB_PASSWORD}
|
|
|
+ ports:
|
|
|
+ - "5433:5432" # Port für PostgreSQL erreichbar machen
|
|
|
+ volumes:
|
|
|
+ - ../data/keycloak_db:/var/lib/postgresql/data
|
|
|
+ networks:
|
|
|
+ - automate-network
|
|
|
+
|
|
|
+networks:
|
|
|
+ automate-network:
|
|
|
+ ipam:
|
|
|
+ config:
|
|
|
+ - subnet: 172.18.0.0/16
|
|
|
+
|
|
|
+volumes:
|
|
|
+ data:
|
|
|
+ plugins:
|
|
|
+
|