diff --git a/bazarr/docker-compose.yml b/bazarr/docker-compose.yml
index 41ef6c2..ff3ea66 100644
--- a/bazarr/docker-compose.yml
+++ b/bazarr/docker-compose.yml
@@ -10,24 +10,25 @@ services:
volumes:
# - /path/to/bazarr/config:/config
# - /path/to/movies:/movies #optional
- # - /path/to/tv:/tv #optional
+ # - nfs_data/film:/movies #optional
+ - nfs_tv_data:/tv #optional
- '/srv/bazarr:/config'
- - "nfs_data:/shares"
+ # - "nfs_data:/shares"
ports:
- 6767:6767
restart: unless-stopped
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.bazarr.tls=true"
- - "traefik.http.routers.bazarr.entrypoints=websecure"
- - "traefik.http.routers.bazarr.rule=Host(`bazarr.$DOMAIN_NAME`)"
- - "traefik.http.routers.bazarr.tls.certresolver=letsencr"
- - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
+ # labels:
+ # - "traefik.enable=true"
+ # - "traefik.http.routers.bazarr.tls=true"
+ # - "traefik.http.routers.bazarr.entrypoints=websecure"
+ # - "traefik.http.routers.bazarr.rule=Host(`bazarr.$DOMAIN_NAME`)"
+ # - "traefik.http.routers.bazarr.tls.certresolver=letsencr"
+ # - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
volumes:
- nfs_data:
+ nfs_tv_data:
external: true
networks:
diff --git a/ddclient/docker-compose.yml b/ddclient/docker-compose.yml
new file mode 100644
index 0000000..58deafe
--- /dev/null
+++ b/ddclient/docker-compose.yml
@@ -0,0 +1,19 @@
+version: "3"
+
+services:
+ ddclient:
+ image: lscr.io/linuxserver/ddclient:latest
+ container_name: ddclient
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Etc/UTC
+ volumes:
+ - /etc/ddclient:/config
+ restart: unless-stopped
+ labels:
+ - "traefik.enable=true"
+
+networks:
+ traefik:
+ external: true
\ No newline at end of file
diff --git a/ghost/docker-compose.yml b/ghost/docker-compose.yml
index 495b302..34317b9 100644
--- a/ghost/docker-compose.yml
+++ b/ghost/docker-compose.yml
@@ -2,6 +2,9 @@ version: "3"
services:
ghost:
image: ghost:latest
+ # build:
+ # context: ./nginx
+ # dockerfile: Dockerfile
volumes:
- /srv/ghost:/var/lib/ghost/content
environment:
@@ -13,9 +16,11 @@ services:
# database__connection__user: root
# database__connection__password: RJbhYNaCEB3fu8cbtkteetxTR5LtZjnPsqATGgPZ
# database__connection__database: ghost
+ volumes:
+ - /home/ghost/content:/var/lib/ghost/content/data
networks:
- traefik
- - default
+ # - default
# depends_on:
# - ghost_db
restart: unless-stopped
@@ -26,6 +31,7 @@ services:
- "traefik.http.routers.ghost.entrypoints=websecure"
- "traefik.http.routers.ghost.rule=Host(`read.$DOMAIN_NAME`)"
- "traefik.http.routers.ghost.tls.certresolver=letsencr"
+ - "traefik.http.services.ghost.loadbalancer.server.port=2368"
# ghost_db:
# image: mysql:8
diff --git a/ghost/nginx/default.conf b/ghost/nginx/default.conf
index 90879f1..aea9aa8 100644
--- a/ghost/nginx/default.conf
+++ b/ghost/nginx/default.conf
@@ -1,15 +1,66 @@
-server {
- listen 80;
- listen [::]:80;
- server_name read.knast.cc;
-}
+# server {
+# listen 80;
+# listen [::]:80;
+# server_name read.knast.cc;
+# }
-server {
- server_name read.knast.cc;
- location / {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-Proto https;
- proxy_pass http://ghost:2368;
- }
-}
\ No newline at end of file
+# server {
+# server_name read.knast.cc;
+# location / {
+ # proxy_set_header Host $host;
+ # proxy_set_header X-Real-IP $remote_addr;
+ # proxy_set_header X-Forwarded-Proto https;
+ # proxy_pass http://ghost:2368;
+ # }
+# }
+
+
+# server {
+# listen 80;
+# listen [::]:80;
+# # listen 443 ssl http2 default_server;
+# # listen [::]:443 http2 ssl;
+# # server_name read.knast.cc;
+# # ssl on;
+# # ssl_certificate /etc/nginx/yourhost.xyz.crt;
+# # ssl_certificate_key /etc/nginx/yourhost.xyz.key;
+# # ssl_protocols TLSv1.2;
+
+# location / {
+
+# proxy_set_header X-Real-IP $remote_addr;
+# proxy_set_header Host $host;
+# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+# proxy_set_header X-Forwarded-Proto $scheme;
+# proxy_connect_timeout 90;
+# proxy_send_timeout 90;
+# proxy_read_timeout 90;
+# proxy_buffering off;
+# proxy_cache_valid 200 30m;
+# proxy_cache_valid 404 1m;
+
+# client_max_body_size 10m;
+# client_body_buffer_size 128k;
+
+
+# proxy_pass http://ghost:2368;
+# }
+
+# # Cache Ghost Images
+# location ~ "/assets/images/(.*)-([a-z0-9]{10})\.(?:png|jpe?g|tiff)(.*)$" {
+# expires max;
+# add_header Cache-Control public;
+# add_header Vary Accept;
+# proxy_pass http://ghost:2368/$uri$webp_suffix;
+# access_log off;
+# }
+
+# # Cache Ghost css and js
+# location ~* \.(?:css|js) {
+# expires max;
+# add_header Cache-Control public;
+# proxy_pass http://ghost:2368/$uri;
+# access_log off;
+# }
+
+# }
\ No newline at end of file
diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml
index 72e3c96..0400c9f 100644
--- a/gitea/docker-compose.yml
+++ b/gitea/docker-compose.yml
@@ -54,6 +54,19 @@ services:
options:
max-size: "1m"
+ runner:
+ image: gitea/act_runner:latest
+ environment:
+ CONFIG_FILE: /config.yaml
+ GITEA_INSTANCE_URL: "https://gitea.knast.cc"
+ GITEA_RUNNER_REGISTRATION_TOKEN: "F27ZMdzwY0wunOmmkK9O4kwZFGeyORykFHZtJA9F"
+ GITEA_RUNNER_NAME: "BOB_THE_BUILDER"
+ GITEA_RUNNER_LABELS: "ALL"
+ volumes:
+ - /srv/gitea_runner/config/config.yaml:/config.yaml
+ - /srv/gitea_runner/data:/data
+ - /var/run/docker.sock:/var/run/docker.sock
+
networks:
traefik:
external: true
diff --git a/gitlab/docker-compose.yml b/gitlab/docker-compose.yml
index b63fb6f..6d5650d 100644
--- a/gitlab/docker-compose.yml
+++ b/gitlab/docker-compose.yml
@@ -18,7 +18,7 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.routers.gitlab.entrypoints=websecure"
- - "traefik.http.routers.gitlab.rule=Host(`gitlab.$DOMAIN_NAME`, `registry.gitlab.$DOMAIN_NAME`)"
+ - "traefik.http.routers.gitlab.rule=Host(`gitlab.$DOMAIN_NAME`)"
- "traefik.http.routers.gitlab.tls.certresolver=letsencr"
- "traefik.http.services.gitlab.loadbalancer.server.port=80"
volumes:
diff --git a/immich/.env b/immich/.env
index a0555b1..e9e1448 100644
--- a/immich/.env
+++ b/immich/.env
@@ -1,107 +1,131 @@
-###################################################################################
-# Database
-###################################################################################
-# NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
-# See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets
-DB_HOSTNAME=immich_postgres
-DB_USERNAME=postgres
+# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
+
+# The location where your uploaded files are stored
+UPLOAD_LOCATION=/srv/immich/uploads
+# The location where your database files are stored
+DB_DATA_LOCATION=/srv/immich/pgdata
+
+# 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=Etc/UTC
+
+# The Immich version to use. You can pin this to a specific version like "v1.71.0"
+IMMICH_VERSION=release
+
+# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333
+
+# The values below this line do not need to be changed
+###################################################################################
+DB_USERNAME=postgres
DB_DATABASE_NAME=immich
-# Optional Database settings:
-# DB_PORT=5432
-
-###################################################################################
-# Redis
-###################################################################################
-
-REDIS_HOSTNAME=immich_redis
-
-# REDIS_URL will be used to pass custom options to ioredis.
-# Example for Sentinel
-# {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"}
-# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=
-
-# Optional Redis settings:
-
-# Note: these parameters are not automatically passed to the Redis Container
-# to do so, please edit the docker-compose.yml file as well. Redis is not configured
-# via environment variables, only redis.conf or the command line
-
-# REDIS_PORT=6379
-# REDIS_DBINDEX=0
-# REDIS_USERNAME=
-# REDIS_PASSWORD=
-# REDIS_SOCKET=
-
-###################################################################################
-# Upload File Location
-#
-# This is the location where uploaded files are stored.
-###################################################################################
-
-UPLOAD_LOCATION=/srv/immich/uploads
-###################################################################################
-# Typesense
-###################################################################################
-TYPESENSE_API_KEY=a897scf-ac8c3aghjfghk-567cvhdf3odjkfg
-# TYPESENSE_ENABLED=false
-# TYPESENSE_URL uses base64 encoding for the nodes json.
-# Example JSON that was used:
-# [
-# { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' },
-# { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' },
-# { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' },
-# ]
-# TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd
+# ###################################################################################
+# # Database
+# ###################################################################################
-###################################################################################
-# Reverse Geocoding
-#
-# 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
-####################################################################################
+# # NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
+# # See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets
+# DB_HOSTNAME=immich_postgres
+# DB_USERNAME=postgres
+# DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333
+# DB_DATABASE_NAME=immich
-# DISABLE_REVERSE_GEOCODING=false
-# REVERSE_GEOCODING_PRECISION=3
+# # Optional Database settings:
+# # DB_PORT=5432
-####################################################################################
-# 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"
-####################################################################################
+# ###################################################################################
+# # Redis
+# ###################################################################################
-PUBLIC_LOGIN_PAGE_MESSAGE=Look
+# REDIS_HOSTNAME=immich_redis
-####################################################################################
-# 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
-####################################################################################
+# # REDIS_URL will be used to pass custom options to ioredis.
+# # Example for Sentinel
+# # {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"}
+# # REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=
-IMMICH_WEB_URL=http://immich-web:3000
-IMMICH_SERVER_URL=http://immich-server:3001
-IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
+# # Optional Redis settings:
-####################################################################################
-# Alternative API's External Address - Optional
-#
-# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
-# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
-# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
-# Examples: http://localhost:3001, http://immich-api.example.com, etc
-####################################################################################
+# # Note: these parameters are not automatically passed to the Redis Container
+# # to do so, please edit the docker-compose.yml file as well. Redis is not configured
+# # via environment variables, only redis.conf or the command line
-IMMICH_API_URL_EXTERNAL=https://imm.knast.cc
\ No newline at end of file
+# # REDIS_PORT=6379
+# # REDIS_DBINDEX=0
+# # REDIS_USERNAME=
+# # REDIS_PASSWORD=
+# # REDIS_SOCKET=
+
+# ###################################################################################
+# # Upload File Location
+# #
+# # This is the location where uploaded files are stored.
+# ###################################################################################
+
+# UPLOAD_LOCATION=/srv/immich/uploads
+
+
+# ###################################################################################
+# # Typesense
+# ###################################################################################
+# TYPESENSE_API_KEY=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg
+# # TYPESENSE_ENABLED=false
+# # TYPESENSE_URL uses base64 encoding for the nodes json.
+# # Example JSON that was used:
+# # [
+# # { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' },
+# # { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' },
+# # { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' },
+# # ]
+# # TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd
+
+# ###################################################################################
+# # Reverse Geocoding
+# #
+# # 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
+# ####################################################################################
+
+# # DISABLE_REVERSE_GEOCODING=false
+# # 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=Look
+
+# ####################################################################################
+# # 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
+
+# ####################################################################################
+# # Alternative API's External Address - Optional
+# #
+# # This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
+# # You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
+# # NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
+# # Examples: http://localhost:3001, http://immich-api.example.com, etc
+# ####################################################################################
+
+# IMMICH_API_URL_EXTERNAL=https://imm.knast.cc
\ No newline at end of file
diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml
index 1b41247..54548aa 100644
--- a/immich/docker-compose.yml
+++ b/immich/docker-compose.yml
@@ -1,5 +1,88 @@
version: "3.8"
+
+#
+# WARNING: Make sure to use the docker-compose.yml of the current release:
+#
+# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
+#
+# The compose file on main may not be compatible with the latest release.
+#
+
+# name: immich
+
+# services:
+ # immich-server:
+ # container_name: immich_server
+ # networks:
+ # - traefik
+ # 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:
+ # - ${UPLOAD_LOCATION}:/usr/src/app/upload
+ # - /etc/localtime:/etc/localtime:ro
+ # env_file:
+ # - .env
+ # ports:
+ # - 2283:3001
+ # depends_on:
+ # - redis
+ # - database
+ # restart: always
+
+ # immich-machine-learning:
+ # networks:
+ # - traefik
+ # container_name: immich_machine_learning
+ # # For hardware acceleration, add one of -[armnn, cuda, openvino] 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://immich.app/docs/features/ml-hardware-acceleration
+ # # file: hwaccel.ml.yml
+ # # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
+ # volumes:
+ # - /srv/immich/model-cache:/cache
+ # env_file:
+ # - .env
+ # restart: always
+
+ # redis:
+ # networks:
+ # - traefik
+ # container_name: redis
+ # image: redis:latest
+ # command: ["redis-server", "--bind", "redis", "--port", "6379"]
+ # # image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
+ # # healthcheck:
+ # # test: redis-cli ping || exit 1
+ # restart: always
+
+ # database:
+ # networks:
+ # - traefik
+ # container_name: database
+ # image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
+ # environment:
+ # POSTGRES_PASSWORD: ${DB_PASSWORD}
+ # POSTGRES_USER: ${DB_USERNAME}
+ # POSTGRES_DB: ${DB_DATABASE_NAME}
+ # POSTGRES_INITDB_ARGS: '--data-checksums'
+ # volumes:
+ # - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
+ # # healthcheck:
+ # # test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
+ # # interval: 5m
+ # # start_interval: 30s
+ # # start_period: 5m
+ # command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
+ # restart: always
+
+# volumes:
+# model-cache:
+
+
services:
immich-server:
networks:
@@ -14,7 +97,7 @@ services:
depends_on:
- redis
- database
- - typesense
+ # - typesense
restart: always
immich-microservices:
@@ -30,7 +113,7 @@ services:
depends_on:
- redis
- database
- - typesense
+ # - typesense
restart: always
immich-machine-learning:
@@ -61,19 +144,19 @@ services:
- "traefik.http.routers.imm.tls.certresolver=letsencr"
# - "traefik.http.services.imm.loadbalancer.server.port=32400"
- typesense:
- networks:
- - traefik
- container_name: immich_typesense
- image: typesense/typesense:0.24.0
- environment:
- - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
- - TYPESENSE_DATA_DIR=/data
- logging:
- driver: none
- volumes:
- - /srv/immich/tsdata:/data
- restart: always
+ # typesense:
+ # networks:
+ # - traefik
+ # container_name: immich_typesense
+ # image: typesense/typesense:0.24.0
+ # environment:
+ # - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
+ # - TYPESENSE_DATA_DIR=/data
+ # logging:
+ # driver: none
+ # volumes:
+ # - /srv/immich/tsdata:/data
+ # restart: always
redis:
container_name: immich_redis
@@ -115,10 +198,76 @@ services:
- immich-server
restart: always
-# volumes:
-# pgdata:
-# model-cache:
-# tsdata:
+
+# OFFICIAL
+
+
+# services:
+# immich:
+# image: ghcr.io/imagegenius/immich:latest
+# container_name: immich
+# networks:
+# - traefik
+# labels:
+# - traefik.enable=true
+# - "traefik.http.routers.imm.entrypoints=websecure"
+# - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)"
+# - "traefik.http.routers.imm.tls.certresolver=letsencr"
+# - "traefik.http.services.imm.loadbalancer.server.port=7878"
+# environment:
+# - PUID=1000
+# - PGID=1000
+# - TZ=Etc/UTC
+# - DB_HOSTNAME=database
+# - DB_USERNAME=postgres
+# - DB_PASSWORD=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg
+# - DB_DATABASE_NAME=immich
+# - REDIS_HOSTNAME=redis
+# # - DB_PORT=5432 #optional
+# # - REDIS_PORT=6379 #optional
+# # - REDIS_PASSWORD= #optional
+# # - MACHINE_LEARNING_HOST=0.0.0.0 #optional
+# # - MACHINE_LEARNING_PORT=3003 #optional
+# # - MACHINE_LEARNING_WORKERS=1 #optional
+# # - MACHINE_LEARNING_WORKER_TIMEOUT=120 #optional
+# volumes:
+# - /srv/immich/config:/config
+# - /srv/immich/uploads:/photos
+# # - path_to_libraries:/libraries #optional
+# ports:
+# - 7878:8080
+# restart: unless-stopped
+
+# # This container requires an external application to be run separately.
+# # By default, ports for the databases are opened, be careful when deploying it
+# # Redis:
+# redis:
+# networks:
+# - traefik
+# image: redis
+# ports:
+# - 6379:6379
+# container_name: redis
+
+# # PostgreSQL 14:
+# database:
+# image: tensorchord/pgvecto-rs:pg14-v0.2.0
+# ports:
+# - 5432:5432
+# container_name: database
+# networks:
+# - traefik
+# environment:
+# POSTGRES_USER: postgres
+# POSTGRES_PASSWORD: a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg
+# POSTGRES_DB: immich
+# volumes:
+# - /srv/immich/pgdata:/var/lib/postgresql/data
+
+# # volumes:
+# # pgdata:
+# # model-cache:
+# # tsdata:
networks:
traefik:
diff --git a/plex/docker-compose.yml b/plex/docker-compose.yml
index 16b0ef0..2e5cc57 100644
--- a/plex/docker-compose.yml
+++ b/plex/docker-compose.yml
@@ -33,6 +33,7 @@ services:
- traefik.enable=true
- "traefik.http.routers.plex.entrypoints=websecure"
- "traefik.http.routers.plex.rule=Host(`plex.$DOMAIN_NAME`)"
+ - "traefik.http.routers.plex.tls=true"
- "traefik.http.routers.plex.tls.certresolver=letsencr"
- "traefik.http.services.plex.loadbalancer.server.port=32400"
diff --git a/sonarr/.env b/sonarr/.env
new file mode 100644
index 0000000..be9448c
--- /dev/null
+++ b/sonarr/.env
@@ -0,0 +1,2 @@
+DOMAIN_NAME=knast.cc
+DEFAULT_NETWORK=traefik
diff --git a/sonarr/docker-compose.yml b/sonarr/docker-compose.yml
new file mode 100644
index 0000000..f1db4e9
--- /dev/null
+++ b/sonarr/docker-compose.yml
@@ -0,0 +1,25 @@
+version: '3.6'
+services:
+ sonarr:
+ image: lscr.io/linuxserver/sonarr:latest
+ container_name: sonarr
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Etc/UTC
+ volumes:
+ - /srv/sonarr:/config
+ - nfs_tv_data:/tv
+ # - /path/to/downloadclient-downloads:/downloads #optional
+ ports:
+ - 8989:8989
+ restart: unless-stopped
+
+
+volumes:
+ nfs_tv_data:
+ external: true
+
+networks:
+ traefik:
+ external: true
\ No newline at end of file
diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml
index 78be7cc..30e64a5 100644
--- a/traefik/docker-compose.yml
+++ b/traefik/docker-compose.yml
@@ -3,28 +3,31 @@ version: "3"
services:
traefik:
- image: "traefik:v2.3"
+ # image: "traefik:v2.4"
+ image: "traefik:v3.1"
container_name: "traefik"
hostname: "traefik"
+ networks:
+ - traefik
env_file:
- .env
ports:
- "80:80"
- "443:443"
- - "8080:8080"
+ # - "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./traefik.yml:/traefik.yml:ro"
- /var/log/traefik/:/opt/traefik/logs
- - /etc/letsencrypt/:/etc/letsencrypt/
- command:
- - --api.insecure=false
+ - /srv/traefik/letsencrypt:/etc/letsencrypt
+ # command:
+ # - --api.insecure=false
# - --api.insecure=true
restart: unless-stopped
labels:
- "traefik.enable=true"
- - "traefik.port=8080"
+ # - "traefik.port=8080"
# - "traefik.http.routers.traefiks.entrypoints=websecure"
# - "traefik.http.routers.traefiks.rule=Host(`monitor.$DOMAIN_NAME`)"
# - "traefik.http.routers.traefiks.tls.certresolver=letsencr"
diff --git a/traefik/traefik.yml b/traefik/traefik.yml
index 20dd3ba..3f4e2d9 100644
--- a/traefik/traefik.yml
+++ b/traefik/traefik.yml
@@ -27,8 +27,7 @@ providers:
certificatesResolvers:
letsencr:
acme:
- storage: 'acme.json'
- # storage: '/letsencrypt/acme.json'
+ storage: '/etc/letsencrypt/acme.json'
email: stokogsten@gmail.com
httpChallenge:
entryPoint: web