From 2178511f781bc2b604ec65e6ff6df41d59f5dd76 Mon Sep 17 00:00:00 2001 From: levma Date: Wed, 11 Jan 2023 14:53:16 +0100 Subject: [PATCH] App Submission: Immich (#239) Co-authored-by: Malte Leverenz Co-authored-by: Steven Briscoe --- immich/data/postgres/.gitkeep | 0 immich/data/redis/.gitkeep | 0 immich/data/upload/.gitkeep | 0 immich/docker-compose.yml | 121 ++++++++++++++++++++++++++++++++++ immich/exports.sh | 7 ++ immich/umbrel-app.yml | 59 +++++++++++++++++ 6 files changed, 187 insertions(+) create mode 100644 immich/data/postgres/.gitkeep create mode 100644 immich/data/redis/.gitkeep create mode 100644 immich/data/upload/.gitkeep create mode 100644 immich/docker-compose.yml create mode 100644 immich/exports.sh create mode 100644 immich/umbrel-app.yml diff --git a/immich/data/postgres/.gitkeep b/immich/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/data/redis/.gitkeep b/immich/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/data/upload/.gitkeep b/immich/data/upload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml new file mode 100644 index 0000000..e5d2a60 --- /dev/null +++ b/immich/docker-compose.yml @@ -0,0 +1,121 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: immich_proxy_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: altran1502/immich-server:v1.40.0_63-dev@sha256:c61f6c5373efb4544db8d04e6e090b77561b71b07d4f272821a6349a18531e37 + entrypoint: ["/bin/sh", "./start-server.sh"] + volumes: + - ${APP_DATA_DIR}/data/upload:/usr/src/app/upload + environment: + NODE_ENV: production + DB_HOSTNAME: immich_postgres_1 + DB_USERNAME: ${APP_IMMICH_DB_USERNAME} + DB_PASSWORD: ${APP_IMMICH_DB_PASSWORD} + DB_DATABASE_NAME: ${APP_IMMICH_DB_DATABASE_NAME} + REDIS_HOSTNAME: immich_redis_1 + LOG_LEVEL: ${APP_IMMICH_LOG_LEVEL} + JWT_SECRET: ${APP_SEED} + DISABLE_REVERSE_GEOCODING: ${APP_IMMICH_DISABLE_REVERSE_GEOCODING} + REVERSE_GEOCODING_PRECISION: ${APP_IMMICH_REVERSE_GEOCODING_PRECISION} + PUBLIC_LOGIN_PAGE_MESSAGE: ${APP_IMMICH_PUBLIC_LOGIN_PAGE_MESSAGE} + depends_on: + - redis + - postgres + restart: on-failure + + microservices: + image: altran1502/immich-server:v1.40.0_63-dev@sha256:c61f6c5373efb4544db8d04e6e090b77561b71b07d4f272821a6349a18531e37 + # This service cannot run under 1000:1000 + # And because the uploads are shared + # We'll run immich specific services as root + entrypoint: ["/bin/sh", "./start-microservices.sh"] + volumes: + - ${APP_DATA_DIR}/data/upload:/usr/src/app/upload + environment: + NODE_ENV: production + DB_HOSTNAME: immich_postgres_1 + DB_USERNAME: ${APP_IMMICH_DB_USERNAME} + DB_PASSWORD: ${APP_IMMICH_DB_PASSWORD} + DB_DATABASE_NAME: ${APP_IMMICH_DB_DATABASE_NAME} + REDIS_HOSTNAME: immich_redis_1 + LOG_LEVEL: ${APP_IMMICH_LOG_LEVEL} + JWT_SECRET: ${APP_SEED} + DISABLE_REVERSE_GEOCODING: ${APP_IMMICH_DISABLE_REVERSE_GEOCODING} + REVERSE_GEOCODING_PRECISION: ${APP_IMMICH_REVERSE_GEOCODING_PRECISION} + PUBLIC_LOGIN_PAGE_MESSAGE: ${APP_IMMICH_PUBLIC_LOGIN_PAGE_MESSAGE} + depends_on: + - redis + - postgres + restart: on-failure + + machine-learning: + image: altran1502/immich-machine-learning:v1.40.0_63-dev@sha256:a5e660247a5a3c1d1b4ab9d160629def546d7e86e534a55d5ebc0e0eee5cef1a + entrypoint: ["/bin/sh", "./entrypoint.sh"] + volumes: + - ${APP_DATA_DIR}/data/upload:/usr/src/app/upload + environment: + NODE_ENV: production + DB_HOSTNAME: immich_postgres_1 + DB_USERNAME: ${APP_IMMICH_DB_USERNAME} + DB_PASSWORD: ${APP_IMMICH_DB_PASSWORD} + DB_DATABASE_NAME: ${APP_IMMICH_DB_DATABASE_NAME} + REDIS_HOSTNAME: immich_redis_1 + LOG_LEVEL: ${APP_IMMICH_LOG_LEVEL} + JWT_SECRET: ${APP_SEED} + DISABLE_REVERSE_GEOCODING: ${APP_IMMICH_DISABLE_REVERSE_GEOCODING} + REVERSE_GEOCODING_PRECISION: ${APP_IMMICH_REVERSE_GEOCODING_PRECISION} + PUBLIC_LOGIN_PAGE_MESSAGE: ${APP_IMMICH_PUBLIC_LOGIN_PAGE_MESSAGE} + depends_on: + - postgres + restart: on-failure + + web: + image: altran1502/immich-web:v1.40.0_63-dev@sha256:abad6488afaa1d0b4b8ea818221b86e7b45bf72a1ea328d8c0f35ad266b9e544 + entrypoint: ["/bin/sh", "./entrypoint.sh"] + environment: + DB_HOSTNAME: immich_postgres_1 + DB_USERNAME: ${APP_IMMICH_DB_USERNAME} + DB_PASSWORD: ${APP_IMMICH_DB_PASSWORD} + DB_DATABASE_NAME: ${APP_IMMICH_DB_DATABASE_NAME} + REDIS_HOSTNAME: immich_redis_1 + LOG_LEVEL: ${APP_IMMICH_LOG_LEVEL} + JWT_SECRET: ${APP_SEED} + DISABLE_REVERSE_GEOCODING: ${APP_IMMICH_DISABLE_REVERSE_GEOCODING} + REVERSE_GEOCODING_PRECISION: ${APP_IMMICH_REVERSE_GEOCODING_PRECISION} + PUBLIC_LOGIN_PAGE_MESSAGE: ${APP_IMMICH_PUBLIC_LOGIN_PAGE_MESSAGE} + PUBLIC_IMMICH_SERVER_URL: "http://immich_server_1:3001" + restart: on-failure + + proxy: + image: altran1502/immich-proxy:v1.40.0_63-dev@sha256:f779b86497b3d4b8822ec0d7341cfd2d1f1688b8859c70a9b16bd36d01468865 + environment: + IMMICH_WEB_URL: "http://immich_web_1:3000" + IMMICH_SERVER_URL: "http://immich_server_1:3001" + depends_on: + - server + restart: on-failure + + redis: + image: redis:6.2-bullseye@sha256:ffd3d04c8f7832ccdda89616ebaf3cb38414b645ebbf76dbef1fc9c36a72a2d1 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + + postgres: + image: postgres:14-bullseye@sha256:135c62a8134dcef829a1e4f5568bfae44bcfa2c75659ff948f43c71964366aa4 + user: "1000:1000" + environment: + POSTGRES_USER: ${APP_IMMICH_DB_USERNAME} + POSTGRES_PASSWORD: ${APP_IMMICH_DB_PASSWORD} + POSTGRES_DB: ${APP_IMMICH_DB_DATABASE_NAME} + PG_DATA: /var/lib/postgresql/data + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + restart: on-failure diff --git a/immich/exports.sh b/immich/exports.sh new file mode 100644 index 0000000..c05f101 --- /dev/null +++ b/immich/exports.sh @@ -0,0 +1,7 @@ +export APP_IMMICH_DB_USERNAME="immich" +export APP_IMMICH_DB_PASSWORD="moneyprintergobrrr" +export APP_IMMICH_DB_DATABASE_NAME="immich" +export APP_IMMICH_LOG_LEVEL="simple" +export APP_IMMICH_DISABLE_REVERSE_GEOCODING="false" +export APP_IMMICH_REVERSE_GEOCODING_PRECISION="3" +export APP_IMMICH_PUBLIC_LOGIN_PAGE_MESSAGE="" diff --git a/immich/umbrel-app.yml b/immich/umbrel-app.yml new file mode 100644 index 0000000..3690a12 --- /dev/null +++ b/immich/umbrel-app.yml @@ -0,0 +1,59 @@ +manifestVersion: 1 +id: immich +category: Files +name: Immich +version: "v1.40.1_63-dev" +tagline: High performance photo and video backup solution +description: >- + An open source and high performance self-hosted backup solution for the videos and photos on your mobile device + + + Features: + + - Upload and view videos and photos + + - Auto backup when the app is opened + + - Selective album(s) for backup + + - Download photos and videos to local device + + - Multi-user support + + - Album and Shared albums + + - Scrubbable/draggable scrollbar + + - Support RAW (HEIC, HEIF, DNG, Apple ProRaw) + + - Metadata view (EXIF, map) + + - Search by metadata, objects and image tags + + - Administrative functions (user management) + + - Background backup + + - Virtual scroll + + - OAuth support + + - LivePhoto backup and playback + + - User-defined storage structure +releaseNotes: "" +developer: Alex Tran +website: https://www.immich.app +dependencies: [] +repo: https://github.com/immich-app/immich +support: https://github.com/immich-app/immich/discussions +port: 2283 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: levma +submission: https://github.com/getumbrel/umbrel-apps/pull/239