Merge branch 'main' of https://gitlab.com/null4bl3/home_server
This commit is contained in:
+11
-10
@@ -10,24 +10,25 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
# - /path/to/bazarr/config:/config
|
# - /path/to/bazarr/config:/config
|
||||||
# - /path/to/movies:/movies #optional
|
# - /path/to/movies:/movies #optional
|
||||||
# - /path/to/tv:/tv #optional
|
# - nfs_data/film:/movies #optional
|
||||||
|
- nfs_tv_data:/tv #optional
|
||||||
- '/srv/bazarr:/config'
|
- '/srv/bazarr:/config'
|
||||||
- "nfs_data:/shares"
|
# - "nfs_data:/shares"
|
||||||
ports:
|
ports:
|
||||||
- 6767:6767
|
- 6767:6767
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
labels:
|
# labels:
|
||||||
- "traefik.enable=true"
|
# - "traefik.enable=true"
|
||||||
- "traefik.http.routers.bazarr.tls=true"
|
# - "traefik.http.routers.bazarr.tls=true"
|
||||||
- "traefik.http.routers.bazarr.entrypoints=websecure"
|
# - "traefik.http.routers.bazarr.entrypoints=websecure"
|
||||||
- "traefik.http.routers.bazarr.rule=Host(`bazarr.$DOMAIN_NAME`)"
|
# - "traefik.http.routers.bazarr.rule=Host(`bazarr.$DOMAIN_NAME`)"
|
||||||
- "traefik.http.routers.bazarr.tls.certresolver=letsencr"
|
# - "traefik.http.routers.bazarr.tls.certresolver=letsencr"
|
||||||
- "traefik.http.services.bazarr.loadbalancer.server.port=6767"
|
# - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
nfs_data:
|
nfs_tv_data:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -2,6 +2,9 @@ version: "3"
|
|||||||
services:
|
services:
|
||||||
ghost:
|
ghost:
|
||||||
image: ghost:latest
|
image: ghost:latest
|
||||||
|
# build:
|
||||||
|
# context: ./nginx
|
||||||
|
# dockerfile: Dockerfile
|
||||||
volumes:
|
volumes:
|
||||||
- /srv/ghost:/var/lib/ghost/content
|
- /srv/ghost:/var/lib/ghost/content
|
||||||
environment:
|
environment:
|
||||||
@@ -13,9 +16,11 @@ services:
|
|||||||
# database__connection__user: root
|
# database__connection__user: root
|
||||||
# database__connection__password: RJbhYNaCEB3fu8cbtkteetxTR5LtZjnPsqATGgPZ
|
# database__connection__password: RJbhYNaCEB3fu8cbtkteetxTR5LtZjnPsqATGgPZ
|
||||||
# database__connection__database: ghost
|
# database__connection__database: ghost
|
||||||
|
volumes:
|
||||||
|
- /home/ghost/content:/var/lib/ghost/content/data
|
||||||
networks:
|
networks:
|
||||||
- traefik
|
- traefik
|
||||||
- default
|
# - default
|
||||||
# depends_on:
|
# depends_on:
|
||||||
# - ghost_db
|
# - ghost_db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -26,6 +31,7 @@ services:
|
|||||||
- "traefik.http.routers.ghost.entrypoints=websecure"
|
- "traefik.http.routers.ghost.entrypoints=websecure"
|
||||||
- "traefik.http.routers.ghost.rule=Host(`read.$DOMAIN_NAME`)"
|
- "traefik.http.routers.ghost.rule=Host(`read.$DOMAIN_NAME`)"
|
||||||
- "traefik.http.routers.ghost.tls.certresolver=letsencr"
|
- "traefik.http.routers.ghost.tls.certresolver=letsencr"
|
||||||
|
- "traefik.http.services.ghost.loadbalancer.server.port=2368"
|
||||||
|
|
||||||
# ghost_db:
|
# ghost_db:
|
||||||
# image: mysql:8
|
# image: mysql:8
|
||||||
|
|||||||
+65
-14
@@ -1,15 +1,66 @@
|
|||||||
server {
|
# server {
|
||||||
listen 80;
|
# listen 80;
|
||||||
listen [::]:80;
|
# listen [::]:80;
|
||||||
server_name read.knast.cc;
|
# server_name read.knast.cc;
|
||||||
}
|
# }
|
||||||
|
|
||||||
server {
|
# server {
|
||||||
server_name read.knast.cc;
|
# server_name read.knast.cc;
|
||||||
location / {
|
# location / {
|
||||||
proxy_set_header Host $host;
|
# proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
# proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
# proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_pass http://ghost:2368;
|
# 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;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# }
|
||||||
@@ -54,6 +54,19 @@ services:
|
|||||||
options:
|
options:
|
||||||
max-size: "1m"
|
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:
|
networks:
|
||||||
traefik:
|
traefik:
|
||||||
external: true
|
external: true
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.gitlab.entrypoints=websecure"
|
- "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.routers.gitlab.tls.certresolver=letsencr"
|
||||||
- "traefik.http.services.gitlab.loadbalancer.server.port=80"
|
- "traefik.http.services.gitlab.loadbalancer.server.port=80"
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
+117
-93
@@ -1,107 +1,131 @@
|
|||||||
###################################################################################
|
|
||||||
# Database
|
|
||||||
###################################################################################
|
|
||||||
|
|
||||||
# NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
|
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||||
# 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
|
# The location where your uploaded files are stored
|
||||||
DB_USERNAME=postgres
|
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
|
DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333
|
||||||
|
|
||||||
|
# The values below this line do not need to be changed
|
||||||
|
###################################################################################
|
||||||
|
DB_USERNAME=postgres
|
||||||
DB_DATABASE_NAME=immich
|
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
|
# # Database
|
||||||
###################################################################################
|
# ###################################################################################
|
||||||
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
|
|
||||||
|
|
||||||
###################################################################################
|
# # NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
|
||||||
# Reverse Geocoding
|
# # 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
|
||||||
# Reverse geocoding is done locally which has a small impact on memory usage
|
# DB_USERNAME=postgres
|
||||||
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
|
# DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333
|
||||||
# This ranges from 0-3 with 3 being the most precise
|
# DB_DATABASE_NAME=immich
|
||||||
# 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
|
# # Optional Database settings:
|
||||||
# REVERSE_GEOCODING_PRECISION=3
|
# # DB_PORT=5432
|
||||||
|
|
||||||
####################################################################################
|
# ###################################################################################
|
||||||
# WEB - Optional
|
# # Redis
|
||||||
#
|
# ###################################################################################
|
||||||
# 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.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
PUBLIC_LOGIN_PAGE_MESSAGE=Look
|
# REDIS_HOSTNAME=immich_redis
|
||||||
|
|
||||||
####################################################################################
|
# # REDIS_URL will be used to pass custom options to ioredis.
|
||||||
# Alternative Service Addresses - Optional
|
# # 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"}
|
||||||
# This is an advanced feature for users who may be running their immich services on different hosts.
|
# # REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=
|
||||||
# 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
|
# # Optional Redis settings:
|
||||||
IMMICH_SERVER_URL=http://immich-server:3001
|
|
||||||
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
|
|
||||||
|
|
||||||
####################################################################################
|
# # Note: these parameters are not automatically passed to the Redis Container
|
||||||
# Alternative API's External Address - Optional
|
# # 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
|
||||||
# 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
|
# # 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.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
|
||||||
|
# ####################################################################################
|
||||||
|
|
||||||
|
# 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
|
||||||
+167
-18
@@ -1,5 +1,88 @@
|
|||||||
version: "3.8"
|
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:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
networks:
|
networks:
|
||||||
@@ -14,7 +97,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
- database
|
- database
|
||||||
- typesense
|
# - typesense
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
immich-microservices:
|
immich-microservices:
|
||||||
@@ -30,7 +113,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
- database
|
- database
|
||||||
- typesense
|
# - typesense
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
@@ -61,19 +144,19 @@ services:
|
|||||||
- "traefik.http.routers.imm.tls.certresolver=letsencr"
|
- "traefik.http.routers.imm.tls.certresolver=letsencr"
|
||||||
# - "traefik.http.services.imm.loadbalancer.server.port=32400"
|
# - "traefik.http.services.imm.loadbalancer.server.port=32400"
|
||||||
|
|
||||||
typesense:
|
# typesense:
|
||||||
networks:
|
# networks:
|
||||||
- traefik
|
# - traefik
|
||||||
container_name: immich_typesense
|
# container_name: immich_typesense
|
||||||
image: typesense/typesense:0.24.0
|
# image: typesense/typesense:0.24.0
|
||||||
environment:
|
# environment:
|
||||||
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
|
# - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
|
||||||
- TYPESENSE_DATA_DIR=/data
|
# - TYPESENSE_DATA_DIR=/data
|
||||||
logging:
|
# logging:
|
||||||
driver: none
|
# driver: none
|
||||||
volumes:
|
# volumes:
|
||||||
- /srv/immich/tsdata:/data
|
# - /srv/immich/tsdata:/data
|
||||||
restart: always
|
# restart: always
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
@@ -115,10 +198,76 @@ services:
|
|||||||
- immich-server
|
- immich-server
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
|
|
||||||
|
# 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:
|
# volumes:
|
||||||
# pgdata:
|
# - /srv/immich/config:/config
|
||||||
# model-cache:
|
# - /srv/immich/uploads:/photos
|
||||||
# tsdata:
|
# # - 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:
|
networks:
|
||||||
traefik:
|
traefik:
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ services:
|
|||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- "traefik.http.routers.plex.entrypoints=websecure"
|
- "traefik.http.routers.plex.entrypoints=websecure"
|
||||||
- "traefik.http.routers.plex.rule=Host(`plex.$DOMAIN_NAME`)"
|
- "traefik.http.routers.plex.rule=Host(`plex.$DOMAIN_NAME`)"
|
||||||
|
- "traefik.http.routers.plex.tls=true"
|
||||||
- "traefik.http.routers.plex.tls.certresolver=letsencr"
|
- "traefik.http.routers.plex.tls.certresolver=letsencr"
|
||||||
- "traefik.http.services.plex.loadbalancer.server.port=32400"
|
- "traefik.http.services.plex.loadbalancer.server.port=32400"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
DOMAIN_NAME=knast.cc
|
||||||
|
DEFAULT_NETWORK=traefik
|
||||||
@@ -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
|
||||||
@@ -3,28 +3,31 @@ version: "3"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
traefik:
|
traefik:
|
||||||
image: "traefik:v2.3"
|
# image: "traefik:v2.4"
|
||||||
|
image: "traefik:v3.1"
|
||||||
container_name: "traefik"
|
container_name: "traefik"
|
||||||
hostname: "traefik"
|
hostname: "traefik"
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
- "8080:8080"
|
# - "8080:8080"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
- "./traefik.yml:/traefik.yml:ro"
|
- "./traefik.yml:/traefik.yml:ro"
|
||||||
- /var/log/traefik/:/opt/traefik/logs
|
- /var/log/traefik/:/opt/traefik/logs
|
||||||
- /etc/letsencrypt/:/etc/letsencrypt/
|
- /srv/traefik/letsencrypt:/etc/letsencrypt
|
||||||
command:
|
# command:
|
||||||
- --api.insecure=false
|
# - --api.insecure=false
|
||||||
# - --api.insecure=true
|
# - --api.insecure=true
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.port=8080"
|
# - "traefik.port=8080"
|
||||||
# - "traefik.http.routers.traefiks.entrypoints=websecure"
|
# - "traefik.http.routers.traefiks.entrypoints=websecure"
|
||||||
# - "traefik.http.routers.traefiks.rule=Host(`monitor.$DOMAIN_NAME`)"
|
# - "traefik.http.routers.traefiks.rule=Host(`monitor.$DOMAIN_NAME`)"
|
||||||
# - "traefik.http.routers.traefiks.tls.certresolver=letsencr"
|
# - "traefik.http.routers.traefiks.tls.certresolver=letsencr"
|
||||||
|
|||||||
+1
-2
@@ -27,8 +27,7 @@ providers:
|
|||||||
certificatesResolvers:
|
certificatesResolvers:
|
||||||
letsencr:
|
letsencr:
|
||||||
acme:
|
acme:
|
||||||
storage: 'acme.json'
|
storage: '/etc/letsencrypt/acme.json'
|
||||||
# storage: '/letsencrypt/acme.json'
|
|
||||||
email: stokogsten@gmail.com
|
email: stokogsten@gmail.com
|
||||||
httpChallenge:
|
httpChallenge:
|
||||||
entryPoint: web
|
entryPoint: web
|
||||||
|
|||||||
Reference in New Issue
Block a user