initial commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Immich
|
||||
|
||||
Deploy Immich photo management platform using Docker Compose.
|
||||
|
||||
## Description
|
||||
|
||||
Immich is a self-hosted photo and video backup solution with mobile apps, AI features, and automatic organization. Includes web server, machine learning, PostgreSQL database, and Redis.
|
||||
|
||||
## Variables
|
||||
|
||||
### Required (Set in Vault)
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `immich_db_password` | PostgreSQL database password (use only A-Za-z0-9 characters) |
|
||||
|
||||
### Optional
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `immich_http_port` | `2283` | Web interface port |
|
||||
| `immich_library_path` | `{{ app_dir }}/library` | Photo and video upload storage location |
|
||||
| `immich_pgdata_path` | `{{ app_dir }}/pgdata` | PostgreSQL database storage location |
|
||||
| `immich_container_version` | `v2` | Immich version tag (can pin to specific version like "v2.1.0") |
|
||||
| `immich_container_name` | `{{ app_name }}` | Container name |
|
||||
| `immich_restart_policy` | `{{ app_restart_policy }}` | Container restart policy |
|
||||
| `immich_timezone` | `{{ app_timezone }}` | Container timezone |
|
||||
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
- role: patrickj.docker_apps.immich
|
||||
vars:
|
||||
immich_db_password: "{{ vault_immich_db_password }}"
|
||||
immich_library_path: /storage/photos
|
||||
immich_container_version: "v2.1.0"
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
app_name: immich
|
||||
|
||||
# Container configuration
|
||||
immich_container_name: "{{ app_name | default('immich') }}"
|
||||
immich_container_version: v2
|
||||
immich_restart_policy: "{{ app_restart_policy | default('unless-stopped') }}"
|
||||
|
||||
# Network configuration
|
||||
immich_http_port: 2283
|
||||
|
||||
# Volume paths
|
||||
immich_library_path: "{{ app_dir }}/library"
|
||||
immich_pgdata_path: "{{ app_dir }}/pgdata"
|
||||
|
||||
# App-specific configuration
|
||||
immich_db_password: postgres
|
||||
immich_timezone: "{{ app_timezone }}"
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: Patrick Jaroszewski
|
||||
description:: Deploy Immich with Docker Compose
|
||||
license: MIT
|
||||
|
||||
dependencies:
|
||||
- role: patrickj.docker_apps.docker_compose_app
|
||||
vars:
|
||||
app_role_name: immich
|
||||
app_subdirectories:
|
||||
- "{{ immich_library_path }}"
|
||||
- "{{ immich_pgdata_path }}"
|
||||
app_backup_subdirectories:
|
||||
- "{{ immich_library_path }}"
|
||||
- "{{ immich_pgdata_path }}"
|
||||
app_extra_templates:
|
||||
- src: "{{ app_templates_path }}/.env.j2"
|
||||
dest: "{{ app_dir }}/.env"
|
||||
app_compose_validate: false
|
||||
@@ -0,0 +1,22 @@
|
||||
# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables
|
||||
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION={{ immich_library_path }}
|
||||
|
||||
# The location where your database files are stored. Network shares are not supported for the database
|
||||
DB_DATA_LOCATION={{ immich_pgdata_path }}
|
||||
|
||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
TZ={{ immich_timezone }}
|
||||
|
||||
# The Immich version to use. You can pin this to a specific version like "v2.1.0"
|
||||
IMMICH_VERSION={{ immich_container_version }}
|
||||
|
||||
# Connection secret for postgres. You should change it to a random password
|
||||
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||
DB_PASSWORD={{ immich_db_password }}
|
||||
|
||||
# The values below this line do not need to be changed
|
||||
###################################################################################
|
||||
DB_USERNAME=postgres
|
||||
DB_DATABASE_NAME=immich
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
name: immich
|
||||
|
||||
services:
|
||||
immich-server:
|
||||
container_name: "{{ immich_container_name }}"
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
# extends:
|
||||
# file: hwaccel.transcoding.yml
|
||||
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "{{ immich_http_port }}:2283"
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: {{ immich_restart_policy }}
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||
# file: hwaccel.ml.yml
|
||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
env_file:
|
||||
- .env
|
||||
restart: {{ immich_restart_policy }}
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: {{ immich_restart_policy }}
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
|
||||
# DB_STORAGE_TYPE: 'HDD'
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||
shm_size: 128mb
|
||||
restart: {{ immich_restart_policy }}
|
||||
|
||||
volumes:
|
||||
model-cache:
|
||||
Reference in New Issue
Block a user