|
|
@@ -1,72 +1,71 @@
|
|
|
version: '3.8'
|
|
|
|
|
|
services:
|
|
|
-#===============================================================================================
|
|
|
-# keycloak
|
|
|
-#===============================================================================================
|
|
|
- keycloak:
|
|
|
- image: quay.io/keycloak/keycloak:latest
|
|
|
- container_name: keycloak
|
|
|
+ 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:
|
|
|
+ - paperless-network
|
|
|
+
|
|
|
+ paperless:
|
|
|
+ image: 'ghcr.io/paperless-ngx/paperless-ngx:latest'
|
|
|
+ container_name: 'paperless'
|
|
|
+ restart: unless-stopped
|
|
|
environment:
|
|
|
- - KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN_USER} # Default admin username
|
|
|
- - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD} # Default admin password
|
|
|
- - KC_DB=${KEYCLOAK_DB_TYPE} # Database type
|
|
|
- - KC_DB_URL=jdbc:postgresql://keycloak_db:5432/${KEYCLOAK_DB}
|
|
|
- - KC_DB_USERNAME=${KEYCLOAK_DB_USERNAME}
|
|
|
- - KC_DB_PASSWORD=${KEYCLOAK_DB_PASSWORD}
|
|
|
- - KC_HOSTNAME=auth.mrx8086.com
|
|
|
- - KC_HOSTNAME_STRICT_HTTPS=true
|
|
|
- - KC_PROXY=edge
|
|
|
- - KC_HTTPS_CERTIFICATE_FILE=/etc/x509/https/fullchain.pem
|
|
|
- - KC_HTTPS_CERTIFICATE_KEY_FILE=/etc/x509/https/privkey.pem
|
|
|
+ - 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:
|
|
|
- - "8443:8443" # HTTPS access
|
|
|
+ - "8000:8000"
|
|
|
volumes:
|
|
|
- - ../configs/certs/mrx8086.com/fullchain.pem:/etc/x509/https/fullchain.pem
|
|
|
- - ../configs/certs/mrx8086.com/privkey.pem:/etc/x509/https/privkey.pem
|
|
|
+ - ../data/paperless:/usr/src/paperless/data
|
|
|
depends_on:
|
|
|
- - keycloak_db
|
|
|
- command: start-dev # Development mode
|
|
|
- healthcheck:
|
|
|
- test: ["CMD", "curl", "-f", "https://localhost:8443/health"]
|
|
|
- interval: 30s
|
|
|
- timeout: 10s
|
|
|
- retries: 3
|
|
|
+ - paperless-db
|
|
|
+ - paperless-redis
|
|
|
networks:
|
|
|
- frontend_net:
|
|
|
- keycloak_net:
|
|
|
-#===============================================================================================
|
|
|
-# keycloak_db
|
|
|
-#===============================================================================================
|
|
|
- keycloak_db:
|
|
|
- image: postgres:latest
|
|
|
- container_name: keycloak_db
|
|
|
+ - paperless-network
|
|
|
+
|
|
|
+ paperless-db:
|
|
|
+ image: 'postgres:13'
|
|
|
+ container_name: 'paperless-db'
|
|
|
+ restart: unless-stopped
|
|
|
environment:
|
|
|
- - POSTGRES_DB=${KEYCLOAK_DB} # Database name
|
|
|
- - POSTGRES_USER=${KEYCLOAK_DB_USERNAME} # Database username
|
|
|
- - POSTGRES_PASSWORD=${KEYCLOAK_DB_PASSWORD} # Database password
|
|
|
+ - 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/keycloak_db:/var/lib/postgresql/data
|
|
|
+ - ../data/paperless_db:/var/lib/postgresql/data
|
|
|
+ networks:
|
|
|
+ - paperless-network
|
|
|
+
|
|
|
+ paperless-redis:
|
|
|
+ image: 'redis:alpine'
|
|
|
+ container_name: 'paperless-redis'
|
|
|
+ expose:
|
|
|
+ - "6379"
|
|
|
+ restart: unless-stopped
|
|
|
+ volumes:
|
|
|
+ - ../data/paperless_redis:/data
|
|
|
healthcheck:
|
|
|
- test: ["CMD-SHELL", "pg_isready -U ${KEYCLOAK_DB_USERNAME} -d ${KEYCLOAK_DB}"]
|
|
|
- interval: 30s
|
|
|
- timeout: 10s
|
|
|
- retries: 3
|
|
|
+ test: ["CMD", "redis-cli", "ping"]
|
|
|
+ interval: 10s
|
|
|
+ timeout: 5s
|
|
|
+ retries: 5
|
|
|
networks:
|
|
|
- keycloak_net:
|
|
|
-#===============================================================================================
|
|
|
-# NETWORKS
|
|
|
-#===============================================================================================
|
|
|
+ - paperless-network
|
|
|
+
|
|
|
networks:
|
|
|
- frontend_net:
|
|
|
- driver: bridge
|
|
|
- ipam:
|
|
|
- config:
|
|
|
- - subnet: 172.18.0.0/24
|
|
|
- keycloak_net:
|
|
|
+ paperless-network:
|
|
|
driver: bridge
|
|
|
- ipam:
|
|
|
- config:
|
|
|
- - subnet: 172.18.11.0/24
|
|
|
-
|
|
|
-
|