From 567c6fc76fbf27e6357af962fa74651728a09e16 Mon Sep 17 00:00:00 2001 From: Clint Masden Date: Fri, 27 Feb 2026 21:39:40 -0600 Subject: [PATCH] Add Coolify compose and env backups before phantom container fix Backup of raw compose, rendered compose, and env vars before renaming immich-server to immich to merge with Coolify proxy container. Co-Authored-By: Claude Opus 4.6 --- coolify-compose-raw-backup.yml | 1 + coolify-compose-rendered-backup.yml | 189 ++++++++++++++++++ coolify-envs-backup.json | 296 ++++++++++++++++++++++++++++ 3 files changed, 486 insertions(+) create mode 100644 coolify-compose-raw-backup.yml create mode 100644 coolify-compose-rendered-backup.yml create mode 100644 coolify-envs-backup.json diff --git a/coolify-compose-raw-backup.yml b/coolify-compose-raw-backup.yml new file mode 100644 index 0000000..914fa93 --- /dev/null +++ b/coolify-compose-raw-backup.yml @@ -0,0 +1 @@ +���Ǭ�i�r�j�������'!��i�)���~���z� 0���QH�����y���n��>�&{�%�{j�!����+-zk?r��j)ޮ��h����j־��\�Zj[b��޵��ƥ�)���������b��ڭ�b��ڭ�b���z{⮉�z{~ �$�9 \ No newline at end of file diff --git a/coolify-compose-rendered-backup.yml b/coolify-compose-rendered-backup.yml new file mode 100644 index 0000000..98a27aa --- /dev/null +++ b/coolify-compose-rendered-backup.yml @@ -0,0 +1,189 @@ +services: + immich: + image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}' + volumes: + - '/home/clint/archive/systems/containers/immich:/data' + - '/etc/localtime:/etc/localtime:ro' + - '/home/clint/archive:/archive:ro' + environment: + DB_PASSWORD: '${DB_PASSWORD}' + DB_USERNAME: '${DB_USERNAME}' + DB_DATABASE_NAME: '${DB_DATABASE_NAME}' + REDIS_HOSTNAME: redis + DB_HOSTNAME: database + TZ: '${TZ}' + COOLIFY_RESOURCE_UUID: t4cg4wk480w4ck0so0og4wgk + COOLIFY_CONTAINER_NAME: immich-t4cg4wk480w4ck0so0og4wgk + COOLIFY_FQDN: immich.clintmasden.duckdns.org + COOLIFY_URL: 'https://immich.clintmasden.duckdns.org' + SERVICE_NAME_IMMICH: immich + SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning + SERVICE_NAME_REDIS: redis + SERVICE_NAME_DATABASE: database + ports: + - '2001:2283' + depends_on: + - redis + - database + restart: always + healthcheck: + test: + - CMD-SHELL + - 'curl -f http://127.0.0.1:2283/api/server/ping || exit 1' + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + container_name: immich-t4cg4wk480w4ck0so0og4wgk + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.463 + - coolify.serviceId=3 + - coolify.type=service + - coolify.name=immich-t4cg4wk480w4ck0so0og4wgk + - coolify.resourceName=immich + - coolify.projectName=stable-apps + - coolify.serviceName=immich + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=3 + - coolify.service.subType=application + - coolify.service.subName=immich + - traefik.enable=true + - traefik.http.middlewares.gzip.compress=true + - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https + - traefik.http.routers.http-0-t4cg4wk480w4ck0so0og4wgk-immich.entryPoints=http + - traefik.http.routers.http-0-t4cg4wk480w4ck0so0og4wgk-immich.middlewares=redirect-to-https + - 'traefik.http.routers.http-0-t4cg4wk480w4ck0so0og4wgk-immich.rule=Host(`immich.clintmasden.duckdns.org`) && PathPrefix(`/`)' + - traefik.http.routers.https-0-t4cg4wk480w4ck0so0og4wgk-immich.entryPoints=https + - traefik.http.routers.https-0-t4cg4wk480w4ck0so0og4wgk-immich.middlewares=gzip + - 'traefik.http.routers.https-0-t4cg4wk480w4ck0so0og4wgk-immich.rule=Host(`immich.clintmasden.duckdns.org`) && PathPrefix(`/`)' + - traefik.http.routers.https-0-t4cg4wk480w4ck0so0og4wgk-immich.tls.certresolver=letsencrypt + - traefik.http.routers.https-0-t4cg4wk480w4ck0so0og4wgk-immich.tls=true + - 'caddy_0.encode=zstd gzip' + - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2283}}' + - 'caddy_0.handle_path=/*' + - caddy_0.header=-Server + - 'caddy_0.try_files={path} /index.html /index.php' + - 'caddy_0=https://immich.clintmasden.duckdns.org' + - caddy_ingress_network=t4cg4wk480w4ck0so0og4wgk + networks: + t4cg4wk480w4ck0so0og4wgk: null + env_file: + - .env + immich-machine-learning: + image: 'ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}' + volumes: + - '/home/clint/containers/immich/cache:/cache' + environment: + TZ: '${TZ}' + COOLIFY_RESOURCE_UUID: t4cg4wk480w4ck0so0og4wgk + COOLIFY_CONTAINER_NAME: immich-machine-learning-t4cg4wk480w4ck0so0og4wgk + SERVICE_NAME_IMMICH: immich + SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning + SERVICE_NAME_REDIS: redis + SERVICE_NAME_DATABASE: database + restart: always + healthcheck: + test: + - CMD-SHELL + - 'curl -f http://127.0.0.1:3003/ping || exit 1' + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + container_name: immich-machine-learning-t4cg4wk480w4ck0so0og4wgk + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.463 + - coolify.serviceId=3 + - coolify.type=service + - coolify.name=immich-machine-learning-t4cg4wk480w4ck0so0og4wgk + - coolify.resourceName=immich + - coolify.projectName=stable-apps + - coolify.serviceName=immich-machine-learning + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=4 + - coolify.service.subType=application + - coolify.service.subName=immich-machine-learning + networks: + t4cg4wk480w4ck0so0og4wgk: null + env_file: + - .env + redis: + image: 'docker.io/valkey/valkey:9' + healthcheck: + test: 'redis-cli ping || exit 1' + restart: always + container_name: redis-t4cg4wk480w4ck0so0og4wgk + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.463 + - coolify.serviceId=3 + - coolify.type=service + - coolify.name=redis-t4cg4wk480w4ck0so0og4wgk + - coolify.resourceName=immich + - coolify.projectName=stable-apps + - coolify.serviceName=redis + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=7 + - coolify.service.subType=application + - coolify.service.subName=redis + networks: + t4cg4wk480w4ck0so0og4wgk: null + environment: + COOLIFY_RESOURCE_UUID: t4cg4wk480w4ck0so0og4wgk + COOLIFY_CONTAINER_NAME: redis-t4cg4wk480w4ck0so0og4wgk + SERVICE_NAME_IMMICH: immich + SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning + SERVICE_NAME_REDIS: redis + SERVICE_NAME_DATABASE: database + env_file: + - .env + database: + image: 'ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0' + environment: + POSTGRES_PASSWORD: '${DB_PASSWORD}' + POSTGRES_USER: '${DB_USERNAME}' + POSTGRES_DB: '${DB_DATABASE_NAME}' + POSTGRES_INITDB_ARGS: '--data-checksums' + DB_PASSWORD: '${DB_PASSWORD}' + DB_USERNAME: '${DB_USERNAME}' + DB_DATABASE_NAME: '${DB_DATABASE_NAME}' + COOLIFY_RESOURCE_UUID: t4cg4wk480w4ck0so0og4wgk + COOLIFY_CONTAINER_NAME: database-t4cg4wk480w4ck0so0og4wgk + SERVICE_NAME_IMMICH: immich + SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning + SERVICE_NAME_REDIS: redis + SERVICE_NAME_DATABASE: database + volumes: + - '/home/clint/containers/immich/postgres:/var/lib/postgresql/data' + shm_size: 128mb + healthcheck: + test: 'pg_isready -d ${DB_DATABASE_NAME} -U ${DB_USERNAME} || exit 1' + restart: always + container_name: database-t4cg4wk480w4ck0so0og4wgk + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.463 + - coolify.serviceId=3 + - coolify.type=service + - coolify.name=database-t4cg4wk480w4ck0so0og4wgk + - coolify.resourceName=immich + - coolify.projectName=stable-apps + - coolify.serviceName=database + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=2 + - coolify.service.subType=database + - coolify.service.subName=database + networks: + t4cg4wk480w4ck0so0og4wgk: null + env_file: + - .env +networks: + t4cg4wk480w4ck0so0og4wgk: + name: t4cg4wk480w4ck0so0og4wgk + external: true diff --git a/coolify-envs-backup.json b/coolify-envs-backup.json new file mode 100644 index 0000000..7a5ef95 --- /dev/null +++ b/coolify-envs-backup.json @@ -0,0 +1,296 @@ +[ + { + "uuid": "jkoossckgwwg8co0kkoo8ksw", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_URL_IMMICH", + "order": null, + "real_value": "https://immich.clintmasden.duckdns.org", + "value": "https://immich.clintmasden.duckdns.org", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T02:00:17.000000Z" + }, + { + "uuid": "j0k4ww8gcksk8o804g0o084g", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_FQDN_IMMICH_2283", + "order": null, + "real_value": "immich.clintmasden.duckdns.org:2283", + "value": "immich.clintmasden.duckdns.org:2283", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T02:00:17.000000Z" + }, + { + "uuid": "eckgcgc88ws8c88c4s4co4w8", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_URL_IMMICH_2283", + "order": null, + "real_value": "https://immich.clintmasden.duckdns.org:2283", + "value": "https://immich.clintmasden.duckdns.org:2283", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T02:00:17.000000Z" + }, + { + "uuid": "ock0scgo48sgo0ggk8o448sc", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_PASSWORD_POSTGRES", + "order": null, + "real_value": "Gsz4gZWVzWOnEMUu8SaYje3opqEzwPPN", + "value": "Gsz4gZWVzWOnEMUu8SaYje3opqEzwPPN", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T01:23:41.000000Z" + }, + { + "uuid": "aswckswsos8sog4kkkc80ksk", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_USER_POSTGRES", + "order": null, + "real_value": "6utosAY5y9iKPMjP", + "value": "6utosAY5y9iKPMjP", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T01:23:41.000000Z" + }, + { + "uuid": "f4c4gg0ck8w088g4k8c0c8gw", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "DB_USERNAME", + "order": null, + "real_value": "postgres", + "value": "postgres", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T01:59:08.000000Z" + }, + { + "uuid": "wc0kk8wo4gswwww8ccg0wcc8", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "TZ", + "order": null, + "real_value": "America/Chicago", + "value": "America/Chicago", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:42.000000Z", + "updated_at": "2026-02-28T01:59:13.000000Z" + }, + { + "uuid": "bcwco8kk8owsswws4g8cowsk", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "DB_DATABASE_NAME", + "order": null, + "real_value": "immich", + "value": "immich", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:42.000000Z", + "updated_at": "2026-02-28T01:23:42.000000Z" + }, + { + "uuid": "x8ws8w04o8kc8ksk8ggkcgok", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "POSTGRES_PASSWORD", + "order": null, + "real_value": "Xb1Y4MPIbVZdlK", + "value": "Xb1Y4MPIbVZdlK", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:42.000000Z", + "updated_at": "2026-02-28T01:59:26.000000Z" + }, + { + "uuid": "qs8cwsc0g4k8kkkgg8w8ko0w", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "POSTGRES_USER", + "order": null, + "real_value": "postgres", + "value": "postgres", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:42.000000Z", + "updated_at": "2026-02-28T01:59:31.000000Z" + }, + { + "uuid": "nk80cw0gc8o4ooo88wc0w84k", + "is_buildtime": true, + "is_coolify": true, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "SERVICE_FQDN_IMMICH", + "order": null, + "real_value": "https://immich.clintmasden.duckdns.org", + "value": "https://immich.clintmasden.duckdns.org", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T02:00:08.000000Z" + }, + { + "uuid": "lwskowgowkk4kw0c00wskg8o", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "DB_STORAGE_TYPE", + "order": null, + "real_value": "SSD", + "value": "SSD", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:42.000000Z", + "updated_at": "2026-02-28T01:23:42.000000Z" + }, + { + "uuid": "iswwkwoso4gc0wowscoo8840", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "DB_PASSWORD", + "order": null, + "real_value": "Xb1Y4MPIbVZdlK", + "value": "Xb1Y4MPIbVZdlK", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:23:41.000000Z", + "updated_at": "2026-02-28T01:59:01.000000Z" + }, + { + "uuid": "po4kwwgc0g4kwkcks8ggo48o", + "is_buildtime": true, + "is_coolify": false, + "is_literal": false, + "is_multiline": false, + "is_nixpacks": false, + "is_preview": false, + "is_really_required": false, + "is_required": false, + "is_runtime": true, + "is_shared": false, + "is_shown_once": false, + "key": "IMMICH_VERSION", + "order": null, + "real_value": "v2", + "value": "v2", + "version": "4.0.0-beta.463", + "created_at": "2026-02-28T01:59:18.000000Z", + "updated_at": "2026-02-28T01:59:18.000000Z" + } +] \ No newline at end of file