70 lines
2.1 KiB
YAML
70 lines
2.1 KiB
YAML
---
|
|
- name: Create folder structure
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "{{ data_dir }}/immich"
|
|
- "{{ data_dir }}/immich/model-cache"
|
|
- "{{ data_dir }}/immich/db"
|
|
|
|
- name: Create Immich Redis Docker Container
|
|
docker_container:
|
|
name: immich_redis
|
|
image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884
|
|
restart_policy: unless-stopped
|
|
recreate: true
|
|
networks:
|
|
- name: immich
|
|
|
|
- name: Create Immich DB Docker Container
|
|
docker_container:
|
|
name: immich_postgres
|
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
|
restart_policy: unless-stopped
|
|
recreate: true
|
|
volumes:
|
|
- "{{ data_dir }}/immich/db:/var/lib/postgresql/data"
|
|
env:
|
|
POSTGRES_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
|
|
POSTGRES_USER: "{{ IMMICH_DB_USERNAME }}"
|
|
POSTGRES_DB: "{{ IMMICH_DB_DATABASE_NAME }}"
|
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
|
networks:
|
|
- name: immich
|
|
|
|
- name: Create Immich ML Docker Container
|
|
docker_container:
|
|
name: immich_machine_learning
|
|
image: ghcr.io/immich-app/immich-machine-learning:release
|
|
restart_policy: unless-stopped
|
|
recreate: true
|
|
volumes:
|
|
- "{{ data_dir }}/immich/model-cache:/cache"
|
|
networks:
|
|
- name: immich
|
|
|
|
- name: Create Immich Server Docker Container
|
|
docker_container:
|
|
name: immich_server
|
|
image: ghcr.io/immich-app/immich-server:release
|
|
restart_policy: unless-stopped
|
|
recreate: true
|
|
networks:
|
|
- name: homelab
|
|
- name: immich
|
|
volumes:
|
|
- "{{ IMMICH_UPLOAD_LOCATION }}:/usr/src/app/upload"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
env:
|
|
DB_HOSTNAME: "immich_postgres"
|
|
REDIS_HOSTNAME: "immich_redis"
|
|
DB_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
|
|
DB_USERNAME: "{{ IMMICH_DB_USERNAME }}"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.img.rule: Host(`img.fntz.net`)
|
|
traefik.http.routers.img.entrypoints: webSecure
|
|
traefik.http.routers.img.tls.certresolver: letsencrypt
|
|
traefik.http.services.img.loadbalancer.server.port: "2283"
|