diff --git a/apps/immich/config.json b/apps/immich/config.json new file mode 100644 index 00000000..1f948773 --- /dev/null +++ b/apps/immich/config.json @@ -0,0 +1,30 @@ +{ + "$schema": "../schema.json", + "name": "Immich", + "available": true, + "exposable": true, + "port": 8128, + "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..7f05f845 --- /dev/null +++ b/apps/immich/docker-compose.yml @@ -0,0 +1,115 @@ +version: "3.7" + +services: + immich-server: + container_name: immich-server + image: altran1502/immich-server:release + entrypoint: ["/bin/sh", "./start-server.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich-db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - ENABLE_MAPBOX=false + - DB_DATABASE_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: + container_name: immich-microservices + image: altran1502/immich-server:release + entrypoint: ["/bin/sh", "./start-microservices.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich-db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - DB_DATABASE_NAME=immich + - REDIS_HOSTNAME=immich-redis + - JWT_SECRET=${JWT_SECRET} + - ENABLE_MAPBOX=false + depends_on: + - immich-redis + - immich-db + restart: unless-stopped + networks: + - tipi_main_network + + immich-machine-learning: + container_name: immich-machine-learning + image: altran1502/immich-machine-learning:release + entrypoint: ["/bin/sh", "./entrypoint.sh"] + volumes: + - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload + environment: + - NODE_ENV=production + - DB_HOSTNAME=immich-db + - DB_USERNAME=tipi + - DB_PASSWORD=${DB_PASSWORD} + - DB_NAME=immich + - DB_DATABASE_NAME=immich + depends_on: + - immich-db + restart: unless-stopped + networks: + - tipi_main_network + + immich-web: + container_name: 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}:8080 + depends_on: + - immich-web + - 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: 8080 + + 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 00000000..8173d092 Binary files /dev/null and b/apps/immich/metadata/logo.jpg differ diff --git a/apps/photoprism/docker-compose.yml b/apps/photoprism/docker-compose.yml index 4c615400..3651a360 100644 --- a/apps/photoprism/docker-compose.yml +++ b/apps/photoprism/docker-compose.yml @@ -37,7 +37,7 @@ services: PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" working_dir: "/photoprism" volumes: - - "${APP_DATA_DIR}/data/photoprism/originals:/photoprism/originals" + - "${ROOT_FOLDER_HOST}/media/data/images:/photoprism/originals" - "${APP_DATA_DIR}/data/photoprism/storage:/photoprism/storage" networks: - tipi_main_network