Files
HomeAudit/stacks/apps/immich.yml
admin 705a2757c1 Major infrastructure migration and Vaultwarden PostgreSQL troubleshooting
COMPREHENSIVE CHANGES:

INFRASTRUCTURE MIGRATION:
- Migrated services to Docker Swarm on OMV800 (192.168.50.229)
- Deployed PostgreSQL database for Vaultwarden migration
- Updated all stack configurations for Docker Swarm compatibility
- Added comprehensive monitoring stack (Prometheus, Grafana, Blackbox)
- Implemented proper secret management for all services

VAULTWARDEN POSTGRESQL MIGRATION:
- Attempted migration from SQLite to PostgreSQL for NFS compatibility
- Created PostgreSQL stack with proper user/password configuration
- Built custom Vaultwarden image with PostgreSQL support
- Troubleshot persistent SQLite fallback issue despite PostgreSQL config
- Identified known issue where Vaultwarden silently falls back to SQLite
- Added ENABLE_DB_WAL=false to prevent filesystem compatibility issues
- Current status: Old Vaultwarden on lenovo410 still working, new one has config issues

PAPERLESS SERVICES:
- Successfully deployed Paperless-NGX and Paperless-AI on OMV800
- Both services running on ports 8000 and 3000 respectively
- Caddy configuration updated for external access
- Services accessible via paperless.pressmess.duckdns.org and paperless-ai.pressmess.duckdns.org

CADDY CONFIGURATION:
- Updated Caddyfile on Surface (192.168.50.254) for new service locations
- Fixed Vaultwarden reverse proxy to point to new Docker Swarm service
- Removed old notification hub reference that was causing conflicts
- All services properly configured for external access via DuckDNS

BACKUP AND DISCOVERY:
- Created comprehensive backup system for all hosts
- Generated detailed discovery reports for infrastructure analysis
- Implemented automated backup validation scripts
- Created migration progress tracking and verification reports

MONITORING STACK:
- Deployed Prometheus, Grafana, and Blackbox monitoring
- Created infrastructure and system overview dashboards
- Added proper service discovery and alerting configuration
- Implemented performance monitoring for all critical services

DOCUMENTATION:
- Reorganized documentation into logical structure
- Created comprehensive migration playbook and troubleshooting guides
- Added hardware specifications and optimization recommendations
- Documented all configuration changes and service dependencies

CURRENT STATUS:
- Paperless services:  Working and accessible externally
- Vaultwarden:  PostgreSQL configuration issues, old instance still working
- Monitoring:  Deployed and operational
- Caddy:  Updated and working for external access
- PostgreSQL:  Database running, connection issues with Vaultwarden

NEXT STEPS:
- Continue troubleshooting Vaultwarden PostgreSQL configuration
- Consider alternative approaches for Vaultwarden migration
- Validate all external service access
- Complete final migration validation

TECHNICAL NOTES:
- Used Docker Swarm for orchestration on OMV800
- Implemented proper secret management for sensitive data
- Added comprehensive logging and monitoring
- Created automated backup and validation scripts
2025-08-30 20:18:44 -04:00

87 lines
2.0 KiB
YAML

version: '3.9'
services:
immich_server:
image: ghcr.io/immich-app/immich-server:v1.119.0
environment:
DB_HOST: postgresql_primary
DB_PORT: 5432
DB_USERNAME: postgres
DB_PASSWORD_FILE: /run/secrets/pg_root_password
DB_DATABASE_NAME: immich
secrets:
- pg_root_password
networks:
- traefik-public
- database-network
volumes:
- immich_data:/usr/src/app/upload
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/server-info/ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
memory: 4G
cpus: '2.0'
reservations:
memory: 1G
cpus: '0.5'
placement:
constraints:
- "node.labels.role==web"
labels:
- traefik.enable=true
- traefik.http.routers.immich.rule=Host(`immich.localhost`)
- traefik.http.routers.immich.entrypoints=websecure
- traefik.http.routers.immich.tls=true
- traefik.http.services.immich.loadbalancer.server.port=3001
immich_machine_learning:
image: ghcr.io/immich-app/immich-machine-learning:v1.119.0
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3003/ping"]
interval: 60s
timeout: 15s
retries: 3
start_period: 120s
deploy:
resources:
limits:
memory: 8G
cpus: '4.0'
reservations:
memory: 2G
cpus: '1.0'
devices:
- capabilities: [gpu]
device_ids: ["0"]
placement:
constraints:
- "node.labels.role==db"
volumes:
- immich_ml:/cache
volumes:
immich_data:
driver: local
driver_opts:
type: nfs
o: addr=omv800.local,nolock,soft,rw
device: :/srv/mergerfs/DataPool/immich
immich_ml:
driver: local
secrets:
pg_root_password:
external: true
networks:
traefik-public:
external: true
database-network:
external: true