From 350417a441e5250e5f9006cfa4c88c05d46e2633 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Sun, 11 Sep 2022 12:52:06 +0200 Subject: [PATCH] app: add immich --- apps/immich/config.json | 30 ++++++++ apps/immich/docker-compose.yml | 107 ++++++++++++++++++++++++++++ apps/immich/metadata/description.md | 5 ++ apps/immich/metadata/logo.jpg | Bin 0 -> 34653 bytes 4 files changed, 142 insertions(+) create mode 100644 apps/immich/config.json create mode 100644 apps/immich/docker-compose.yml create mode 100644 apps/immich/metadata/description.md create mode 100644 apps/immich/metadata/logo.jpg diff --git a/apps/immich/config.json b/apps/immich/config.json new file mode 100644 index 00000000..5c219a1c --- /dev/null +++ b/apps/immich/config.json @@ -0,0 +1,30 @@ +{ + "$schema": "../schema.json", + "name": "Immich", + "available": true, + "exposable": true, + "port": 8120, + "id": "immich", + "tipi_version": 1, + "version": "1.28.0", + "categories": ["data", "photography"], + "description": "Photo and video backup solution directly from your mobile phone.", + "short_desc": "Photo and video backup solution directly from your mobile phone.", + "author": "Alex Tran", + "website": "https://www.immich.app/", + "source": "https://github.com/immich-app/immich", + "form_fields": [ + { + "type": "random", + "label": "DB_PASSWORD", + "min": 32, + "env_variable": "DB_PASSWORD" + }, + { + "type": "random", + "label": "JWT_SECRET", + "min": 32, + "env_variable": "JWT_SECRET" + } + ] +} diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml new file mode 100644 index 00000000..5fa9be9e --- /dev/null +++ b/apps/immich/docker-compose.yml @@ -0,0 +1,107 @@ +version: "3.7" + +services: + immich-server: + image: altran1502/immich-server:release + entrypoint: ["/bin/sh", "./start-server.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich_db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - DB_NAME=immich + - REDIS_HOSTNAME=immich-redis + - JWT_SECRET=${JWT_SECRET} + depends_on: + - immich-redis + - immich-db + restart: unless-stopped + networks: + - tipi_main_network + + immich-microservices: + image: altran1502/immich-server:release + entrypoint: ["/bin/sh", "./start-microservices.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich_db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - DB_NAME=immich + - REDIS_HOSTNAME=immich-redis + - JWT_SECRET=${JWT_SECRET} + depends_on: + - immich-redis + - immich-db + restart: unless-stopped + networks: + - tipi_main_network + + immich-machine-learning: + image: altran1502/immich-machine-learning:release + entrypoint: ["/bin/sh", "./entrypoint.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich_db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - DB_NAME=immich + depends_on: + - immich-db + restart: unless-stopped + networks: + - tipi_main_network + + immich-web: + image: altran1502/immich-web:release + entrypoint: ["/bin/sh", "./entrypoint.sh"] + restart: unless-stopped + networks: + - tipi_main_network + + immich-redis: + container_name: immich-redis + image: redis:6.2 + restart: unless-stopped + networks: + - tipi_main_network + + immich-db: + container_name: immich-db + image: postgres:14 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: tipi + POSTGRES_DB: immich + PG_DATA: /var/lib/postgresql/data + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + restart: unless-stopped + networks: + - tipi_main_network + + immich: + container_name: immich + image: altran1502/immich-proxy:release + ports: + - ${APP_PORT}:80 + depends_on: + - immich-server + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.immich.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.immich.entrypoints: websecure + traefik.http.routers.immich.service: immich + traefik.http.routers.immich.tls.certresolver: myresolver + traefik.http.services.immich.loadbalancer.server.port: 80 + + diff --git a/apps/immich/metadata/description.md b/apps/immich/metadata/description.md new file mode 100644 index 00000000..4711547e --- /dev/null +++ b/apps/immich/metadata/description.md @@ -0,0 +1,5 @@ +## High performance self-hosted photo and video backup solution. + +An open source, high performance self-hosted backup solution for videos and photos on your mobile phone + +![Screenshot](https://raw.githubusercontent.com/immich-app/immich/main/design/web-home.jpeg) \ No newline at end of file diff --git a/apps/immich/metadata/logo.jpg b/apps/immich/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8173d09215f8f65e3482fd91a3148b6c11614389 GIT binary patch literal 34653 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

63aeJljjY!dqtBGU4<*_B7j?d_Z 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 literal 0 HcmV?d00001