assert node.has_bundle('docker-engine') defaults = { 'docker-engine': { 'containers': { 'immich': { 'image': 'ghcr.io/imagegenius/immich:latest', 'environment': { 'DB_DATABASE_NAME': 'immich', 'DB_HOSTNAME': 'immich-postgresql', 'DB_PASSWORD': repo.vault.password_for(f'{node.name} postgresql immich'), 'DB_USERNAME': 'immich', 'REDIS_HOSTNAME': 'immich-redis', }, 'volumes': { 'config': '/config', 'libraries': '/libraries', 'photos': '/photos', }, 'ports': { '8080': '8080', }, 'needs': { 'svc_systemd:docker-immich-postgresql', 'svc_systemd:docker-immich-redis', }, 'requires': { 'docker-immich-postgresql.service', 'docker-immich-redis.service', }, }, 'immich-postgresql': { 'image': 'tensorchord/pgvecto-rs:pg14-v0.2.0', 'environment': { 'POSTGRES_PASSWORD': repo.vault.password_for(f'{node.name} postgresql immich'), 'POSTGRES_USER': 'immich', 'POSTGRES_DB': 'immich', }, 'volumes': { 'database': '/var/lib/postgresql/data', }, }, 'immich-redis': { 'image': 'docker.io/redis:6.2-alpine', }, }, }, 'nginx': { 'vhosts': { 'immich': { 'locations': { '/': { 'target': 'http://127.0.0.1:8080/', 'websockets': True, 'max_body_size': '5000m', }, }, }, }, }, }