diff --git a/.env b/.env
new file mode 100644
index 0000000..157e94f
--- /dev/null
+++ b/.env
@@ -0,0 +1,78 @@
+###################################################################################
+# Database
+###################################################################################
+
+DB_HOSTNAME=immich_postgres
+DB_USERNAME=postgres1234
+DB_PASSWORD=postgres4321
+DB_DATABASE_NAME=immich
+
+# Optional Database settings:
+# DB_PORT=5432
+
+###################################################################################
+# Redis
+###################################################################################
+
+REDIS_HOSTNAME=immich_redis
+
+# Optional Redis settings:
+# REDIS_PORT=6379
+# REDIS_DBINDEX=0
+# REDIS_PASSWORD=
+# REDIS_SOCKET=
+
+###################################################################################
+# Upload File Config
+###################################################################################
+
+UPLOAD_LOCATION=/mnt/Data/Pictures/immich
+
+###################################################################################
+# Log message level - [simple|verbose]
+###################################################################################
+
+LOG_LEVEL=simple
+
+###################################################################################
+# JWT SECRET
+###################################################################################
+
+JWT_SECRET=LBFMH/tHs3VgR922pWNCy7wctMVx28WMBuJVBUPwWEtRzkO9WqMayitya4BgLljBKj7NBxKFuBixjuPcvJeH8I01O+Q81aW7Pk4/vL036VLB6mjd5n7jVObqwiMO8PexHi6+nxsiuU4kKR9V9Kxsh4ayIOdY8RxdJvtlxsiMtAA=
+
+###################################################################################
+# Reverse Geocoding
+####################################################################################
+
+# DISABLE_REVERSE_GEOCODING=false
+
+# Reverse geocoding is done locally which has a small impact on memory usage
+# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
+# This ranges from 0-3 with 3 being the most precise
+# 3 - Cities > 500 population: ~200MB RAM
+# 2 - Cities > 1000 population: ~150MB RAM
+# 1 - Cities > 5000 population: ~80MB RAM
+# 0 - Cities > 15000 population: ~40MB RAM
+
+# REVERSE_GEOCODING_PRECISION=3
+
+####################################################################################
+# WEB - Optional
+####################################################################################
+
+# Custom message on the login page, should be written in HTML form.
+# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.
Email: demo@demo.de
Password: demo"
+
+PUBLIC_LOGIN_PAGE_MESSAGE=
+
+####################################################################################
+# Alternative Service Addresses - Optional
+#
+# This is an advanced feature for users who may be running their immich services on different hosts.
+# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
+# Note: immich-microservices is bound to 3002, but no references are made
+####################################################################################
+
+IMMICH_WEB_URL=http://immich-web:3000
+IMMICH_SERVER_URL=http://immich-server:3001
+IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
diff --git a/compose.sh b/compose.sh
old mode 100644
new mode 100755
index 3489eab..4e1057d
--- a/compose.sh
+++ b/compose.sh
@@ -3,6 +3,11 @@
docker-compose \
-f docker-compose.yml \
-f composes/docker-compose.home.yml \
+ -f composes/docker-compose.immich.yml \
+ -f composes/docker-compose.immich.override.yml \
-f composes/docker-compose.mainServices.yml \
-f composes/docker-compose.media.yml \
- -f composes/docker-compose.traefik.yml $@
+ -f composes/docker-compose.vscode.yml \
+ -f composes/docker-compose.traefik.yml \
+ --env-file=./envfiles/immich \
+ $@
diff --git a/composes/docker-compose.home.yml b/composes/docker-compose.home.yml
index 173eeb8..01162b0 100644
--- a/composes/docker-compose.home.yml
+++ b/composes/docker-compose.home.yml
@@ -1,4 +1,4 @@
-version: '3'
+version: "3"
services:
dynuddnskovacs:
image: linuxserver/ddclient
@@ -55,12 +55,12 @@ services:
image: machines/filestash
restart: always
environment:
- - APPLICATION_URL=files.kovijoe.com
+ - APPLICATION_URL=files.kovijoe.com
#- "APPLICATION_URL=192.168.0.20:8334"
volumes:
- "/mnt/Data/.system/containerdata/filestash/data/:/app/data/state"
ports:
- - "8334:8334"
+ - "8334:8334"
labels:
- "traefik.enable=true"
- "traefik.http.routers.filestash.rule=Host(`files.kovijoe.com`)"
@@ -108,24 +108,24 @@ services:
aliases:
- nginxshared
- sharedsamba:
- image: dperson/samba
- environment:
- TZ: 'EST5EDT'
- container_name: sharedsamba
- read_only: true
- tmpfs:
- - /tmp
- restart: unless-stopped
- stdin_open: true
- tty: true
- volumes:
- - /mnt/Data/Shared/Vendeg:/mnt/shared
- command: '-u "user;VendegJelszo123;1000" -s "Shared;/mnt/shared;yes;no;no;user"'
- networks:
- homenet:
- aliases:
- - sharedsamba
+# sharedsamba:
+# image: dperson/samba
+# environment:
+# TZ: "EST5EDT"
+# container_name: sharedsamba
+# read_only: true
+# tmpfs:
+# - /tmp
+# restart: unless-stopped
+# stdin_open: true
+# tty: true
+# volumes:
+# - /mnt/Data/Shared/Vendeg:/mnt/shared
+# command: '-u "user;VendegJelszo123;1000" -s "Shared;/mnt/shared;yes;no;no;user"'
+# networks:
+# homenet:
+# aliases:
+# - sharedsamba
sharedfilestash:
container_name: sharedfilestash
@@ -135,7 +135,7 @@ services:
- "10000:8080"
restart: always
environment:
- - APPLICATION_URL=sharedup.kovijoe.com
+ - APPLICATION_URL=sharedup.kovijoe.com
volumes:
- "/mnt/Data/.system/containerdata/sharedfilestash/data/:/app/data/state"
labels:
@@ -161,7 +161,7 @@ services:
volumes:
- "/mnt/Data/.system/containerdata/sharedsshfs/config/users.conf:/etc/sftp/users.conf:ro"
- "/mnt/Data/.system/containerdata/sharedsshfs/init-scripts:/etc/sftp.d/"
- - /mnt/Data/Shared/Vendeg:/mnt/shared
+ - "/mnt/Data/Shared/Vendeg:/mnt/shared"
networks:
homenet:
aliases:
diff --git a/composes/docker-compose.immich.override.yml b/composes/docker-compose.immich.override.yml
new file mode 100644
index 0000000..f470ee3
--- /dev/null
+++ b/composes/docker-compose.immich.override.yml
@@ -0,0 +1,46 @@
+version: "3.8"
+
+services:
+ immich-proxy:
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.immich.rule=Host(`immich.kovijoe.com`)"
+ - "traefik.http.routers.immich.entrypoints=https"
+ - "traefik.http.routers.immich.tls.certresolver=letsencrypt"
+ - "traefik.http.services.immich.loadbalancer.server.port=8080"
+ networks:
+ homenet:
+
+ immich-server:
+ networks:
+ homenet:
+
+ immich-microservices:
+ networks:
+ homenet:
+
+ immich-machine-learning:
+ networks:
+ homenet:
+
+ immich-web:
+ networks:
+ homenet:
+
+ redis:
+ networks:
+ homenet:
+
+ database:
+ networks:
+ homenet:
+
+
+
+volumes:
+ pgdata:
+ driver: local
+ driver_opts:
+ device: /mnt/Data/.system/containerdata/immich/dbdata/
+ o: bind
+ type: none
diff --git a/composes/docker-compose.immich.yml b/composes/docker-compose.immich.yml
new file mode 100644
index 0000000..627fe1f
--- /dev/null
+++ b/composes/docker-compose.immich.yml
@@ -0,0 +1,95 @@
+version: "3.8"
+
+services:
+ immich-server:
+ container_name: immich_server
+ image: altran1502/immich-server:release
+ entrypoint: ["/bin/sh", "./start-server.sh"]
+ volumes:
+ - ${UPLOAD_LOCATION}:/usr/src/app/upload
+ env_file:
+ - .env
+ environment:
+ - NODE_ENV=production
+ depends_on:
+ - redis
+ - database
+ restart: always
+
+ immich-microservices:
+ container_name: immich_microservices
+ image: altran1502/immich-server:release
+ entrypoint: ["/bin/sh", "./start-microservices.sh"]
+ volumes:
+ - ${UPLOAD_LOCATION}:/usr/src/app/upload
+ env_file:
+ - .env
+ environment:
+ - NODE_ENV=production
+ depends_on:
+ - redis
+ - database
+ restart: always
+
+ immich-machine-learning:
+ container_name: immich_machine_learning
+ image: altran1502/immich-machine-learning:release
+ entrypoint: ["/bin/sh", "./entrypoint.sh"]
+ volumes:
+ - ${UPLOAD_LOCATION}:/usr/src/app/upload
+ env_file:
+ - .env
+ environment:
+ - NODE_ENV=production
+ depends_on:
+ - database
+ restart: always
+
+ immich-web:
+ container_name: immich_web
+ image: altran1502/immich-web:release
+ entrypoint: ["/bin/sh", "./entrypoint.sh"]
+ env_file:
+ - .env
+ environment:
+ # Rename these values for svelte public interface
+ - PUBLIC_IMMICH_SERVER_URL=${IMMICH_SERVER_URL}
+ restart: always
+
+ redis:
+ container_name: immich_redis
+ image: redis:6.2
+ restart: always
+
+ database:
+ container_name: immich_postgres
+ image: postgres:14
+ env_file:
+ - .env
+ environment:
+ POSTGRES_PASSWORD: ${DB_PASSWORD}
+ POSTGRES_USER: ${DB_USERNAME}
+ POSTGRES_DB: ${DB_DATABASE_NAME}
+ PG_DATA: /var/lib/postgresql/data
+ volumes:
+ - pgdata:/var/lib/postgresql/data
+ restart: always
+
+ immich-proxy:
+ container_name: immich_proxy
+ image: altran1502/immich-proxy:release
+ environment:
+ # Make sure these values get passed through from the env file
+ - IMMICH_SERVER_URL
+ - IMMICH_WEB_URL
+ ports:
+ - 2283:8080
+ logging:
+ driver: none
+ depends_on:
+ - immich-server
+ restart: always
+
+volumes:
+ pgdata:
+
diff --git a/composes/docker-compose.mainServices.yml b/composes/docker-compose.mainServices.yml
index 11bc2d8..e1dabaa 100644
--- a/composes/docker-compose.mainServices.yml
+++ b/composes/docker-compose.mainServices.yml
@@ -67,4 +67,4 @@ services:
# - seafiledb
# - memcached
# networks:
-# - homenet
\ No newline at end of file
+# - homenet
diff --git a/composes/docker-compose.media.yml b/composes/docker-compose.media.yml
index c45ec66..35ba09a 100644
--- a/composes/docker-compose.media.yml
+++ b/composes/docker-compose.media.yml
@@ -161,4 +161,5 @@ services:
- /mnt/Data/.system/containerdata/plex/transcode:/transcode
- "Movies:/media/Movies"
- "TvShows:/media/TvShows"
- restart: unless-stopped
\ No newline at end of file
+ - "Pictures:/media/Pictures"
+ restart: unless-stopped
diff --git a/composes/docker-compose.vscode.yml b/composes/docker-compose.vscode.yml
new file mode 100644
index 0000000..b7c7b9c
--- /dev/null
+++ b/composes/docker-compose.vscode.yml
@@ -0,0 +1,20 @@
+version: '3'
+services:
+ code-server:
+ image: lscr.io/linuxserver/code-server
+ container_name: code-server
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Budapest
+ - PASSWORD=ConfigEditPw1234 #optional
+ #- HASHED_PASSWORD="$$argon2i$$v=19$$m=4096,t=3,p=1$$NlfpYWMD5UHU1qigbL9/7g$$aLFz2ImLfuT85R5tda3Fo7rEaN/q6sYVfF7tVFq8cME"
+ - SUDO_PASSWORD=ConfigEditPw1234 #optional
+ #- SUDO_PASSWORD_HASH="$$argon2i$$v=19$$m=4096,t=3,p=1$$NlfpYWMD5UHU1qigbL9/7g$$aLFz2ImLfuT85R5tda3Fo7rEaN/q6sYVfF7tVFq8cME"
+ #- PROXY_DOMAIN=code-server.my.domain #optional
+ - DEFAULT_WORKSPACE=/data #optional
+ volumes:
+ - /mnt/Data/.system:/data
+ ports:
+ - 8443:8443
+ restart: unless-stopped
diff --git a/docker-compose.yml b/docker-compose.yml
index 8880725..6e100f7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -47,9 +47,16 @@ volumes:
o: bind
type: none
+ Pictures:
+ driver: local
+ driver_opts:
+ device: /mnt/pictures
+ o: bind
+ type: none
+
TvShows:
driver: local
driver_opts:
device: /mnt/Data/Videos/Sorozatok
o: bind
- type: none
\ No newline at end of file
+ type: none
diff --git a/envfiles/immich b/envfiles/immich
new file mode 100644
index 0000000..157e94f
--- /dev/null
+++ b/envfiles/immich
@@ -0,0 +1,78 @@
+###################################################################################
+# Database
+###################################################################################
+
+DB_HOSTNAME=immich_postgres
+DB_USERNAME=postgres1234
+DB_PASSWORD=postgres4321
+DB_DATABASE_NAME=immich
+
+# Optional Database settings:
+# DB_PORT=5432
+
+###################################################################################
+# Redis
+###################################################################################
+
+REDIS_HOSTNAME=immich_redis
+
+# Optional Redis settings:
+# REDIS_PORT=6379
+# REDIS_DBINDEX=0
+# REDIS_PASSWORD=
+# REDIS_SOCKET=
+
+###################################################################################
+# Upload File Config
+###################################################################################
+
+UPLOAD_LOCATION=/mnt/Data/Pictures/immich
+
+###################################################################################
+# Log message level - [simple|verbose]
+###################################################################################
+
+LOG_LEVEL=simple
+
+###################################################################################
+# JWT SECRET
+###################################################################################
+
+JWT_SECRET=LBFMH/tHs3VgR922pWNCy7wctMVx28WMBuJVBUPwWEtRzkO9WqMayitya4BgLljBKj7NBxKFuBixjuPcvJeH8I01O+Q81aW7Pk4/vL036VLB6mjd5n7jVObqwiMO8PexHi6+nxsiuU4kKR9V9Kxsh4ayIOdY8RxdJvtlxsiMtAA=
+
+###################################################################################
+# Reverse Geocoding
+####################################################################################
+
+# DISABLE_REVERSE_GEOCODING=false
+
+# Reverse geocoding is done locally which has a small impact on memory usage
+# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
+# This ranges from 0-3 with 3 being the most precise
+# 3 - Cities > 500 population: ~200MB RAM
+# 2 - Cities > 1000 population: ~150MB RAM
+# 1 - Cities > 5000 population: ~80MB RAM
+# 0 - Cities > 15000 population: ~40MB RAM
+
+# REVERSE_GEOCODING_PRECISION=3
+
+####################################################################################
+# WEB - Optional
+####################################################################################
+
+# Custom message on the login page, should be written in HTML form.
+# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.
Email: demo@demo.de
Password: demo"
+
+PUBLIC_LOGIN_PAGE_MESSAGE=
+
+####################################################################################
+# Alternative Service Addresses - Optional
+#
+# This is an advanced feature for users who may be running their immich services on different hosts.
+# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
+# Note: immich-microservices is bound to 3002, but no references are made
+####################################################################################
+
+IMMICH_WEB_URL=http://immich-web:3000
+IMMICH_SERVER_URL=http://immich-server:3001
+IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003