diff --git a/install-immich-on-portainer/docker-compose.yml b/install-immich-on-portainer/docker-compose.yml new file mode 100644 index 0000000..9ce77fc --- /dev/null +++ b/install-immich-on-portainer/docker-compose.yml @@ -0,0 +1,111 @@ +version: "3" # Use version 3 of the docker-compose file format + +# Service definitions for the big-bear-immich application +services: + # Main Immich Server service configuration + immich-server: + container_name: immich-server # Name of the running container + image: ghcr.io/immich-app/immich-server:v1.94.1 # Image to be used + command: ["start.sh", "immich"] # Command to be executed upon container start + ports: # Mapping ports from the host OS to the container + - 2283:3001 + volumes: # Mounting directories for persistent data storage + - immich_upload:/usr/src/app/upload + environment: # Setting environment variables + DB_HOSTNAME: immich-postgres + DB_USERNAME: portainer + DB_PASSWORD: portainer + DB_DATABASE_NAME: immich + DB_PORT: 5432 + REDIS_HOSTNAME: immich-redis + IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003 + depends_on: # Dependencies to ensure the order of service startup + - redis + - database + restart: always # Policy to always restart the container if it stops + networks: + - immich-network + + # Configuration for the Immich Microservices + immich-microservices: + container_name: immich-microservices # Name of the running container + image: ghcr.io/immich-app/immich-server:v1.94.1 # Image to be used + # extends: # Feature to use configuration from another service (currently commented out) + # file: hwaccel.yml + # service: hwaccel + command: ["start.sh", "microservices"] # Command to be executed upon container start + volumes: # Mounting directories for persistent data storage + - immich_upload:/usr/src/app/upload + environment: # Setting environment variables + DB_HOSTNAME: immich-postgres + DB_USERNAME: portainer + DB_PASSWORD: portainer + DB_DATABASE_NAME: immich + DB_PORT: 5432 + REDIS_HOSTNAME: immich-redis + depends_on: # Dependencies to ensure the order of service startup + - redis + - database + restart: always # Policy to always restart the container if it stops + networks: + - immich-network + + # Configuration for Immich Machine Learning service + immich-machine-learning: + container_name: immich-machine-learning # Name of the running container + image: ghcr.io/immich-app/immich-machine-learning:v1.94.1 # Image to be used + volumes: # Mounting directories for persistent data storage + - immich_cache:/cache + environment: # Setting environment variables + DB_HOSTNAME: immich-postgres + DB_USERNAME: portainer + DB_PASSWORD: portainer + DB_DATABASE_NAME: immich + DB_PORT: 5432 + REDIS_HOSTNAME: immich-redis + restart: always # Policy to always restart the container if it stops + networks: + - immich-network + + # Configuration for Redis service + redis: + container_name: immich-redis # Name of the running container + image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 # Image to be used + restart: always # Policy to always restart the container if it stops + networks: + - immich-network + + # Configuration for Database service + database: + container_name: immich-postgres # Name of the running container + image: tensorchord/pgvecto-rs:pg14-v0.1.11 # Image to be used + environment: # Setting environment variables + POSTGRES_PASSWORD: portainer + POSTGRES_USER: portainer + POSTGRES_DB: immich + PG_DATA: /var/lib/postgresql/data + volumes: # Mounting directories for persistent data storage + - immich_postgres:/var/lib/postgresql/data + restart: always # Policy to always restart the container if it stops + networks: + - immich-network + +# Network definitions +networks: + # Define the network + immich-network: + # Use the bridge driver + driver: bridge + +# Define named volumes for data persistence. +volumes: + # Define a named volume for Immich data. + immich_cache: + # Use the local storage driver. + driver: local + immich_upload: + # Use the local storage driver. + driver: local + immich_postgres: + # Use the local storage driver. + driver: local