Эх сурвалжийг харах

feat: Add initial setup for Nginx Proxy Manager, Paperless-ngx, and Redis services

- Added Nginx Proxy Manager (npm) for managing reverse proxy and SSL configurations
- Set up Paperless-ngx document management with PostgreSQL and Redis support
- Configured network and health checks for improved reliability
mathias.riechsteiner 1 жил өмнө
parent
commit
23cccd02ee

+ 57 - 58
src/docker/docker-compose.yml

@@ -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
-  
-