Updated docker configs

This commit is contained in:
2026-03-26 18:02:59 -07:00
parent e3508e13c3
commit f7d08333f1
16 changed files with 351 additions and 18 deletions

View File

@@ -27,3 +27,9 @@ services:
retries: 3
start_period: 20s
restart: unless-stopped
networks:
- network
networks:
network:
name: proxy
external: true

1
caddy/.env Normal file
View File

@@ -0,0 +1 @@
CLOUDFLARE_API_TOKEN=cfut_izUGIHU9xj7cM7rR0QWSD6QNuo4SOp3ZnUlSuC1xf9f35b0c

29
caddy/compose.yml Normal file
View File

@@ -0,0 +1,29 @@
services:
caddy:
build: ../../caddy-dns-cloudflare
container_name: caddy
restart: unless-stopped
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- CLOUDFLARE_API_TOKEN=cfat_yPhy6H6v3Yr83YdNuJQeS4lgfxzd7X2U1OpMX4gp07cf50fe
ports:
- "80:80"
- "443:443"
- "443:443/udp"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./conf:/etc/caddy
- /mnt/storage/apps/caddy/data:/data
- /mnt/storage/apps/caddy/config:/config
networks:
- proxy
networks:
proxy:
name: proxy
external: true

44
caddy/conf/Caddyfile Executable file
View File

@@ -0,0 +1,44 @@
{
email james@wampler.us
}
*.wampler.us {
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.1.1.1
}
@sonarr host tv.wampler.us
handle @sonarr {
encode gzip
reverse_proxy sonarr:8989
}
@radarr host movies.wampler.us
handle @radarr {
encode gzip
reverse_proxy radarr:7878
}
@vaultwarden host vault.wampler.us
handle @vaultwarden {
encode gzip
reverse_proxy vaultwarden:80
}
@gitea host git.wampler.us
handle @gitea {
encode gzip
reverse_proxy gitea:3000
}
@qbittorrent host seed.wampler.us
handle @qbittorrent {
encode gzip
reverse_proxy host.docker.internal:8112
}
}
localhost {
respond "Hello, world!"
}

22
calibre-web/compose.yml Normal file
View File

@@ -0,0 +1,22 @@
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
volumes:
- /mnt/storage/apps/calibre-web/data:/config
- /mnt/storage/media/ebooks:/books
ports:
- 8083:8083
restart: unless-stopped
networks:
- network
networks:
network:
name: proxy
external: true

View File

@@ -0,0 +1,34 @@
services:
cloudflare-ddns:
image: favonia/cloudflare-ddns:1
# Prefer "1" or "1.x.y" in production.
#
# - "1" tracks the latest stable release whose major version is 1
# - "1.x.y" pins one specific stable version
# - "latest" moves to each new stable release and may pick up breaking
# changes in a future major release, so it is not recommended in production
# - "edge" tracks the latest unreleased development build
network_mode: host
# Optional. This bypasses network isolation and makes IPv6 easier.
# See "Use IPv6 without sharing the host network".
restart: unless-stopped
# Restart the updater after reboot
user: "1000:1000"
# Run the updater with specific user and group IDs (in that order).
# You can change the two numbers based on your need.
read_only: true
# Make the container filesystem read-only (optional but recommended)
cap_drop: [all]
# Drop all Linux capabilities (optional but recommended)
#security_opt: [no-new-privileges:true]
# Another protection to restrict superuser privileges (optional but recommended)
environment:
- CLOUDFLARE_API_TOKEN=cfat_yPhy6H6v3Yr83YdNuJQeS4lgfxzd7X2U1OpMX4gp07cf50fe
# Your Cloudflare API token
- DOMAINS=wampler.us
# Your domains (separated by commas)
- PROXIED=true
- IP6_PROVIDER=none
# Use Cloudflare's proxy for these domains (optional)
# Existing DNS records in Cloudflare keep their current proxy setting
# Change them once manually if you want to switch them

View File

@@ -1,18 +0,0 @@
services:
flaresolverr:
# DockerHub mirror flaresolverr/flaresolverr:latest
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_FILE=${LOG_FILE:-none}
- LOG_HTML=${LOG_HTML:-false}
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
- TZ=America/Los_Angeles
ports:
- "${PORT:-8191}:8191"
volumes:
- /mnt/storage/apps/flaresolver:/config
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"

20
gitea/compose.yml Normal file
View File

@@ -0,0 +1,20 @@
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
volumes:
- /mnt/storage/apps/gitea/data:/data
ports:
- "3000:3000"
- "2223:22"
networks:
- network
networks:
network:
name: proxy
external: true

6
immich/.env Normal file
View File

@@ -0,0 +1,6 @@
UPLOAD_LOCATION=/mnt/storage/media/photos
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=/mnt/storage/apps/immich/db
TZ=America/Los_Angeles

72
immich/compose.yml Normal file
View File

@@ -0,0 +1,72 @@
name: immich
services:
immich-server:
container_name: immich_server
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:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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://docs.immich.app/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
volumes:
- model-cache:/cache
env_file:
- .env
restart: unless-stopped
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9@sha256:3eeb09785cd61ec8e3be35f8804c8892080f3ca21934d628abc24ee4ed1698f6
healthcheck:
test: redis-cli ping || exit 1
restart: unless-stopped
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: unless-stopped
healthcheck:
disable: false
volumes:
model-cache:

View File

@@ -0,0 +1,32 @@
services:
pia-qbittorrent:
image: j4ym0/pia-qbittorrent
container_name: pia-qbittorrent
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- PORT_FORWARDING=true
- PIA_REGION=ca_vancouver
- PIA_USERNAME=p4945400
- PIA_PASSWORD=NmoPFuTDJt
- WEBUI_PORT=8112
- DNS_SERVERS=1.1.1.1,1.0.0.1
- UMASK=000
volumes:
- /mnt/storage/apps/pia-qbittorrent/config:/config
- /mnt/storage/downloads:/downloads
ports:
- "8112:8112"
restart: unless-stopped
networks:
- pia
- proxy
networks:
pia:
name: pia
proxy:
name: proxy
external: true

View File

@@ -13,3 +13,9 @@ services:
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- network
networks:
network:
name: proxy
external: true

View File

@@ -16,3 +16,9 @@ services:
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- network
networks:
network:
name: proxy
external: true

View File

@@ -15,3 +15,9 @@ services:
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- network
networks:
network:
name: proxy
external: true

47
stash/compose.yml Normal file
View File

@@ -0,0 +1,47 @@
services:
stash:
image: stashapp/stash:latest
container_name: stash
restart: unless-stopped
## the container's port must be the same with the STASH_PORT in the environment section
ports:
- "9999:9999"
## If you intend to use stash's DLNA functionality uncomment the below network mode and comment out the above ports section
# network_mode: host
logging:
driver: "json-file"
options:
max-file: "10"
max-size: "2m"
environment:
- STASH_STASH=/data/
- STASH_GENERATED=/generated/
- STASH_METADATA=/metadata/
- STASH_CACHE=/cache/
## Adjust below to change default port (9999)
- STASH_PORT=9999
volumes:
- /etc/localtime:/etc/localtime:ro
## Adjust below paths (the left part) to your liking.
## E.g. you can change ./config:/root/.stash to ./stash:/root/.stash
## The left part is the path on your host, the right part is the path in the stash container.
## Keep configs, scrapers, and plugins here.
- /mnt/storage/apps/stash/.stash:/root/.stash
## Point this at your collection.
## The left side is where your collection is on your host, the right side is where it will be in stash.
- /mnt/storage/media/Private:/data
## This is where your stash's metadata lives
- /mnt/storage/apps/stash/metadata:/metadata
## Any other cache content.
- /mnt/storage/apps/stash/cache:/cache
## Where to store binary blob data (scene covers, images)
- /mnt/storage/apps/stash/blobs:/blobs
## Where to store generated content (screenshots,previews,transcodes,sprites)
- /mnt/storage/apps/stash/generated:/generated
networks:
- network
networks:
network:
name: proxy
external: true

20
vaultwarden/compose.yml Normal file
View File

@@ -0,0 +1,20 @@
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- DOMAIN=https://vault.wampler.us
restart: unless-stopped
volumes:
- /mnt/storage/apps/vaultwarden/data/:/data/
ports:
- 4444:80
networks:
- network
networks:
network:
name: proxy
external: true