immich
This commit is contained in:
+1
-1
@@ -128,4 +128,4 @@ DB_DATABASE_NAME=immich
|
||||
# # Examples: http://localhost:3001, http://immich-api.example.com, etc
|
||||
# ####################################################################################
|
||||
|
||||
# IMMICH_API_URL_EXTERNAL=https://imm.knast.cc
|
||||
IMMICH_API_URL_EXTERNAL=https://imm.knast.cc
|
||||
+13
-13
@@ -30,7 +30,7 @@ version: "3.8"
|
||||
# depends_on:
|
||||
# - redis
|
||||
# - database
|
||||
# restart: always
|
||||
# restart: unless-stopped
|
||||
|
||||
# immich-machine-learning:
|
||||
# networks:
|
||||
@@ -46,7 +46,7 @@ version: "3.8"
|
||||
# - /srv/immich/model-cache:/cache
|
||||
# env_file:
|
||||
# - .env
|
||||
# restart: always
|
||||
# restart: unless-stopped
|
||||
|
||||
# redis:
|
||||
# networks:
|
||||
@@ -57,7 +57,7 @@ version: "3.8"
|
||||
# # image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
|
||||
# # healthcheck:
|
||||
# # test: redis-cli ping || exit 1
|
||||
# restart: always
|
||||
# restart: unless-stopped
|
||||
|
||||
# database:
|
||||
# networks:
|
||||
@@ -77,7 +77,7 @@ version: "3.8"
|
||||
# # 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
|
||||
# restart: unless-stopped
|
||||
|
||||
# volumes:
|
||||
# model-cache:
|
||||
@@ -98,7 +98,7 @@ services:
|
||||
- redis
|
||||
- database
|
||||
# - typesense
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
immich-microservices:
|
||||
networks:
|
||||
@@ -114,7 +114,7 @@ services:
|
||||
- redis
|
||||
- database
|
||||
# - typesense
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
immich-machine-learning:
|
||||
networks:
|
||||
@@ -126,7 +126,7 @@ services:
|
||||
- /srv/immich/model-cache:/cache
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
immich-web:
|
||||
networks:
|
||||
@@ -136,11 +136,11 @@ services:
|
||||
entrypoint: ["/bin/sh", "./entrypoint.sh"]
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- "traefik.http.routers.imm.entrypoints=websecure"
|
||||
- "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)"
|
||||
- "traefik.http.routers.imm.rule=Host(`imm.knast.cc`)"
|
||||
- "traefik.http.routers.imm.tls.certresolver=letsencr"
|
||||
# - "traefik.http.services.imm.loadbalancer.server.port=32400"
|
||||
|
||||
@@ -156,14 +156,14 @@ services:
|
||||
# driver: none
|
||||
# volumes:
|
||||
# - /srv/immich/tsdata:/data
|
||||
# restart: always
|
||||
# restart: unless-stopped
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: redis:6.2
|
||||
networks:
|
||||
- traefik
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
database:
|
||||
networks:
|
||||
@@ -179,7 +179,7 @@ services:
|
||||
PG_DATA: /var/lib/postgresql/data
|
||||
volumes:
|
||||
- /srv/immich/pgdata:/var/lib/postgresql/data
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
immich-proxy:
|
||||
networks:
|
||||
@@ -196,7 +196,7 @@ services:
|
||||
driver: none
|
||||
depends_on:
|
||||
- immich-server
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
# OFFICIAL
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
# To see all available options, please visit the docs:
|
||||
# https://docs.fossorial.io/Pangolin/Configuration/config
|
||||
|
||||
app:
|
||||
dashboard_url: "http://localhost:3002"
|
||||
log_level: "info"
|
||||
save_logs: false
|
||||
|
||||
domains:
|
||||
domain1:
|
||||
base_domain: "example.com"
|
||||
cert_resolver: "letsencrypt"
|
||||
|
||||
server:
|
||||
external_port: 3000
|
||||
internal_port: 3001
|
||||
next_port: 3002
|
||||
internal_hostname: "pangolin"
|
||||
session_cookie_name: "p_session_token"
|
||||
resource_access_token_param: "p_token"
|
||||
resource_session_request_param: "p_session_request"
|
||||
|
||||
traefik:
|
||||
http_entrypoint: "web"
|
||||
https_entrypoint: "websecure"
|
||||
|
||||
gerbil:
|
||||
start_port: 51820
|
||||
base_endpoint: "localhost"
|
||||
block_size: 24
|
||||
site_block_size: 30
|
||||
subnet_group: 100.89.137.0/20
|
||||
use_subdomain: true
|
||||
|
||||
rate_limits:
|
||||
global:
|
||||
window_minutes: 1
|
||||
max_requests: 100
|
||||
|
||||
users:
|
||||
server_admin:
|
||||
email: "admin@example.com"
|
||||
password: "Password123!"
|
||||
|
||||
flags:
|
||||
require_email_verification: false
|
||||
disable_signup_without_invite: true
|
||||
disable_user_create_org: true
|
||||
allow_raw_resources: true
|
||||
allow_base_domain_resources: true
|
||||
@@ -0,0 +1,50 @@
|
||||
# To see all available options, please visit the docs:
|
||||
# https://docs.fossorial.io/Pangolin/Configuration/config
|
||||
|
||||
app:
|
||||
dashboard_url: "http://localhost:3002"
|
||||
log_level: "info"
|
||||
save_logs: false
|
||||
|
||||
domains:
|
||||
domain1:
|
||||
base_domain: "example.com"
|
||||
cert_resolver: "letsencrypt"
|
||||
|
||||
server:
|
||||
external_port: 3000
|
||||
internal_port: 3001
|
||||
next_port: 3002
|
||||
internal_hostname: "pangolin"
|
||||
session_cookie_name: "p_session_token"
|
||||
resource_access_token_param: "p_token"
|
||||
resource_session_request_param: "p_session_request"
|
||||
|
||||
traefik:
|
||||
http_entrypoint: "web"
|
||||
https_entrypoint: "websecure"
|
||||
|
||||
gerbil:
|
||||
start_port: 51820
|
||||
base_endpoint: "localhost"
|
||||
block_size: 24
|
||||
site_block_size: 30
|
||||
subnet_group: 100.89.137.0/20
|
||||
use_subdomain: true
|
||||
|
||||
rate_limits:
|
||||
global:
|
||||
window_minutes: 1
|
||||
max_requests: 100
|
||||
|
||||
users:
|
||||
server_admin:
|
||||
email: "admin@example.com"
|
||||
password: "Password123!"
|
||||
|
||||
flags:
|
||||
require_email_verification: false
|
||||
disable_signup_without_invite: true
|
||||
disable_user_create_org: true
|
||||
allow_raw_resources: true
|
||||
allow_base_domain_resources: true
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
+AFwMsyZ1Wg/UYXZKkkV0K771bwl6950dcFAL23Js0s=
|
||||
@@ -0,0 +1,54 @@
|
||||
name: pangolin
|
||||
services:
|
||||
pangolin:
|
||||
image: fosrl/pangolin:latest
|
||||
container_name: pangolin
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./config:/app/config
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
|
||||
interval: "3s"
|
||||
timeout: "3s"
|
||||
retries: 5
|
||||
|
||||
gerbil:
|
||||
image: fosrl/gerbil:latest
|
||||
container_name: gerbil
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
pangolin:
|
||||
condition: service_healthy
|
||||
command:
|
||||
- --reachableAt=http://gerbil:3003
|
||||
- --generateAndSaveKeyTo=/var/config/key
|
||||
- --remoteConfig=http://pangolin:3001/api/v1/gerbil/get-config
|
||||
- --reportBandwidthTo=http://pangolin:3001/api/v1/gerbil/receive-bandwidth
|
||||
volumes:
|
||||
- ./config:/var/config
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
- 443:443 # Port for traefik because of the network_mode
|
||||
- 80:80 # Port for traefik because of the network_mode
|
||||
|
||||
traefik:
|
||||
image: traefik:v3.3.3
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
network_mode: service:gerbil # Ports appear on the gerbil service
|
||||
depends_on:
|
||||
pangolin:
|
||||
condition: service_healthy
|
||||
command:
|
||||
- --configFile=/etc/traefik/traefik_config.yml
|
||||
volumes:
|
||||
- ./config/traefik:/etc/traefik:ro # Volume to store the Traefik configuration
|
||||
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: bridge
|
||||
name: pangolin
|
||||
Submodule
+1
Submodule pangolin/pangolin added at eb73da8aa0
Reference in New Issue
Block a user