diff --git a/inventory/my-cluster/host_vars/hyrule b/inventory/my-cluster/host_vars/hyrule new file mode 100644 index 0000000..e5d7d87 --- /dev/null +++ b/inventory/my-cluster/host_vars/hyrule @@ -0,0 +1,6 @@ +--- + +ansible_user: root +ansible_host: 10.0.0.2 +ansible_ssh_pass: "{{ proxmox_api_password }}" + diff --git a/inventory/my-cluster/host_vars/immich b/inventory/my-cluster/host_vars/immich new file mode 100644 index 0000000..39772c0 --- /dev/null +++ b/inventory/my-cluster/host_vars/immich @@ -0,0 +1,6 @@ +--- + +ansible_user: root +ansible_host: 10.0.2.18 +ansible_ssh_pass: "{{ proxmox_api_password }}" +vmid: 609 diff --git a/inventory/my-cluster/hosts.ini b/inventory/my-cluster/hosts.ini index 76f838c..3d60b1a 100644 --- a/inventory/my-cluster/hosts.ini +++ b/inventory/my-cluster/hosts.ini @@ -2,6 +2,7 @@ frigate swag cloudflare-ddns dahua-to-mqtt +immich [master] mipha @@ -23,6 +24,7 @@ mipha epona revali yuga +hyrule [pihole] epona-pihole diff --git a/playbook-immich.yml b/playbook-immich.yml new file mode 100644 index 0000000..94832da --- /dev/null +++ b/playbook-immich.yml @@ -0,0 +1,23 @@ +--- +- hosts: localhost + become: yes + roles: + - role: immich/provision/delete + - role: immich/provision/create + - role: immich/provision/start + vars: + vmid: 609 + +- hosts: hyrule + become: yes + roles: + - role: immich/enable-ssh + vars: + vmid: 609 + +- hosts: immich + become: yes + roles: + - role: immich/update + - role: immich/install-docker + - role: immich/install-app diff --git a/roles/immich/install-app/templates/.env b/roles/immich/install-app/templates/.env index 22a9b3d..a932912 100644 --- a/roles/immich/install-app/templates/.env +++ b/roles/immich/install-app/templates/.env @@ -3,7 +3,7 @@ DB_USERNAME=ANVdeo9LyBqXwKwsCZMnSYe4yApjB7mvKtDE9CTTrMaq2tA3Hn DB_PASSWORD=KfVYJXdmN2jJd8BpU2AMGcJ9t9od4NgQrcRc6g9yeqZAZVYo68 DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis -UPLOAD_LOCATION=/export/photos/phone-lino +UPLOAD_LOCATION=/photos LOG_LEVEL=simple PUBLIC_LOGIN_PAGE_MESSAGE="Photos" NODE_ENV=production @@ -12,5 +12,3 @@ IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 TYPESENSE_API_KEY=CmRqRuYpn6KoH4rCVAXaVdKoixvKCMowfjW3JgKQoXKyVPYy8C TYPESENSE_ENABLED=true - -CONFIG_DIR=/data \ No newline at end of file diff --git a/roles/immich/install-app/templates/docker-compose.yml b/roles/immich/install-app/templates/docker-compose.yml index 3a0505a..1ed3976 100644 --- a/roles/immich/install-app/templates/docker-compose.yml +++ b/roles/immich/install-app/templates/docker-compose.yml @@ -5,14 +5,6 @@ services: container_name: immich_server image: altran1502/immich-server:release entrypoint: [ "/bin/sh", "./start-server.sh" ] - deploy: - resources: - limits: - cpus: '4' - memory: 4096M - reservations: - cpus: '2' - memory: 2048M volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: @@ -29,14 +21,6 @@ services: container_name: immich_microservices image: altran1502/immich-server:release entrypoint: [ "/bin/sh", "./start-microservices.sh" ] - deploy: - resources: - limits: - cpus: '4' - memory: 4096M - reservations: - cpus: '2' - memory: 2048M volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: @@ -58,22 +42,14 @@ services: logging: driver: none volumes: - - ${CONFIG_DIR}/docker/immich/tsdata:/data + - /tsdata:/data immich-machine-learning: container_name: immich_machine_learning image: altran1502/immich-machine-learning:release - deploy: - resources: - limits: - cpus: '4' - memory: 4096M - reservations: - cpus: '2' - memory: 2048M volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - - ${CONFIG_DIR}/docker/immich/cache:/cache + - /cache:/cache env_file: - .env environment: @@ -101,7 +77,7 @@ services: environment: PG_DATA: /var/lib/postgresql/data volumes: - - ${CONFIG_DIR}/docker/immich/pgsql:/var/lib/postgresql/data + - /pgsql:/var/lib/postgresql/data restart: always immich-proxy: diff --git a/roles/immich/provision/create/tasks/main.yml b/roles/immich/provision/create/tasks/main.yml index ac6fd2f..48039d5 100644 --- a/roles/immich/provision/create/tasks/main.yml +++ b/roles/immich/provision/create/tasks/main.yml @@ -1,21 +1,21 @@ --- - name: Create container community.general.proxmox: - vmid: 608 - node: revali + vmid: 609 + node: hyrule api_user: root@pam api_password: "{{ proxmox_api_password }}" api_host: 10.0.2.2 password: "{{ lxc_password }}" - hostname: dahua-to-mqtt + hostname: immich ostemplate: "hyrule-8tb-nfs:vztmpl/debian-11-standard_11.3-1_amd64.tar.zst" netif: "{'net0':'name=eth0,\ gw=10.0.0.1,\ - ip=10.0.2.17/21,\ - hwaddr=cc:c6:cf:de:17:77,\ + ip=10.0.2.18/21,\ + hwaddr=cc:c6:cf:de:17:78,\ bridge=vmbr0'}" - cores: 1 - memory: 256 + cores: 4 + memory: 8192 unprivileged: no swap: 0 searchdomain: "home" @@ -23,5 +23,11 @@ features: - nesting=1 - keyctl=1 - disk: local-lvm:5 + mounts: '{ + "mp0":"ssd250:5,mp=/cache,backup=1", + "mp0":"ssd250:5,mp=/tsdata,backup=1", + "mp0":"ssd250:5,mp=/pgsql,backup=1", + "mp3":"/export/photos/phone-lino,mp=/photos" + }' + disk: local-lvm:10 force: yes diff --git a/roles/swag/install-app/templates/immich.subdomain.conf b/roles/swag/install-app/templates/immich.subdomain.conf index 249b2c1..dd10d3f 100755 --- a/roles/swag/install-app/templates/immich.subdomain.conf +++ b/roles/swag/install-app/templates/immich.subdomain.conf @@ -33,7 +33,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; - set $upstream_app 10.0.0.2; + set $upstream_app 10.0.2.18; set $upstream_port 8080; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port;