noticket - migrate from photoprism to immich

This commit is contained in:
Bastian de Byl
2024-12-17 21:52:04 -05:00
parent 25662db5a6
commit 9a60d4b0b9
5 changed files with 99 additions and 63 deletions

View File

@@ -10,7 +10,7 @@ http:
trusted_proxies: trusted_proxies:
- 127.0.0.1 - 127.0.0.1
- 10.0.0.0/8 - 10.0.0.0/8
- 10.0.2.100 - 192.168.1.0/24
homeassistant: homeassistant:
time_zone: America/New_York time_zone: America/New_York

View File

@@ -12,18 +12,18 @@
- "{{ hass_path }}/media" - "{{ hass_path }}/media"
- "{{ hass_path }}/config" - "{{ hass_path }}/config"
# - name: copy configuration and automations - name: copy configuration and automations
# become: true become: true
# ansible.builtin.copy: ansible.builtin.copy:
# backup: true backup: true
# src: "files/hass/{{ item }}" src: "files/hass/{{ item }}"
# dest: "{{ hass_path }}/config/{{ item }}" dest: "{{ hass_path }}/config/{{ item }}"
# owner: "{{ podman_user }}" owner: "{{ podman_user }}"
# group: "{{ podman_user }}" group: "{{ podman_user }}"
# mode: 0644 mode: 0644
# notify: restorecon podman notify: restorecon podman
# loop: loop:
# - configuration.yaml - configuration.yaml
# - automations.yaml # - automations.yaml
- name: flush handlers - name: flush handlers

View File

@@ -9,8 +9,10 @@
mode: 0755 mode: 0755
notify: restorecon podman notify: restorecon podman
loop: loop:
- "{{ photos_path }}/mysql" - "{{ photos_path }}/psql"
- "{{ photos_path }}/mlcache"
- "{{ photos_path }}/storage" - "{{ photos_path }}/storage"
- "{{ photos_path }}/immich"
- name: flush handlers - name: flush handlers
ansible.builtin.meta: flush_handlers ansible.builtin.meta: flush_handlers
@@ -24,84 +26,116 @@
opts: "username=photos,password={{ photos_cifs_pass }},uid={{ podman_subuid.stdout }},gid={{ podman_subuid.stdout }}" opts: "username=photos,password={{ photos_cifs_pass }},uid={{ podman_subuid.stdout }},gid={{ podman_subuid.stdout }}"
state: mounted state: mounted
- name: mount immich cifs
become: true
ansible.posix.mount:
src: "{{ immich_cifs_src }}"
path: "{{ photos_path }}/immich"
fstype: cifs
opts: "username=photos,password={{ photos_cifs_pass }},uid={{ podman_subuid.stdout }},gid={{ podman_subuid.stdout }}"
state: mounted
- import_tasks: podman/podman-check.yml - import_tasks: podman/podman-check.yml
vars: vars:
container_name: photos-db container_name: immich_machine_learning
container_image: "{{ db_image }}" container_image: "{{ ml_image }}"
- name: create photos-db container - name: create immich-ml container
become: true become: true
become_user: "{{ podman_user }}" become_user: "{{ podman_user }}"
containers.podman.podman_container: containers.podman.podman_container:
name: photos-db name: immich_machine_learning
image: "{{ ml_image }}"
restart_policy: on-failure:3
log_driver: journald
network:
- shared
volumes:
- "{{ photos_path }}/mlcache:/cache"
- name: create systemd startup job for immich_machine_learning
include_tasks: podman/systemd-generate.yml
vars:
container_name: immich_machine_learning
- import_tasks: podman/podman-check.yml
vars:
container_name: immich_redis
container_image: "{{ redis_image }}"
- name: create immich-redis container
become: true
become_user: "{{ podman_user }}"
containers.podman.podman_container:
name: immich_redis
image: "{{ redis_image }}"
restart_policy: on-failure:3
log_driver: journald
network:
- shared
- name: create systemd startup job for immich_redis
include_tasks: podman/systemd-generate.yml
vars:
container_name: immich_redis
- import_tasks: podman/podman-check.yml
vars:
container_name: immich_postgres
container_image: "{{ db_image }}"
- name: create immich-db container
become: true
become_user: "{{ podman_user }}"
containers.podman.podman_container:
name: immich_postgres
image: "{{ db_image }}" image: "{{ db_image }}"
restart_policy: on-failure:3 restart_policy: on-failure:3
log_driver: journald log_driver: journald
network: network:
- shared - shared
env: env:
MARIADB_AUTO_UPGRADE: "1" POSTGRES_DATABASE: photos
MYSQL_ROOT_PASSWORD: "{{ photos_db_root_pass }}" POSTGRES_USER: photos
MYSQL_DATABASE: photos POSTGRES_PASSWORD: "{{ photos_db_pass }}"
MYSQL_USER: photos POSTGRES_INITDB_ARGS: "--data-checksums"
MYSQL_PASSWORD: "{{ photos_db_pass }}"
volumes: volumes:
- "{{ photos_path }}/mysql:/var/lib/mysql" - "{{ photos_path }}/psql:/var/lib/postgresql/data"
- name: create systemd startup job for photos-db - name: create systemd startup job for immich_postgres
include_tasks: podman/systemd-generate.yml include_tasks: podman/systemd-generate.yml
vars: vars:
container_name: photos-db container_name: immich_postgres
- import_tasks: podman/podman-check.yml - import_tasks: podman/podman-check.yml
vars: vars:
container_name: photos container_name: immich_server
container_image: "{{ image }}" container_image: "{{ image }}"
- name: create photos container - name: create immich container
become: true become: true
become_user: "{{ podman_user }}" become_user: "{{ podman_user }}"
containers.podman.podman_container: containers.podman.podman_container:
name: photos name: immich_server
image: "{{ image }}" image: "{{ image }}"
restart_policy: on-failure:3 restart_policy: on-failure:3
log_driver: journald log_driver: journald
network: network:
- shared - shared
env: env:
PHOTOPRISM_ADMIN_PASSWORD: "{{ photos_user_pass }}" REDIS_HOSTNAME: immich_redis
PHOTOPRISM_AUTH_MODE: "password" DB_HOSTNAME: immich_postgres
PHOTOPRISM_SITE_URL: "https://photos.bdebyl.net/" DB_DATABASE_NAME: photos
PHOTOPRISM_ORIGINALS_LIMIT: 5000 DB_USERNAME: photos
PHOTOPRISM_HTTP_COMPRESSION: "gzip" DB_PASSWORD: "{{ photos_db_pass }}"
PHOTOPRISM_LOG_LEVEL: "info" IMMICH_PORT: 8088
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_DISABLE_CHOWN: "false"
PHOTOPRISM_DISABLE_WEBDAV: "false"
PHOTOPRISM_DISABLE_SETTINGS: "false"
PHOTOPRISM_DISABLE_TENSORFLOW: "false"
PHOTOPRISM_DISABLE_FACES: "false"
PHOTOPRISM_DISABLE_CLASSIFICATION: "false"
PHOTOPRISM_DISABLE_RAW: "false"
PHOTOPRISM_RAW_PRESETS: "false"
PHOTOPRISM_JPEG_QUALITY: 85
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_SERVER: "photos-db:3306"
PHOTOPRISM_DATABASE_NAME: "photos"
PHOTOPRISM_DATABASE_USER: "photos"
PHOTOPRISM_DATABASE_PASSWORD: "{{ photos_db_pass }}"
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: "Bastian D."
volumes: volumes:
- "{{ photos_path }}/storage:/photoprism/" - "{{ photos_path }}/storage:/mnt/media/originals"
- "{{ photos_path }}/immich:/usr/src/app/upload"
ports: ports:
- "8088:2342" - "8088:8088"
- name: create systemd startup job for photos - name: create systemd startup job for immich_server
include_tasks: podman/systemd-generate.yml include_tasks: podman/systemd-generate.yml
vars: vars:
container_name: photos container_name: immich_server

View File

@@ -46,8 +46,10 @@
- import_tasks: containers/home/photos.yml - import_tasks: containers/home/photos.yml
vars: vars:
db_image: docker.io/library/mariadb:10.8 db_image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
image: docker.io/photoprism/photoprism:240915-ce ml_image: ghcr.io/immich-app/immich-machine-learning:v1.123.0
redis_image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
image: ghcr.io/immich-app/immich-server:v1.123.0
tags: photos tags: photos
- import_tasks: containers/home/cloud.yml - import_tasks: containers/home/cloud.yml

Binary file not shown.