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