|
|
@ -1,36 +1,44 @@ |
|
|
|
version: "3.7" |
|
|
|
|
|
|
|
x-environment: &env |
|
|
|
NODE_ENV: "production" |
|
|
|
DB_HOSTNAME: "immich_postgres_1" |
|
|
|
DB_USERNAME: &db_username "immich" |
|
|
|
DB_PASSWORD: &db_password "moneyprintergobrrr" |
|
|
|
DB_DATABASE_NAME: &db_database_name "immich" |
|
|
|
REDIS_HOSTNAME: "immich_redis_1" |
|
|
|
LOG_LEVEL: "simple" |
|
|
|
JWT_SECRET: ${APP_SEED} |
|
|
|
DISABLE_REVERSE_GEOCODING: "false" |
|
|
|
REVERSE_GEOCODING_PRECISION: "3" |
|
|
|
PUBLIC_LOGIN_PAGE_MESSAGE: "" |
|
|
|
TYPESENSE_API_KEY: &typesense_api_key "any-text-for-self-hosted-typesense" |
|
|
|
IMMICH_SERVER_URL: &immich_server_url "http://immich_server_1:3001" |
|
|
|
IMMICH_WEB_URL: &immich_web_url "http://immich_web_1:3000" |
|
|
|
IMMICH_MACHINE_LEARNING_URL: "http://immich_machine-learning_1:3003" |
|
|
|
|
|
|
|
services: |
|
|
|
app_proxy: |
|
|
|
environment: |
|
|
|
APP_HOST: immich_proxy_1 |
|
|
|
APP_PORT: 8080 |
|
|
|
PROXY_AUTH_WHITELIST: "/api/*" |
|
|
|
PROXY_AUTH_WHITELIST: "/api/*,/search/*" |
|
|
|
|
|
|
|
server: |
|
|
|
image: altran1502/immich-server:v1.40.0_63-dev@sha256:c61f6c5373efb4544db8d04e6e090b77561b71b07d4f272821a6349a18531e37 |
|
|
|
image: altran1502/immich-server:v1.60.0@sha256:b3957954fb83ca987db7fd61b2f3f095c85ce9c89d89e5f355dbe33cee30c017 |
|
|
|
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} |
|
|
|
<<: *env |
|
|
|
depends_on: |
|
|
|
- redis |
|
|
|
- postgres |
|
|
|
- typesense |
|
|
|
restart: on-failure |
|
|
|
|
|
|
|
microservices: |
|
|
|
image: altran1502/immich-server:v1.40.0_63-dev@sha256:c61f6c5373efb4544db8d04e6e090b77561b71b07d4f272821a6349a18531e37 |
|
|
|
image: altran1502/immich-server:v1.60.0@sha256:b3957954fb83ca987db7fd61b2f3f095c85ce9c89d89e5f355dbe33cee30c017 |
|
|
|
# This service cannot run under 1000:1000 |
|
|
|
# And because the uploads are shared |
|
|
|
# We'll run immich specific services as root |
|
|
@ -38,65 +46,45 @@ services: |
|
|
|
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} |
|
|
|
<<: *env |
|
|
|
depends_on: |
|
|
|
- redis |
|
|
|
- postgres |
|
|
|
- typesense |
|
|
|
restart: on-failure |
|
|
|
|
|
|
|
machine-learning: |
|
|
|
image: altran1502/immich-machine-learning:v1.40.0_63-dev@sha256:a5e660247a5a3c1d1b4ab9d160629def546d7e86e534a55d5ebc0e0eee5cef1a |
|
|
|
entrypoint: ["/bin/sh", "./entrypoint.sh"] |
|
|
|
image: altran1502/immich-machine-learning:v1.60.0@sha256:da82c06c084e1421860057cb3d16d9575b69f0ec1c6ab53b21065c76df1e95cd |
|
|
|
volumes: |
|
|
|
- ${APP_DATA_DIR}/data/upload:/usr/src/app/upload |
|
|
|
- ${APP_DATA_DIR}/data/model-cache:/cache |
|
|
|
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} |
|
|
|
<<: *env |
|
|
|
depends_on: |
|
|
|
- postgres |
|
|
|
restart: on-failure |
|
|
|
|
|
|
|
web: |
|
|
|
image: altran1502/immich-web:v1.40.0_63-dev@sha256:abad6488afaa1d0b4b8ea818221b86e7b45bf72a1ea328d8c0f35ad266b9e544 |
|
|
|
image: altran1502/immich-web:v1.60.0@sha256:32e352cde02c6d2e6e439c77ca99c4bdf9daf808eee9ce9f1282688bcdec75be |
|
|
|
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" |
|
|
|
<<: *env |
|
|
|
restart: on-failure |
|
|
|
|
|
|
|
typesense: |
|
|
|
image: typesense/typesense:0.24.0@sha256:3cc1251f09ef6c75a5b1f2751c04e7265c770c0f2b69cba1f9a9f20da57cfa28 |
|
|
|
environment: |
|
|
|
TYPESENSE_API_KEY: *typesense_api_key |
|
|
|
TYPESENSE_DATA_DIR: "/data" |
|
|
|
volumes: |
|
|
|
- ${APP_DATA_DIR}/data/tsdata:/data |
|
|
|
restart: on-failure |
|
|
|
|
|
|
|
proxy: |
|
|
|
image: altran1502/immich-proxy:v1.40.0_63-dev@sha256:f779b86497b3d4b8822ec0d7341cfd2d1f1688b8859c70a9b16bd36d01468865 |
|
|
|
image: altran1502/immich-proxy:v1.60.0@sha256:8a5c0d80761b5de627c7135f14e87b6338aff5185ab7690ac4a30e719256f01e |
|
|
|
environment: |
|
|
|
IMMICH_WEB_URL: "http://immich_web_1:3000" |
|
|
|
IMMICH_SERVER_URL: "http://immich_server_1:3001" |
|
|
|
IMMICH_SERVER_URL: *immich_server_url |
|
|
|
IMMICH_WEB_URL: *immich_web_url |
|
|
|
depends_on: |
|
|
|
- server |
|
|
|
restart: on-failure |
|
|
@ -112,10 +100,11 @@ services: |
|
|
|
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} |
|
|
|
<<: *env |
|
|
|
POSTGRES_PASSWORD: *db_password |
|
|
|
POSTGRES_USER: *db_username |
|
|
|
POSTGRES_DB: *db_database_name |
|
|
|
PG_DATA: /var/lib/postgresql/data |
|
|
|
volumes: |
|
|
|
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data |
|
|
|
restart: on-failure |
|
|
|
restart: on-failure |