diff --git a/immich/.env b/immich/.env index e9e1448..c6c2613 100644 --- a/immich/.env +++ b/immich/.env @@ -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 \ No newline at end of file +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 54548aa..6034bc4 100644 --- a/immich/docker-compose.yml +++ b/immich/docker-compose.yml @@ -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 diff --git a/pangolin/config/config b/pangolin/config/config new file mode 100644 index 0000000..bd87068 --- /dev/null +++ b/pangolin/config/config @@ -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 \ No newline at end of file diff --git a/pangolin/config/config.yml b/pangolin/config/config.yml new file mode 100644 index 0000000..d7b70a6 --- /dev/null +++ b/pangolin/config/config.yml @@ -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 diff --git a/pangolin/config/db/backups/db_2025-2-6_7-48-34.sqlite b/pangolin/config/db/backups/db_2025-2-6_7-48-34.sqlite new file mode 100644 index 0000000..e69de29 diff --git a/pangolin/config/db/backups/db_2025-2-6_7-48-52.sqlite b/pangolin/config/db/backups/db_2025-2-6_7-48-52.sqlite new file mode 100644 index 0000000..beba120 Binary files /dev/null and b/pangolin/config/db/backups/db_2025-2-6_7-48-52.sqlite differ diff --git a/pangolin/config/db/backups/db_2025-2-6_7-49-30.sqlite b/pangolin/config/db/backups/db_2025-2-6_7-49-30.sqlite new file mode 100644 index 0000000..5757e5c Binary files /dev/null and b/pangolin/config/db/backups/db_2025-2-6_7-49-30.sqlite differ diff --git a/pangolin/config/db/db.sqlite b/pangolin/config/db/db.sqlite new file mode 100644 index 0000000..97a2d72 Binary files /dev/null and b/pangolin/config/db/db.sqlite differ diff --git a/pangolin/config/key b/pangolin/config/key new file mode 100644 index 0000000..b5ff9d5 --- /dev/null +++ b/pangolin/config/key @@ -0,0 +1 @@ ++AFwMsyZ1Wg/UYXZKkkV0K771bwl6950dcFAL23Js0s= \ No newline at end of file diff --git a/pangolin/docker-compose.yml b/pangolin/docker-compose.yml new file mode 100644 index 0000000..59d4240 --- /dev/null +++ b/pangolin/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/pangolin/pangolin b/pangolin/pangolin new file mode 160000 index 0000000..eb73da8 --- /dev/null +++ b/pangolin/pangolin @@ -0,0 +1 @@ +Subproject commit eb73da8aa08d7d14ef4ab40cdd6b0a34880d390d