assert node.has_bundle('docker-engine') assert node.has_bundle('redis') assert not node.has_bundle('postgresql') # docker container uses that port defaults = { 'docker-engine': { 'containers': { 'immich': { 'image': 'ghcr.io/imagegenius/immich:latest', 'environment': { 'DB_DATABASE_NAME': 'immich', 'DB_HOSTNAME': 'host.docker.internal', 'DB_PASSWORD': repo.vault.password_for(f'{node.name} postgresql immich'), 'DB_USERNAME': 'immich', 'REDIS_HOSTNAME': 'host.docker.internal', }, 'volumes': { 'config': '/config', 'libraries': '/libraries', 'photos': '/photos', }, 'needs': { 'svc_systemd:docker-postgresql14', }, 'requires': { 'docker-postgresql14.service', }, }, 'postgresql14': { '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', }, }, }, }, 'nginx': { 'vhosts': { 'immich': { 'locations': { '/': { 'target': 'http://127.0.0.1:8080/', 'websockets': True, 'max_body_size': '500m', }, #'/api/socket.io/': { # 'target': 'http://127.0.0.1:8081/', # 'websockets': True, #}, }, }, }, }, 'redis': { 'bind': '0.0.0.0', }, }