Compare commits
33 Commits
b243abca86
...
caddy-dock
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63edf652b7 | ||
|
|
a2dff6fdd8 | ||
|
|
a671b15a96 | ||
|
|
936242e24d | ||
|
|
817723d0bf | ||
|
|
f016deb3a9 | ||
|
|
ce8e342560 | ||
|
|
ad9b4fef97 | ||
|
|
28c734c1d2 | ||
|
|
342559c8eb | ||
|
|
77803655c0 | ||
|
|
eb0f41261f | ||
|
|
005c60abc3 | ||
|
|
7002b866f9 | ||
|
|
9c767b6e0c | ||
|
|
b66436fa95 | ||
|
|
e36c6a7f1c | ||
|
|
43bacbcb48 | ||
|
|
3d62803e05 | ||
|
|
99193bcaa7 | ||
|
|
579adad744 | ||
|
|
a67bdd8503 | ||
|
|
994b2d4c01 | ||
|
|
5ce753bd71 | ||
|
|
e21a330b33 | ||
|
|
914a7487b4 | ||
|
|
3a3d3ff9c4 | ||
|
|
1ddee07e72 | ||
|
|
c3f08d5191 | ||
|
|
116a7716ac | ||
|
|
eeeb05be82 | ||
|
|
f170058551 | ||
|
|
f3920b60ab |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -1,3 +1,9 @@
|
||||
data/
|
||||
secrets/
|
||||
tmp/
|
||||
tmp/
|
||||
stashapp/**/config.yml.*
|
||||
stashapp/**/icon.png
|
||||
requestrr/**/notifications.json
|
||||
logs/
|
||||
authentik/.env
|
||||
caddy/.env
|
||||
32
actual-server/docker-compose.yml
Normal file
32
actual-server/docker-compose.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
name: actual-server
|
||||
services:
|
||||
app:
|
||||
image: docker.io/actualbudget/actual-server:latest
|
||||
networks:
|
||||
- proxy-net
|
||||
#ports:
|
||||
# This line makes Actual available at port 5006 of the device you run the server on,
|
||||
# i.e. http://localhost:5006. You can change the first number to change the port, if you want.
|
||||
# - '5006:5006'
|
||||
expose:
|
||||
- "5006"
|
||||
#environment:
|
||||
# - ACTUAL_LOGIN_METHOD=header
|
||||
# Uncomment any of the lines below to set configuration options.
|
||||
# - ACTUAL_HTTPS_KEY=/data/selfhost.key
|
||||
# - ACTUAL_HTTPS_CERT=/data/selfhost.crt
|
||||
# - ACTUAL_PORT=5006
|
||||
# - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
|
||||
# - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
|
||||
# - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
|
||||
# See all options and more details at https://actualbudget.github.io/docs/Installing/Configuration
|
||||
# !! If you are not using any of these options, remove the 'environment:' tag entirely.
|
||||
volumes:
|
||||
# Change './actual-data' below to the path to the folder you want Actual to store its data in on your server.
|
||||
# '/data' is the path Actual will look for its files in by default, so leave that as-is.
|
||||
- ./data:/data
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
18
authelia/config/authelia/configuration.yml
Normal file
18
authelia/config/authelia/configuration.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
server:
|
||||
endpoints:
|
||||
authz:
|
||||
forward-auth:
|
||||
implementation: 'ForwardAuth'
|
||||
|
||||
# Security https://www.authelia.com/configuration/security/access-control/
|
||||
access_control:
|
||||
rules:
|
||||
- domain: '*.tremendousturtle.tools'
|
||||
policy: two_factor
|
||||
|
||||
# Session https://www.authelia.com/configuration/session/introduction/
|
||||
# Set also AUTHELIA_SESSION_SECRET_FILE
|
||||
session:
|
||||
cookies:
|
||||
- domain: 'tremendousturtle.tools'
|
||||
authelia_url: 'https://auth.tremendousturtle.tools'
|
||||
91
authelia/docker-compose.yml
Normal file
91
authelia/docker-compose.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
name: authelia
|
||||
services:
|
||||
app:
|
||||
image: authelia/authelia:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- database
|
||||
- redis
|
||||
volumes:
|
||||
- ./config/authelia:/config
|
||||
networks:
|
||||
- proxy-net
|
||||
- default
|
||||
ports:
|
||||
- "9091:9091"
|
||||
environment:
|
||||
AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE: /run/secrets/jwt_secret
|
||||
AUTHELIA_SESSION_SECRET_FILE: /run/secrets/session_secret
|
||||
AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE: /run/secrets/smtp_pass
|
||||
AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE: /run/secrets/storage_encryption_key
|
||||
AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE: /run/secrets/postgres_pass
|
||||
AUTHELIA_SESSION_REDIS_PASSWORD_FILE: /run/secrets/redis_pass
|
||||
AUTHELIA_THEME: auto
|
||||
AUTHELIA_LOG_LEVEL: debug
|
||||
AUTHELIA_AUTHENTICATION_BACKEND_FILE_PATH: /run/secrets/users_database
|
||||
AUTHELIA_TOTP_ISSUER: tremendousturtle.tools
|
||||
AUTHELIA_ACCESS_CONTROL_DEFAULT_POLICY: deny
|
||||
AUTHELIA_SESSION_REDIS_HOST: authelia-redis-1
|
||||
AUTHELIA_SESSION_REDIS_PORT: 6379
|
||||
AUTHELIA_STORAGE_POSTGRES_ADDRESS: tcp://authelia-database-1:5432
|
||||
AUTHELIA_STORAGE_POSTGRES_DATABASE: authelia
|
||||
AUTHELIA_STORAGE_POSTGRES_USERNAME: authelia
|
||||
AUTHELIA_NOTIFIER_SMTP_ADDRESS: submissions://smtp.mailgun.org:465
|
||||
AUTHELIA_NOTIFIER_SMTP_USERNAME: auth@mail.tremendousturtle.tools
|
||||
AUTHELIA_NOTIFIER_SMTP_SENDER: Authelia <auth@tremendousturtle.tools>
|
||||
secrets:
|
||||
- jwt_secret
|
||||
- session_secret
|
||||
- smtp_pass
|
||||
- storage_encryption_key
|
||||
- postgres_pass
|
||||
- redis_pass
|
||||
- users_database
|
||||
labels:
|
||||
- homepage.group=Utility
|
||||
- homepage.name=Authelia
|
||||
- homepage.icon=authelia
|
||||
- homepage.href=https://auth.tremendousturtle.tools/
|
||||
- homepage.description=Authentication
|
||||
|
||||
database:
|
||||
image: postgres:15
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data/postgres:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: authelia
|
||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_pass
|
||||
secrets:
|
||||
- postgres_pass
|
||||
|
||||
redis:
|
||||
image: redis:7
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
REDIS_PASSWORD_FILE: /run/secrets/redis_pass
|
||||
command: sh -c "redis-server --save 60 1 --loglevel warning --requirepass $(cat $$REDIS_PASSWORD_FILE)"
|
||||
volumes:
|
||||
- ./data/redis:/data
|
||||
secrets:
|
||||
- redis_pass
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
|
||||
secrets:
|
||||
postgres_pass:
|
||||
file: ./secrets/POSTGRES_PASS
|
||||
jwt_secret:
|
||||
file: ./secrets/JWT_SECRET
|
||||
session_secret:
|
||||
file: ./secrets/SESSION_SECRET
|
||||
smtp_pass:
|
||||
file: ./secrets/SMTP_PASSWORD
|
||||
storage_encryption_key:
|
||||
file: ./secrets/STORAGE_ENCRYPTION_KEY
|
||||
redis_pass:
|
||||
file: ./secrets/REDIS_PASSWORD
|
||||
users_database:
|
||||
file: ./secrets/users_database.yml
|
||||
96
authentik/docker-compose.yml
Normal file
96
authentik/docker-compose.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
name: authentik
|
||||
services:
|
||||
db:
|
||||
image: docker.io/library/postgres:16-alpine
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
||||
start_period: 20s
|
||||
interval: 30s
|
||||
retries: 5
|
||||
timeout: 5s
|
||||
volumes:
|
||||
- database:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
||||
POSTGRES_USER: ${PG_USER:-authentik}
|
||||
POSTGRES_DB: ${PG_DB:-authentik}
|
||||
env_file:
|
||||
- .env
|
||||
redis:
|
||||
image: docker.io/library/redis:alpine
|
||||
command: --save 60 1 --loglevel warning
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
|
||||
start_period: 20s
|
||||
interval: 30s
|
||||
retries: 5
|
||||
timeout: 3s
|
||||
volumes:
|
||||
- redis:/data
|
||||
app:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.12.2}
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
environment:
|
||||
AUTHENTIK_REDIS__HOST: authentik-redis-1
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-db-1
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
networks:
|
||||
- proxy-net
|
||||
- default
|
||||
volumes:
|
||||
- ./data/media:/media
|
||||
- ./config/custom-templates:/templates
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "${COMPOSE_PORT_HTTP:-9000}:9000"
|
||||
- "${COMPOSE_PORT_HTTPS:-9443}:9443"
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
worker:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.12.2}
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
environment:
|
||||
AUTHENTIK_REDIS__HOST: authentik-redis-1
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-db-1
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
# `user: root` and the docker socket volume are optional.
|
||||
# See more for the docker socket integration here:
|
||||
# https://goauthentik.io/docs/outposts/integrations/docker
|
||||
# Removing `user: root` also prevents the worker from fixing the permissions
|
||||
# on the mounted folders, so when removing this make sure the folders have the correct UID/GID
|
||||
# (1000:1000 by default)
|
||||
user: root
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data/media:/media
|
||||
- ./data/certs:/certs
|
||||
- ./config/custom-templates:/templates
|
||||
env_file:
|
||||
- .env
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
volumes:
|
||||
database:
|
||||
driver: local
|
||||
redis:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
116
caddy/Caddyfile
Normal file
116
caddy/Caddyfile
Normal file
@@ -0,0 +1,116 @@
|
||||
# Global Config
|
||||
{
|
||||
email certs@tremendousturtle.tools
|
||||
default_sni tremendousturtle.tools
|
||||
acme_ca https://acme-v02.api.letsencrypt.org/directory
|
||||
admin :2019
|
||||
# debug
|
||||
# acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
|
||||
servers {
|
||||
trusted_proxies cloudflare {
|
||||
interval 12h
|
||||
timeout 15s
|
||||
}
|
||||
client_ip_headers Cf-Connecting-Ip X-Forwarded-For X-Real-IP
|
||||
}
|
||||
}
|
||||
|
||||
# Global Reusable Blocks
|
||||
(tls) {
|
||||
tls {
|
||||
dns cloudflare {
|
||||
zone_token {env.CF_ZONE_TOKEN}
|
||||
api_token {env.CF_API_TOKEN}
|
||||
}
|
||||
resolvers 1.1.1.1 1.0.0.1
|
||||
}
|
||||
}
|
||||
(secure) {
|
||||
forward_auth {args[0]} authelia-app-1:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Name Remote-Email
|
||||
}
|
||||
}
|
||||
(secure-external) {
|
||||
forward_auth {args[0]} https://auth.tremendousturtle.tools {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Name Remote-Email
|
||||
header_up Host {upstream_hostport}
|
||||
}
|
||||
}
|
||||
(ttt-log) {
|
||||
log {
|
||||
output file /logs/{args[0]}.tremendousturtle.tools.log
|
||||
}
|
||||
}
|
||||
(ttt-proxy) {
|
||||
reverse_proxy {args[0]}:{args[1]} {
|
||||
header_up X-Real-IP {http.request.header.CF-Connecting-IP}
|
||||
header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
|
||||
}
|
||||
}
|
||||
(ttt-app) {
|
||||
{args[0]}.tremendousturtle.tools {
|
||||
import ttt-log {args[0]}
|
||||
import tls
|
||||
import secure *
|
||||
import ttt-proxy {args[0]}-app-1 {args[1]}
|
||||
}
|
||||
}
|
||||
(ttt-app-local) {
|
||||
{args[0]}.tremendousturtle.tools {
|
||||
import ttt-log {args[0]}
|
||||
import tls
|
||||
import secure *
|
||||
import ttt-proxy host.docker.internal {args[1]}
|
||||
}
|
||||
}
|
||||
(ttt-app-alt) {
|
||||
{args[0]}.tremendousturtle.tools {
|
||||
import ttt-log {args[0]}
|
||||
import tls
|
||||
import secure *
|
||||
import ttt-proxy {args[1]} {args[2]}
|
||||
}
|
||||
}
|
||||
|
||||
# Web Config
|
||||
tremendousturtle.tools {
|
||||
import tls
|
||||
respond "I'm Alive!"
|
||||
}
|
||||
|
||||
auth.tremendousturtle.tools {
|
||||
import tls
|
||||
reverse_proxy authelia-app-1:9091
|
||||
}
|
||||
|
||||
authentik.tremendousturtle.tools {
|
||||
import tls
|
||||
reverse_proxy authentik-app-1:9000
|
||||
}
|
||||
|
||||
# Define code.tremendousturtle.tools
|
||||
# Locally hosted non-docker apps (proxies to 192.168.1.234 instead of localhost)
|
||||
import ttt-app-local code 8020
|
||||
import ttt-app-local pihole 1080
|
||||
import ttt-app-local sonarr 8989
|
||||
import ttt-app-local radarr 7878
|
||||
import ttt-app-local prowlarr 9696
|
||||
import ttt-app-local cockpit 9090
|
||||
|
||||
# Docker apps with same subdomain as docker compose project name
|
||||
import ttt-app frigate 8971
|
||||
import ttt-app overseerr 5055
|
||||
import ttt-app openobserve 5080
|
||||
import ttt-app gitea 3000
|
||||
import ttt-app homepage 3000
|
||||
import ttt-app requestrr 4545
|
||||
|
||||
# Alternate configuration (different subdomain and docker compose project name)
|
||||
import ttt-app-alt budget actual-server-app-1 5006
|
||||
import ttt-app-alt trilium triliumnext-notes-app-1 8080
|
||||
import ttt-app-alt notes triliumnext-notes-app-1 8080
|
||||
import ttt-app-alt stash stashapp-app-1 9999
|
||||
import ttt-app-alt pihole1 192.168.1.116 80
|
||||
9
caddy/Dockerfile
Normal file
9
caddy/Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM caddy:2.9.1-builder AS builder
|
||||
|
||||
RUN xcaddy build \
|
||||
--with github.com/caddy-dns/cloudflare \
|
||||
--with github.com/WeidiDeng/caddy-cloudflare-ip
|
||||
|
||||
FROM caddy:2.9.1
|
||||
|
||||
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
|
||||
35
caddy/docker-compose.yml
Normal file
35
caddy/docker-compose.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
name: caddy
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
networks:
|
||||
- proxy-net
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp"
|
||||
- "2019:2019"
|
||||
configs:
|
||||
- source: caddyfile
|
||||
target: /etc/caddy/Caddyfile
|
||||
volumes:
|
||||
- ./data/site:/srv
|
||||
- ./data/logs:/logs
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
|
||||
configs:
|
||||
caddyfile:
|
||||
file: ./Caddyfile
|
||||
|
||||
volumes:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
16
cloudflared/docker-compose.yml
Normal file
16
cloudflared/docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
name: cloudflared
|
||||
services:
|
||||
app:
|
||||
image: cloudflare/cloudflared:latest
|
||||
volumes:
|
||||
- ./config:/etc/cloudflared
|
||||
command: tunnel --no-autoupdate run --token eyJhIjoiNjhmNjVkYzZkNDgzODZkMTMwNTk2ODk4ZThjNzVhODMiLCJ0IjoiYmNkMjg3OGYtYTRmYi00OWJmLTk0MGMtMzFkYWE2ZDkyNjIwIiwicyI6Ill6STNNbUUwT0RrdE4yWmhaaTAwWWpZM0xXRTFaRFF0TkdWa09HTmpOVFEwTnpRdyJ9
|
||||
restart: unless-stopped
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
networks:
|
||||
- proxy-net
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
131
frigate/config/config.yaml
Normal file
131
frigate/config/config.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
# yaml-language-server: $schema=http://192.168.1.234:5000/api/config/schema.json
|
||||
auth:
|
||||
enabled: false
|
||||
|
||||
proxy:
|
||||
header_map:
|
||||
user: Remote-User
|
||||
|
||||
tls:
|
||||
enabled: false
|
||||
|
||||
mqtt:
|
||||
enabled: false
|
||||
|
||||
go2rtc:
|
||||
streams:
|
||||
nw_garage:
|
||||
- ffmpeg:http://192.168.1.240/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=frigate&password=RN3cCsRP5HDF4hFy6dis5NTG#video=copy#audio=copy#audio=opus
|
||||
ne_garage:
|
||||
- ffmpeg:http://192.168.1.136/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=frigate&password=6aLJ6lWfm3aTlsgkJrt2m8S8#video=copy#audio=copy#audio=opus
|
||||
doorbell:
|
||||
- ffmpeg:http://192.168.1.60/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=frigate&password=dcp5rWdsQ3L4gVyUC2lLNGlf#video=copy#audio=copy#audio=opus
|
||||
- rtsp://192.168.1.60/Preview_01_sub
|
||||
webrtc:
|
||||
candidates:
|
||||
- 192.168.1.234:8555
|
||||
- stun:8555
|
||||
|
||||
detectors: # <---- add detectors
|
||||
coral1:
|
||||
type: edgetpu
|
||||
device: pci:0
|
||||
coral2:
|
||||
type: edgetpu
|
||||
device: pci:1
|
||||
|
||||
objects:
|
||||
track:
|
||||
- person
|
||||
- car
|
||||
- dog
|
||||
- cat
|
||||
|
||||
cameras:
|
||||
nw_garage:
|
||||
enabled: true
|
||||
ffmpeg:
|
||||
inputs:
|
||||
- path: rtsp://127.0.0.1:8554/nw_garage
|
||||
input_args: preset-rtsp-restream
|
||||
roles:
|
||||
- record
|
||||
- detect
|
||||
hwaccel_args: preset-vaapi
|
||||
detect:
|
||||
enabled: true
|
||||
width: 960
|
||||
height: 720
|
||||
fps: 5
|
||||
record:
|
||||
enabled: true
|
||||
motion:
|
||||
mask:
|
||||
- 0.865,0.955,0.865,0.99,0.895,0.99,0.895,0.955
|
||||
- 0.827,0.955,0.827,0.99,0.858,0.99,0.858,0.955
|
||||
- 0.79,0.955,0.79,0.99,0.821,0.99,0.821,0.955
|
||||
ne_garage:
|
||||
enabled: true
|
||||
ffmpeg:
|
||||
inputs:
|
||||
- path: rtsp://127.0.0.1:8554/ne_garage
|
||||
input_args: preset-rtsp-restream
|
||||
roles:
|
||||
- record
|
||||
- detect
|
||||
hwaccel_args: preset-vaapi
|
||||
detect:
|
||||
enabled: true
|
||||
width: 960
|
||||
height: 720
|
||||
fps: 5
|
||||
record:
|
||||
enabled: true
|
||||
motion:
|
||||
mask:
|
||||
- 0.865,0.955,0.865,0.99,0.895,0.99,0.895,0.955
|
||||
- 0.827,0.955,0.827,0.99,0.858,0.99,0.858,0.955
|
||||
- 0.79,0.955,0.79,0.99,0.821,0.99,0.821,0.955
|
||||
doorbell:
|
||||
enabled: true
|
||||
ffmpeg:
|
||||
inputs:
|
||||
- path: rtsp://127.0.0.1:8554/doorbell
|
||||
input_args: preset-rtsp-restream
|
||||
roles:
|
||||
- record
|
||||
- detect
|
||||
hwaccel_args: preset-vaapi
|
||||
detect:
|
||||
enabled: true
|
||||
width: 960
|
||||
height: 720
|
||||
fps: 5
|
||||
record:
|
||||
enabled: true
|
||||
motion:
|
||||
mask:
|
||||
- 0.79,0.003,0.79,0.035,0.82,0.035,0.82,0.003
|
||||
- 0.828,0.003,0.828,0.035,0.858,0.035,0.858,0.003
|
||||
- 0.866,0.003,0.866,0.035,0.896,0.035,0.896,0.003
|
||||
threshold: 35
|
||||
contour_area: 15
|
||||
improve_contrast: true
|
||||
version: 0.14
|
||||
camera_groups:
|
||||
Birdseye:
|
||||
order: 1
|
||||
icon: LuBird
|
||||
cameras: birdseye
|
||||
|
||||
Front:
|
||||
order: 2
|
||||
icon: LuWarehouse
|
||||
cameras:
|
||||
- doorbell
|
||||
- ne_garage
|
||||
- nw_garage
|
||||
detect:
|
||||
stationary:
|
||||
interval: 50
|
||||
threshold: 40
|
||||
43
frigate/docker-compose.yml
Normal file
43
frigate/docker-compose.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
name: frigate
|
||||
services:
|
||||
app:
|
||||
restart: unless-stopped
|
||||
image: ghcr.io/blakeblackshear/frigate:stable
|
||||
shm_size: "250mb"
|
||||
devices:
|
||||
- /dev/apex_0:/dev/apex_0 # Passes a PCIe Coral
|
||||
- /dev/apex_1:/dev/apex_1 # Passes a PCIe Coral
|
||||
- /dev/dri/renderD128:/dev/dri/renderD128 # GPU hw accel
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./data:/config
|
||||
- ./config/config.yaml:/config/config.yaml
|
||||
- /media/surveillance:/media/frigate
|
||||
- type: tmpfs
|
||||
target: /tmp/cache
|
||||
tmpfs:
|
||||
size: 4000000000
|
||||
networks:
|
||||
- proxy-net
|
||||
ports:
|
||||
- "8554:8554" # RTSP feeds
|
||||
- "8555:8555/tcp" # WebRTC over tcp
|
||||
- "8555:8555/udp" # WebRTC over udp
|
||||
- "5000:5000" # VS Code schema validation allowed
|
||||
expose:
|
||||
- "8971"
|
||||
environment:
|
||||
LIBVA_DRIVER_NAME: "radeonsi" # FRIGATE_RTSP_PASSWORD: "69$nC*6$jADbc!"
|
||||
labels:
|
||||
- homepage.group=Utility
|
||||
- homepage.name=Frigate
|
||||
- homepage.icon=frigate
|
||||
- homepage.href=https://frigate.tremendousturtle.tools/
|
||||
- homepage.description=Camera Surveillance
|
||||
- homepage.widget.type=frigate
|
||||
- homepage.widget.url=http://frigate-app-1:5000
|
||||
- homepage.widget.enableRecentEvents=true
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
2
gitea/.env
Normal file
2
gitea/.env
Normal file
@@ -0,0 +1,2 @@
|
||||
GITEA_DB_NAME=gitea
|
||||
GITEA_DB_USER=gitea
|
||||
54
gitea/docker-compose.yml
Normal file
54
gitea/docker-compose.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
networks:
|
||||
gitea:
|
||||
external: false
|
||||
proxy-net:
|
||||
external: true
|
||||
|
||||
name: gitea
|
||||
services:
|
||||
app:
|
||||
image: gitea/gitea:latest
|
||||
environment:
|
||||
USER_UID: 141
|
||||
USER_GID: 150
|
||||
GITEA__database__DB_TYPE: postgres
|
||||
GITEA__database__HOST: gitea-db-1:5432
|
||||
GITEA__database__NAME: ${GITEA_DB_NAME}
|
||||
GITEA__database__USER: ${GITEA_DB_USER}
|
||||
GITEA__database__PASSWD__FILE: /run/secrets/postgres_pass
|
||||
GITEA__server__SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE: gitea --config={{.CustomConf}} serv key-{{.Key.ID}}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- gitea
|
||||
- proxy-net
|
||||
volumes:
|
||||
- ./data/gitea:/data
|
||||
- /home/git/.ssh/:/data/git/.ssh
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "127.0.0.1:2222:22"
|
||||
expose:
|
||||
- "3000"
|
||||
depends_on:
|
||||
- db
|
||||
secrets:
|
||||
- postgres_pass
|
||||
|
||||
db:
|
||||
image: postgres:14
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: ${GITEA_DB_USER}
|
||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_pass
|
||||
POSTGRES_DB: ${GITEA_DB_NAME}
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- ./data/postgres:/var/lib/postgresql/data
|
||||
secrets:
|
||||
- postgres_pass
|
||||
|
||||
secrets:
|
||||
postgres_pass:
|
||||
file: ./secrets/POSTGRES_PASS
|
||||
18
homepage/config/bookmarks.yaml
Normal file
18
homepage/config/bookmarks.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/bookmarks
|
||||
|
||||
- Developer:
|
||||
- Github:
|
||||
- abbr: GH
|
||||
href: https://github.com/
|
||||
|
||||
- Social:
|
||||
- Reddit:
|
||||
- abbr: RE
|
||||
href: https://reddit.com/
|
||||
|
||||
- Entertainment:
|
||||
- YouTube:
|
||||
- abbr: YT
|
||||
href: https://youtube.com/
|
||||
0
homepage/config/custom.css
Normal file
0
homepage/config/custom.css
Normal file
0
homepage/config/custom.js
Normal file
0
homepage/config/custom.js
Normal file
10
homepage/config/docker.yaml
Normal file
10
homepage/config/docker.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
my-docker:
|
||||
host: homepage-dockerproxy-1
|
||||
port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
2
homepage/config/kubernetes.yaml
Normal file
2
homepage/config/kubernetes.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
# sample kubernetes config
|
||||
18
homepage/config/services.yaml
Normal file
18
homepage/config/services.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/services/
|
||||
|
||||
- My First Group:
|
||||
- My First Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is awesome
|
||||
|
||||
- My Second Group:
|
||||
- My Second Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is the best
|
||||
|
||||
- My Third Group:
|
||||
- My Third Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is 😎
|
||||
7
homepage/config/settings.yaml
Normal file
7
homepage/config/settings.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/settings/
|
||||
|
||||
providers:
|
||||
openweathermap: openweathermapapikey
|
||||
weatherapi: weatherapiapikey
|
||||
12
homepage/config/widgets.yaml
Normal file
12
homepage/config/widgets.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/info-widgets/
|
||||
|
||||
- resources:
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- search:
|
||||
provider: duckduckgo
|
||||
target: _blank
|
||||
33
homepage/docker-compose.yml
Normal file
33
homepage/docker-compose.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
name: homepage
|
||||
services:
|
||||
app:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
depends_on:
|
||||
- dockerproxy
|
||||
environment:
|
||||
DOCKER_TEMPLATE_CREATED: true
|
||||
expose:
|
||||
- "3000"
|
||||
networks:
|
||||
- proxy-net
|
||||
- default
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./config:/app/config # Make sure your local config directory exists
|
||||
|
||||
dockerproxy:
|
||||
image: ghcr.io/tecnativa/docker-socket-proxy:latest
|
||||
environment:
|
||||
- CONTAINERS=1 # Allow access to viewing containers
|
||||
- SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
|
||||
- TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
|
||||
- POST=0 # Disallow any POST operations (effectively read-only)
|
||||
expose:
|
||||
- "2375"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
45
openobserve/docker-compose.yml
Normal file
45
openobserve/docker-compose.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
name: openobserve
|
||||
services:
|
||||
db:
|
||||
image: postgres:15
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: openobserve
|
||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_pass
|
||||
volumes:
|
||||
- ./data/postgres:/var/lib/postgresql/data
|
||||
secrets:
|
||||
- postgres_pass
|
||||
|
||||
app:
|
||||
image: public.ecr.aws/zinclabs/openobserve:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- proxy-net
|
||||
- default
|
||||
ports:
|
||||
- "5514:5514"
|
||||
expose:
|
||||
- "5080"
|
||||
env_file: ./secrets/openobserve.env
|
||||
environment:
|
||||
ZO_DATA_DIR: /data
|
||||
ZO_DATA_STREAM_DIR: /stream
|
||||
ZO_WEB_URL: https://openobserve.tremendousturtle.tools
|
||||
ZO_TELEMETRY: false
|
||||
ZO_PROMETHEUS_ENABLED: true
|
||||
ZO_META_STORE: postgres
|
||||
volumes:
|
||||
- ./data/openobserve:/data
|
||||
- ./data/stream:/stream
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
|
||||
secrets:
|
||||
postgres_pass:
|
||||
file: ./secrets/POSTGRES_PASS
|
||||
|
||||
18
orbital-sync/docker-compose.yml
Normal file
18
orbital-sync/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
name: orbital-sync
|
||||
services:
|
||||
app:
|
||||
image: mattwebbio/orbital-sync:1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- proxy-net
|
||||
environment:
|
||||
PRIMARY_HOST_BASE_URL: 'http://192.168.1.234:1080'
|
||||
PRIMARY_HOST_PASSWORD: ""
|
||||
SECONDARY_HOSTS_1_BASE_URL: 'http://192.168.1.116'
|
||||
SECONDARY_HOSTS_1_PASSWORD: 'e8JBq59!pwM6Ppj'
|
||||
INTERVAL_MINUTES: 60
|
||||
VERBOSE: true
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
223
overseerr/config/settings.json
Normal file
223
overseerr/config/settings.json
Normal file
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"clientId": "bb40a33d-0bd4-4a13-b47e-57f97de8ed90",
|
||||
"vapidPrivate": "NIRnOAl2iPQL4iLbTAsgLcxBuJnbINj5-k-_BDPEgQw",
|
||||
"vapidPublic": "BHoozLG75WFgLXzgH_ljnWotlAwqGRat1eRZsd_zcsykHzN1MhWdukHOIgb7MzQYrcwMYHboeqihkSyoIKo7ziI",
|
||||
"main": {
|
||||
"apiKey": "MTYzNDA4NTYzNzU5MTgzNTQ2YzFhLTE3MGItNDE0Yi1hNjliLWVhYjJkZmE0ZDNhYyk=",
|
||||
"applicationTitle": "Overseerr",
|
||||
"applicationUrl": "",
|
||||
"csrfProtection": false,
|
||||
"cacheImages": false,
|
||||
"defaultPermissions": 32,
|
||||
"defaultQuotas": {
|
||||
"movie": {},
|
||||
"tv": {}
|
||||
},
|
||||
"hideAvailable": false,
|
||||
"localLogin": true,
|
||||
"newPlexLogin": true,
|
||||
"region": "",
|
||||
"originalLanguage": "",
|
||||
"trustProxy": true,
|
||||
"partialRequestsEnabled": true,
|
||||
"locale": "en"
|
||||
},
|
||||
"plex": {
|
||||
"name": "winterfell",
|
||||
"ip": "192.168.1.234",
|
||||
"port": 32400,
|
||||
"useSsl": false,
|
||||
"libraries": [
|
||||
{
|
||||
"id": "7",
|
||||
"name": "4k Movies",
|
||||
"enabled": true,
|
||||
"type": "movie",
|
||||
"lastScan": 1736797500041
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"name": "Movies",
|
||||
"enabled": true,
|
||||
"type": "movie",
|
||||
"lastScan": 1736797500057
|
||||
},
|
||||
{
|
||||
"id": "1",
|
||||
"name": "TV Shows",
|
||||
"enabled": true,
|
||||
"type": "show",
|
||||
"lastScan": 1736797500105
|
||||
}
|
||||
],
|
||||
"machineId": "5e16f8ceb511bde943f92bbe07e3e6e33307eb16"
|
||||
},
|
||||
"tautulli": {
|
||||
"hostname": "192.168.1.234",
|
||||
"port": 8181,
|
||||
"apiKey": "079935546d82416db237001d03059dc3"
|
||||
},
|
||||
"radarr": [
|
||||
{
|
||||
"name": "Radarr",
|
||||
"hostname": "192.168.1.234",
|
||||
"port": 7878,
|
||||
"apiKey": "3fa0b478a19f4cb3add222e20f448ab8",
|
||||
"useSsl": false,
|
||||
"baseUrl": "",
|
||||
"activeProfileId": 14,
|
||||
"activeProfileName": "Default (Remux 1080p)",
|
||||
"activeDirectory": "/media/movies",
|
||||
"is4k": false,
|
||||
"minimumAvailability": "released",
|
||||
"tags": [],
|
||||
"isDefault": true,
|
||||
"syncEnabled": true,
|
||||
"preventSearch": false,
|
||||
"tagRequests": false,
|
||||
"id": 0
|
||||
}
|
||||
],
|
||||
"sonarr": [
|
||||
{
|
||||
"name": "Sonarr",
|
||||
"hostname": "192.168.1.234",
|
||||
"port": 8989,
|
||||
"apiKey": "a050eae4aa664ac5b8b108d67e3f502f",
|
||||
"useSsl": false,
|
||||
"baseUrl": "",
|
||||
"activeProfileId": 7,
|
||||
"activeLanguageProfileId": 1,
|
||||
"activeProfileName": "Default",
|
||||
"activeDirectory": "/media/tv",
|
||||
"activeAnimeProfileId": 9,
|
||||
"activeAnimeLanguageProfileId": 1,
|
||||
"activeAnimeProfileName": "Anime (Remux-1080p)",
|
||||
"activeAnimeDirectory": "/media/tv",
|
||||
"tags": [],
|
||||
"animeTags": [],
|
||||
"is4k": false,
|
||||
"isDefault": true,
|
||||
"enableSeasonFolders": true,
|
||||
"syncEnabled": true,
|
||||
"preventSearch": false,
|
||||
"tagRequests": false,
|
||||
"id": 0
|
||||
}
|
||||
],
|
||||
"public": {
|
||||
"initialized": true
|
||||
},
|
||||
"notifications": {
|
||||
"agents": {
|
||||
"email": {
|
||||
"enabled": false,
|
||||
"options": {
|
||||
"emailFrom": "",
|
||||
"smtpHost": "",
|
||||
"smtpPort": 587,
|
||||
"secure": false,
|
||||
"ignoreTls": false,
|
||||
"requireTls": false,
|
||||
"allowSelfSigned": false,
|
||||
"senderName": "Overseerr"
|
||||
}
|
||||
},
|
||||
"discord": {
|
||||
"enabled": true,
|
||||
"types": 222,
|
||||
"options": {
|
||||
"webhookUrl": "https://discord.com/api/webhooks/897900990202777690/XRKCdyjqniEYYLwHI5du2BX96TlHmLjqzC8lEppioqIpR1uf2zkDNOHRg_zDOVG0kAwG",
|
||||
"enableMentions": true
|
||||
}
|
||||
},
|
||||
"lunasea": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"webhookUrl": ""
|
||||
}
|
||||
},
|
||||
"slack": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"webhookUrl": ""
|
||||
}
|
||||
},
|
||||
"telegram": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"botAPI": "",
|
||||
"chatId": "",
|
||||
"sendSilently": false
|
||||
}
|
||||
},
|
||||
"pushbullet": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"accessToken": ""
|
||||
}
|
||||
},
|
||||
"pushover": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"accessToken": "",
|
||||
"userToken": ""
|
||||
}
|
||||
},
|
||||
"webhook": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"webhookUrl": "",
|
||||
"jsonPayload": "IntcbiAgICBcIm5vdGlmaWNhdGlvbl90eXBlXCI6IFwie3tub3RpZmljYXRpb25fdHlwZX19XCIsXG4gICAgXCJzdWJqZWN0XCI6IFwie3tzdWJqZWN0fX1cIixcbiAgICBcIm1lc3NhZ2VcIjogXCJ7e21lc3NhZ2V9fVwiLFxuICAgIFwiaW1hZ2VcIjogXCJ7e2ltYWdlfX1cIixcbiAgICBcImVtYWlsXCI6IFwie3tub3RpZnl1c2VyX2VtYWlsfX1cIixcbiAgICBcInVzZXJuYW1lXCI6IFwie3tub3RpZnl1c2VyX3VzZXJuYW1lfX1cIixcbiAgICBcImF2YXRhclwiOiBcInt7bm90aWZ5dXNlcl9hdmF0YXJ9fVwiLFxuICAgIFwie3ttZWRpYX19XCI6IHtcbiAgICAgICAgXCJtZWRpYV90eXBlXCI6IFwie3ttZWRpYV90eXBlfX1cIixcbiAgICAgICAgXCJ0bWRiSWRcIjogXCJ7e21lZGlhX3RtZGJpZH19XCIsXG4gICAgICAgIFwiaW1kYklkXCI6IFwie3ttZWRpYV9pbWRiaWR9fVwiLFxuICAgICAgICBcInR2ZGJJZFwiOiBcInt7bWVkaWFfdHZkYmlkfX1cIixcbiAgICAgICAgXCJzdGF0dXNcIjogXCJ7e21lZGlhX3N0YXR1c319XCIsXG4gICAgICAgIFwic3RhdHVzNGtcIjogXCJ7e21lZGlhX3N0YXR1czRrfX1cIlxuICAgIH0sXG4gICAgXCJ7e2V4dHJhfX1cIjogW10sXG4gICAgXCJ7e3JlcXVlc3R9fVwiOiB7XG4gICAgICAgIFwicmVxdWVzdF9pZFwiOiBcInt7cmVxdWVzdF9pZH19XCIsXG4gICAgICAgIFwicmVxdWVzdGVkQnlfZW1haWxcIjogXCJ7e3JlcXVlc3RlZEJ5X2VtYWlsfX1cIixcbiAgICAgICAgXCJyZXF1ZXN0ZWRCeV91c2VybmFtZVwiOiBcInt7cmVxdWVzdGVkQnlfdXNlcm5hbWV9fVwiLFxuICAgICAgICBcInJlcXVlc3RlZEJ5X2F2YXRhclwiOiBcInt7cmVxdWVzdGVkQnlfYXZhdGFyfX1cIlxuICAgIH1cbn0i"
|
||||
}
|
||||
},
|
||||
"webpush": {
|
||||
"enabled": false,
|
||||
"options": {}
|
||||
},
|
||||
"gotify": {
|
||||
"enabled": false,
|
||||
"types": 0,
|
||||
"options": {
|
||||
"url": "",
|
||||
"token": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jobs": {
|
||||
"plex-recently-added-scan": {
|
||||
"schedule": "0 */5 * * * *"
|
||||
},
|
||||
"plex-full-scan": {
|
||||
"schedule": "0 0 3 * * *"
|
||||
},
|
||||
"plex-watchlist-sync": {
|
||||
"schedule": "0 */10 * * * *"
|
||||
},
|
||||
"radarr-scan": {
|
||||
"schedule": "0 0 4 * * *"
|
||||
},
|
||||
"sonarr-scan": {
|
||||
"schedule": "0 30 4 * * *"
|
||||
},
|
||||
"availability-sync": {
|
||||
"schedule": "0 0 5 * * *"
|
||||
},
|
||||
"download-sync": {
|
||||
"schedule": "0 * * * * *"
|
||||
},
|
||||
"download-sync-reset": {
|
||||
"schedule": "0 0 1 * * *"
|
||||
},
|
||||
"image-cache-cleanup": {
|
||||
"schedule": "0 0 5 * * *"
|
||||
}
|
||||
}
|
||||
}
|
||||
23
overseerr/docker-compose.yml
Normal file
23
overseerr/docker-compose.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
name: overseerr
|
||||
services:
|
||||
app:
|
||||
image: sctx/overseerr:latest
|
||||
user: '115'
|
||||
environment:
|
||||
- LOG_LEVEL=debug
|
||||
- TZ=America/Los_Angeles
|
||||
networks:
|
||||
- proxy-net
|
||||
- default
|
||||
ports:
|
||||
- "5055:5055"
|
||||
expose:
|
||||
- "5055"
|
||||
volumes:
|
||||
- ./data:/app/config
|
||||
- ./config/settings.json:/app/config/settings.json
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
1
requestrr/config/settings.json
Normal file
1
requestrr/config/settings.json
Normal file
@@ -0,0 +1 @@
|
||||
{"Authentication":{"Username":"chris","Password":"VCj5yqvSYO4ruUSeAc8ftelwSxAA5wgGtuKNEroIIkg=","PrivateKey":"3ec2e0c9-c3c5-48c3-8af3-a59cbe565648"},"ChatClients":{"Discord":{"BotToken":"ODk3NjU1MzM3Mjk1OTcwMzE0.YWY0rg.GYoe2CKabu380pKc1TsGiP_vSP8","ClientId":"897655337295970314","StatusMessage":"/help","TvShowRoles":["894757006248906782","894757531392540693","894759271986786314"],"MovieRoles":["894757006248906782","894757531392540693","894759271986786314"],"MonitoredChannels":["897633767303311370"],"EnableRequestsThroughDirectMessages":false,"AutomaticallyNotifyRequesters":true,"NotificationMode":"Channels","NotificationChannels":["897633767303311370"],"AutomaticallyPurgeCommandMessages":false,"MusicRoles":[]},"Language":"english"},"DownloadClients":{"Ombi":{"Hostname":"","Port":3579,"ApiKey":"","ApiUsername":"","BaseUrl":"","UseSSL":false,"Version":"3","UseMovieIssue":false,"UseTVIssue":false},"Overseerr":{"Hostname":"192.168.1.234","Port":5055,"ApiKey":"MTYzNDA4NTYzNzU5MTgzNTQ2YzFhLTE3MGItNDE0Yi1hNjliLWVhYjJkZmE0ZDNhYyk=","Movies":{"DefaultApiUserId":"16","Categories":[{"Id":749,"Is4K":false,"Name":"Movies","ServiceId":0,"ProfileId":14,"RootFolder":"/media/movies","Tags":[]},{"Id":244,"Is4K":false,"Name":"Movies_Anime","ServiceId":0,"ProfileId":16,"RootFolder":"/media/movies","Tags":[]}]},"TvShows":{"DefaultApiUserId":"16","Categories":[{"Id":383,"Is4K":false,"Name":"TV","ServiceId":0,"ProfileId":7,"LanguageProfileId":1,"RootFolder":"/media/tv","Tags":[2]},{"Id":451,"Is4K":false,"Name":"TV_Anime","ServiceId":0,"ProfileId":9,"LanguageProfileId":1,"RootFolder":"/media/tv","Tags":[]}]},"UseSSL":false,"Version":"1","UseMovieIssue":false,"UseTVIssue":false},"Radarr":{"Hostname":"","Port":7878,"ApiKey":"","BaseUrl":"","Categories":[{"Id":0,"Name":"movie","ProfileId":"1","RootFolder":"","MinimumAvailability":"announced","Tags":[]}],"SearchNewRequests":true,"MonitorNewRequests":true,"UseSSL":false,"Version":"3"},"Sonarr":{"Hostname":"","Port":8989,"ApiKey":"","BaseUrl":"","Categories":[{"Id":0,"Name":"tv","ProfileId":"1","RootFolder":"","Tags":[],"LanguageId":"1","UseSeasonFolders":true,"SeriesType":"standard"}],"SearchNewRequests":true,"MonitorNewRequests":true,"UseSSL":false,"Version":"3"},"Lidarr":{"Hostname":"","Port":8686,"ApiKey":"","BaseUrl":"","Categories":[{"Id":0,"Name":"music","ProfileId":1,"MetadataProfileId":1,"RootFolder":"","Tags":[]}],"SearchNewRequests":true,"MonitorNewRequests":true,"UseSSL":false,"Version":"1"}},"BotClient":{"Client":"Discord"},"Movies":{"Client":"Overseerr"},"TvShows":{"Client":"Overseerr","Restrictions":"None"},"Port":4545,"BaseUrl":"","DisableAuthentication":false,"Version":"2.1.3","Music":{"Client":"Disabled"}}
|
||||
18
requestrr/docker-compose.yml
Normal file
18
requestrr/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
name: requestrr
|
||||
services:
|
||||
app:
|
||||
image: thomst08/requestrr
|
||||
networks:
|
||||
- proxy-net
|
||||
ports:
|
||||
- "4545:4545"
|
||||
expose:
|
||||
- "4545"
|
||||
volumes:
|
||||
- ./config:/root/config
|
||||
- ./data/tmp:/root/config/tmp
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
961
stashapp/config/config.yml
Normal file
961
stashapp/config/config.yml
Normal file
@@ -0,0 +1,961 @@
|
||||
api_key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJjaHJpcyIsInN1YiI6IkFQSUtleSIsImlhdCI6MTcwNzg0MTk4OX0.nqDqNfNNNVHLuvA3wsvcR8aBwYjqUkCGDAn3AiBMU34
|
||||
blobs_path: /blobs/
|
||||
blobs_storage: FILESYSTEM
|
||||
calculate_md5: false
|
||||
continue_playlist_default: true
|
||||
create_image_clip_from_videos: false
|
||||
cssenabled: false
|
||||
dangerous_allow_public_without_auth: "false"
|
||||
database: /db/stash-go.sqlite
|
||||
defaults:
|
||||
auto_tag_task:
|
||||
paths: []
|
||||
performers:
|
||||
- '*'
|
||||
studios:
|
||||
- '*'
|
||||
tags: []
|
||||
generate_task:
|
||||
clippreviews: false
|
||||
covers: false
|
||||
forcetranscodes: false
|
||||
imagepreviews: false
|
||||
imagethumbnails: false
|
||||
interactiveheatmapsspeeds: false
|
||||
markerids: []
|
||||
markerimagepreviews: false
|
||||
markers: true
|
||||
markerscreenshots: false
|
||||
overwrite: false
|
||||
phashes: false
|
||||
previewoptions:
|
||||
previewexcludeend: "0"
|
||||
previewexcludestart: "0"
|
||||
previewpreset: slow
|
||||
previewsegmentduration: 0.75
|
||||
previewsegments: 18
|
||||
previews: false
|
||||
sceneids: []
|
||||
sprites: false
|
||||
transcodes: false
|
||||
identify_task:
|
||||
options:
|
||||
fieldoptions:
|
||||
- createmissing: null
|
||||
field: title
|
||||
strategy: OVERWRITE
|
||||
- createmissing: true
|
||||
field: studio
|
||||
strategy: MERGE
|
||||
- createmissing: true
|
||||
field: performers
|
||||
strategy: MERGE
|
||||
- createmissing: true
|
||||
field: tags
|
||||
strategy: MERGE
|
||||
includemaleperformers: true
|
||||
setcoverimage: true
|
||||
setorganized: false
|
||||
skipmultiplematches: true
|
||||
skipmultiplematchtag: "1159"
|
||||
skipsinglenameperformers: true
|
||||
skipsinglenameperformertag: "524"
|
||||
paths: []
|
||||
sceneids: []
|
||||
sources:
|
||||
- options: null
|
||||
source:
|
||||
scraperid: null
|
||||
stashboxendpoint: https://stashdb.org/graphql
|
||||
stashboxindex: null
|
||||
- options: null
|
||||
source:
|
||||
scraperid: null
|
||||
stashboxendpoint: https://metadataapi.net/graphql
|
||||
stashboxindex: null
|
||||
scan_task:
|
||||
scangenerateclippreviews: false
|
||||
scangeneratecovers: true
|
||||
scangenerateimagepreviews: false
|
||||
scangeneratephashes: true
|
||||
scangeneratepreviews: true
|
||||
scangeneratesprites: true
|
||||
scangeneratethumbnails: true
|
||||
dlna:
|
||||
default_whitelist:
|
||||
- 192.168.1.149
|
||||
video_sort_order: created_at
|
||||
ffmpeg:
|
||||
hardware_acceleration: true
|
||||
gallery_cover_regex: (poster|cover|folder|board)\.[^\.]+$
|
||||
generated: ""
|
||||
host: 0.0.0.0
|
||||
jwt_secret_key: 45dacba9bd122244b17a0365256a8e826f3c8e189cf21d26135b452824a9a037
|
||||
menu_items:
|
||||
- scenes
|
||||
- groups
|
||||
- markers
|
||||
- galleries
|
||||
- performers
|
||||
- studios
|
||||
- tags
|
||||
no_proxy: localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12
|
||||
nobrowser: true
|
||||
notifications_enabled: false
|
||||
parallel_tasks: 0
|
||||
password: $2a$04$T8nN490lPHZw1rf6v1Q2ze/VAn3hhgiJ6l/SSV96gBMwhmDLk/dXq
|
||||
plugins:
|
||||
disabled:
|
||||
- VideoScrollWheel
|
||||
- TPDBMarkers
|
||||
package_sources:
|
||||
- localpath: community
|
||||
name: Community (stable)
|
||||
url: https://stashapp.github.io/CommunityScripts/stable/index.yml
|
||||
- localpath: stash-plugins
|
||||
name: Stash-Plugins
|
||||
url: https://7djx1qp.github.io/stash-plugins/main/index.yml
|
||||
settings:
|
||||
cjCardTweaks:
|
||||
addBannerDimension: true
|
||||
fileCount: true
|
||||
performerProfileCards: true
|
||||
stashStashIdInput:
|
||||
performers: true
|
||||
studios: true
|
||||
tPdBmarkers:
|
||||
disableSceneMarkerHook: true
|
||||
timestampTrade:
|
||||
createMovieFromScene: false
|
||||
disableGalleryLookupHook: true
|
||||
disableSceneMarkersHook: false
|
||||
extraUrls: false
|
||||
mergeMarkers: true
|
||||
plugins_path: /plugins/
|
||||
port: 9999
|
||||
preview_audio: true
|
||||
preview_exclude_end: 2%
|
||||
preview_exclude_start: 5%
|
||||
preview_preset: slow
|
||||
preview_segment_duration: 1
|
||||
preview_segments: 30
|
||||
python_path: ""
|
||||
scrapers:
|
||||
package_sources:
|
||||
- localpath: community
|
||||
name: Community (stable)
|
||||
url: https://stashapp.github.io/CommunityScrapers/stable/index.yml
|
||||
scrapers_path: /scrapers/
|
||||
security_tripwire_accessed_from_public_internet: ""
|
||||
sequential_scanning: false
|
||||
session_store_key: 72b6a684a4d0f214e5abb049f0110e2df38c43b90fe6cd78ff646607d48a5dae
|
||||
show_one_time_moved_notification: false
|
||||
sound_on_preview: false
|
||||
stash:
|
||||
- excludeimage: true
|
||||
excludevideo: false
|
||||
path: /data/
|
||||
- excludeimage: true
|
||||
excludevideo: false
|
||||
path: /stash
|
||||
- excludeimage: true
|
||||
excludevideo: false
|
||||
path: /junk
|
||||
- excludeimage: true
|
||||
excludevideo: false
|
||||
path: /movies
|
||||
- excludeimage: true
|
||||
excludevideo: false
|
||||
path: /packs
|
||||
stash_boxes:
|
||||
- apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI5ZDIxZTM2NS01N2QyLTRiZDUtODVkOC1kOGQwMjIxYTc2ZTMiLCJzdWIiOiJBUElLZXkiLCJpYXQiOjE2OTc5NjUyOTh9.Yk5agCaeidWqXyjsO29Lb6wnEglXHjSZdE94cDuLx2g
|
||||
endpoint: https://stashdb.org/graphql
|
||||
name: stashdb.org
|
||||
- apikey: H04DEzLXkMqUBtNdS9CYOI4ek9KZb0EBSfNhTt1A87ee11b2
|
||||
endpoint: https://theporndb.net/graphql
|
||||
name: ThePornDB
|
||||
theme_color: '#202b33'
|
||||
ui:
|
||||
advancedMode: true
|
||||
compactExpandedDetails: false
|
||||
defaultFilters:
|
||||
performers:
|
||||
find_filter:
|
||||
direction: ASC
|
||||
page: "1"
|
||||
per_page: "40"
|
||||
q: ""
|
||||
sort: name
|
||||
mode: PERFORMERS
|
||||
object_filter:
|
||||
gender:
|
||||
modifier: EQUALS
|
||||
value: Female
|
||||
ui_options:
|
||||
display_mode: "0"
|
||||
zoom_index: "1"
|
||||
scenes:
|
||||
find_filter:
|
||||
direction: DESC
|
||||
page: "1"
|
||||
per_page: "20"
|
||||
q: ""
|
||||
sort: random_81535573
|
||||
mode: SCENES
|
||||
object_filter:
|
||||
path:
|
||||
modifier: MATCHES_REGEX
|
||||
value: ^/data/.*$|^/packs/.*$|^/movies/.*$
|
||||
phash_distance:
|
||||
modifier: NOT_NULL
|
||||
value:
|
||||
distance: "0"
|
||||
value: ""
|
||||
play_duration:
|
||||
modifier: LESS_THAN
|
||||
value:
|
||||
value: "4"
|
||||
studios:
|
||||
modifier: NOT_NULL
|
||||
value:
|
||||
depth: "0"
|
||||
excluded: []
|
||||
items: []
|
||||
ui_options:
|
||||
display_mode: "0"
|
||||
zoom_index: "3"
|
||||
enableChromecast: true
|
||||
enableMovieBackgroundImage: true
|
||||
enablePerformerBackgroundImage: true
|
||||
enableStudioBackgroundImage: true
|
||||
frontPageContent:
|
||||
- __typename: CustomFilter
|
||||
direction: DESC
|
||||
message:
|
||||
id: recently_released_objects
|
||||
values:
|
||||
objects: Scenes
|
||||
mode: SCENES
|
||||
sortBy: date
|
||||
- __typename: CustomFilter
|
||||
direction: DESC
|
||||
message:
|
||||
id: recently_added_objects
|
||||
values:
|
||||
objects: Studios
|
||||
mode: STUDIOS
|
||||
sortBy: created_at
|
||||
- __typename: CustomFilter
|
||||
direction: DESC
|
||||
message:
|
||||
id: recently_released_objects
|
||||
values:
|
||||
objects: Movies
|
||||
mode: MOVIES
|
||||
sortBy: date
|
||||
- __typename: CustomFilter
|
||||
direction: DESC
|
||||
message:
|
||||
id: recently_added_objects
|
||||
values:
|
||||
objects: Performers
|
||||
mode: PERFORMERS
|
||||
sortBy: created_at
|
||||
- __typename: CustomFilter
|
||||
direction: DESC
|
||||
message:
|
||||
id: recently_released_objects
|
||||
values:
|
||||
objects: Galleries
|
||||
mode: GALLERIES
|
||||
sortBy: date
|
||||
lastNoteSeen: "20240826"
|
||||
minimumPlayPercent: "10"
|
||||
pinnedFilters:
|
||||
performers:
|
||||
- isMissing
|
||||
scenes:
|
||||
- path
|
||||
- isMissing
|
||||
- tags
|
||||
ratingSystemOptions:
|
||||
starPrecision: half
|
||||
type: stars
|
||||
taggerConfig:
|
||||
blacklist:
|
||||
- \sXXX\s
|
||||
- 1080p
|
||||
- 720p
|
||||
- 2160p
|
||||
- KTR
|
||||
- RARBG
|
||||
- \scom\s
|
||||
- \[
|
||||
- \]
|
||||
createParentStudios: true
|
||||
excludedPerformerFields:
|
||||
- name
|
||||
excludedStudioFields:
|
||||
- name
|
||||
fingerprintQueue:
|
||||
https://stashdb.org/graphql:
|
||||
- "14115"
|
||||
- "13320"
|
||||
- "13623"
|
||||
- "17433"
|
||||
- "14152"
|
||||
- "14206"
|
||||
- "14168"
|
||||
- "17294"
|
||||
- "13905"
|
||||
- "13385"
|
||||
- "13837"
|
||||
- "16837"
|
||||
- "16596"
|
||||
- "16686"
|
||||
- "13382"
|
||||
- "15576"
|
||||
- "16643"
|
||||
- "12278"
|
||||
- "16976"
|
||||
- "16406"
|
||||
- "14106"
|
||||
- "12610"
|
||||
- "17452"
|
||||
- "17174"
|
||||
- "12615"
|
||||
- "13066"
|
||||
- "12532"
|
||||
- "17526"
|
||||
- "17402"
|
||||
- "17170"
|
||||
- "17273"
|
||||
- "16997"
|
||||
- "17525"
|
||||
- "12403"
|
||||
- "15519"
|
||||
- "17428"
|
||||
- "16421"
|
||||
- "14631"
|
||||
- "17523"
|
||||
- "17287"
|
||||
- "17528"
|
||||
- "15901"
|
||||
- "17398"
|
||||
- "16135"
|
||||
- "13178"
|
||||
- "17282"
|
||||
- "17724"
|
||||
- "17727"
|
||||
- "17729"
|
||||
- "17709"
|
||||
- "17728"
|
||||
- "17737"
|
||||
- "17713"
|
||||
- "17726"
|
||||
- "17750"
|
||||
- "17748"
|
||||
- "17742"
|
||||
- "17747"
|
||||
- "17754"
|
||||
- "17719"
|
||||
- "17751"
|
||||
- "17714"
|
||||
- "17721"
|
||||
- "17712"
|
||||
- "17711"
|
||||
- "17739"
|
||||
- "17753"
|
||||
- "17710"
|
||||
- "17752"
|
||||
- "17741"
|
||||
- "17734"
|
||||
- "17720"
|
||||
- "17723"
|
||||
- "17707"
|
||||
- "17725"
|
||||
- "17746"
|
||||
- "17755"
|
||||
- "17757"
|
||||
- "17749"
|
||||
- "17730"
|
||||
- "17717"
|
||||
- "17756"
|
||||
- "17731"
|
||||
- "17716"
|
||||
- "17740"
|
||||
- "17733"
|
||||
- "17735"
|
||||
- "17758"
|
||||
- "17708"
|
||||
- "17718"
|
||||
- "17743"
|
||||
- "17745"
|
||||
- "17786"
|
||||
- "17878"
|
||||
- "17817"
|
||||
- "17814"
|
||||
- "17813"
|
||||
- "17815"
|
||||
- "17865"
|
||||
- "17893"
|
||||
- "17812"
|
||||
- "17792"
|
||||
- "17818"
|
||||
- "17819"
|
||||
- "17826"
|
||||
- "17787"
|
||||
- "17797"
|
||||
- "17804"
|
||||
- "17799"
|
||||
- "17795"
|
||||
- "17798"
|
||||
- "17828"
|
||||
- "17802"
|
||||
- "17805"
|
||||
- "17827"
|
||||
- "17831"
|
||||
- "17832"
|
||||
- "17839"
|
||||
- "17883"
|
||||
- "17845"
|
||||
- "17842"
|
||||
- "17810"
|
||||
- "17807"
|
||||
- "17844"
|
||||
- "17785"
|
||||
- "17822"
|
||||
- "17808"
|
||||
- "17811"
|
||||
- "17823"
|
||||
- "17816"
|
||||
- "17837"
|
||||
- "17836"
|
||||
- "17825"
|
||||
- "17833"
|
||||
- "17838"
|
||||
- "17830"
|
||||
- "17889"
|
||||
- "17891"
|
||||
- "17806"
|
||||
- "17770"
|
||||
- "17801"
|
||||
- "17843"
|
||||
- "17835"
|
||||
- "17809"
|
||||
- "17790"
|
||||
- "17796"
|
||||
- "17789"
|
||||
- "17820"
|
||||
- "17896"
|
||||
- "17867"
|
||||
- "17908"
|
||||
- "17909"
|
||||
- "17912"
|
||||
- "17886"
|
||||
- "17885"
|
||||
- "17794"
|
||||
- "17803"
|
||||
- "17821"
|
||||
- "17793"
|
||||
- "17784"
|
||||
- "17890"
|
||||
- "17834"
|
||||
- "17850"
|
||||
- "17800"
|
||||
- "17848"
|
||||
- "17841"
|
||||
- "17849"
|
||||
- "17846"
|
||||
- "17852"
|
||||
- "17824"
|
||||
- "17851"
|
||||
- "17961"
|
||||
- "17875"
|
||||
- "17880"
|
||||
- "17870"
|
||||
- "17856"
|
||||
- "17895"
|
||||
- "17897"
|
||||
- "17858"
|
||||
- "17854"
|
||||
- "17855"
|
||||
- "17860"
|
||||
- "17861"
|
||||
- "17859"
|
||||
- "17864"
|
||||
- "17857"
|
||||
- "17862"
|
||||
- "17863"
|
||||
- "17906"
|
||||
- "17927"
|
||||
- "17894"
|
||||
- "17911"
|
||||
- "17905"
|
||||
- "17873"
|
||||
- "17918"
|
||||
- "17892"
|
||||
- "17888"
|
||||
- "17916"
|
||||
- "17881"
|
||||
- "17920"
|
||||
- "17884"
|
||||
- "17930"
|
||||
- "17921"
|
||||
- "17915"
|
||||
- "17922"
|
||||
- "17928"
|
||||
- "17924"
|
||||
- "17874"
|
||||
- "17877"
|
||||
- "17879"
|
||||
- "17871"
|
||||
- "17869"
|
||||
- "17926"
|
||||
- "17876"
|
||||
- "17882"
|
||||
- "17917"
|
||||
- "17872"
|
||||
- "17868"
|
||||
- "17913"
|
||||
- "17903"
|
||||
- "17919"
|
||||
- "17914"
|
||||
- "17904"
|
||||
- "17933"
|
||||
- "17934"
|
||||
- "17932"
|
||||
- "17887"
|
||||
- "17866"
|
||||
- "17929"
|
||||
- "17923"
|
||||
- "17910"
|
||||
- "17925"
|
||||
- "17902"
|
||||
- "17931"
|
||||
- "17898"
|
||||
- "17901"
|
||||
- "17900"
|
||||
- "17899"
|
||||
- "17907"
|
||||
- "17935"
|
||||
- "17939"
|
||||
- "17937"
|
||||
- "17936"
|
||||
- "17938"
|
||||
- "17943"
|
||||
- "17947"
|
||||
- "17940"
|
||||
- "17955"
|
||||
- "17952"
|
||||
- "17948"
|
||||
- "17946"
|
||||
- "17941"
|
||||
- "17951"
|
||||
- "17942"
|
||||
- "17944"
|
||||
- "17953"
|
||||
- "17949"
|
||||
- "17945"
|
||||
- "17954"
|
||||
- "17983"
|
||||
- "17987"
|
||||
- "17968"
|
||||
- "17960"
|
||||
- "17959"
|
||||
- "17988"
|
||||
- "17972"
|
||||
- "17965"
|
||||
- "17984"
|
||||
- "17986"
|
||||
- "17967"
|
||||
- "17976"
|
||||
- "17962"
|
||||
- "17978"
|
||||
- "17977"
|
||||
- "17970"
|
||||
- "17969"
|
||||
- "17985"
|
||||
- "17991"
|
||||
- "17980"
|
||||
- "17975"
|
||||
- "17974"
|
||||
- "17964"
|
||||
- "17981"
|
||||
- "17957"
|
||||
- "17993"
|
||||
- "17989"
|
||||
- "17973"
|
||||
- "17958"
|
||||
- "17963"
|
||||
- "17966"
|
||||
- "17971"
|
||||
- "17990"
|
||||
- "17979"
|
||||
- "18003"
|
||||
- "18001"
|
||||
- "17995"
|
||||
- "18002"
|
||||
- "17994"
|
||||
- "18000"
|
||||
- "17997"
|
||||
- "17996"
|
||||
- "17999"
|
||||
- "17998"
|
||||
- "18004"
|
||||
- "18005"
|
||||
- "18009"
|
||||
- "18008"
|
||||
- "18012"
|
||||
- "18010"
|
||||
- "18007"
|
||||
- "18013"
|
||||
- "18006"
|
||||
- "18011"
|
||||
- "18207"
|
||||
- "18215"
|
||||
- "18217"
|
||||
- "18187"
|
||||
- "18190"
|
||||
- "18196"
|
||||
- "18191"
|
||||
- "18194"
|
||||
- "18227"
|
||||
- "18188"
|
||||
- "18281"
|
||||
- "18192"
|
||||
- "18189"
|
||||
- "18204"
|
||||
- "18246"
|
||||
- "18245"
|
||||
- "18208"
|
||||
- "18209"
|
||||
- "18199"
|
||||
- "18232"
|
||||
- "18213"
|
||||
- "18019"
|
||||
- "18014"
|
||||
- "18015"
|
||||
- "18016"
|
||||
- "18017"
|
||||
- "18018"
|
||||
- "18020"
|
||||
- "18249"
|
||||
- "18219"
|
||||
- "18229"
|
||||
- "18221"
|
||||
- "18233"
|
||||
- "18220"
|
||||
- "18198"
|
||||
- "18195"
|
||||
- "18212"
|
||||
- "18211"
|
||||
- "18239"
|
||||
- "18223"
|
||||
- "18203"
|
||||
- "18222"
|
||||
- "18226"
|
||||
- "18210"
|
||||
- "18225"
|
||||
- "18218"
|
||||
- "18224"
|
||||
- "18214"
|
||||
- "18231"
|
||||
- "18238"
|
||||
- "18243"
|
||||
- "18216"
|
||||
- "18202"
|
||||
- "18240"
|
||||
- "18205"
|
||||
- "18197"
|
||||
- "18242"
|
||||
- "18201"
|
||||
- "18241"
|
||||
- "18228"
|
||||
- "18200"
|
||||
- "18230"
|
||||
- "18193"
|
||||
- "18234"
|
||||
- "18237"
|
||||
- "18278"
|
||||
- "18279"
|
||||
- "18359"
|
||||
- "18303"
|
||||
- "18305"
|
||||
- "18297"
|
||||
- "18283"
|
||||
- "18275"
|
||||
- "18285"
|
||||
- "18298"
|
||||
- "18252"
|
||||
- "18250"
|
||||
- "18247"
|
||||
- "18206"
|
||||
- "18253"
|
||||
- "18254"
|
||||
- "18244"
|
||||
- "18236"
|
||||
- "18251"
|
||||
- "18248"
|
||||
- "18259"
|
||||
- "18256"
|
||||
- "18257"
|
||||
- "18258"
|
||||
- "18261"
|
||||
- "18260"
|
||||
- "18255"
|
||||
- "18267"
|
||||
- "18265"
|
||||
- "18264"
|
||||
- "18263"
|
||||
- "18266"
|
||||
- "18268"
|
||||
- "18262"
|
||||
- "18315"
|
||||
- "18294"
|
||||
- "18309"
|
||||
- "18314"
|
||||
- "18274"
|
||||
- "18288"
|
||||
- "18277"
|
||||
- "18273"
|
||||
- "18282"
|
||||
- "18329"
|
||||
- "18312"
|
||||
- "18308"
|
||||
- "18311"
|
||||
- "18287"
|
||||
- "18327"
|
||||
- "18307"
|
||||
- "18291"
|
||||
- "18271"
|
||||
- "18269"
|
||||
- "18295"
|
||||
- "18270"
|
||||
- "18272"
|
||||
- "18276"
|
||||
- "18290"
|
||||
- "18299"
|
||||
- "18331"
|
||||
- "18332"
|
||||
- "18328"
|
||||
- "18306"
|
||||
- "18280"
|
||||
- "18317"
|
||||
- "18304"
|
||||
- "18333"
|
||||
- "18300"
|
||||
- "18336"
|
||||
- "18296"
|
||||
- "18339"
|
||||
- "18326"
|
||||
- "18310"
|
||||
- "18292"
|
||||
- "18322"
|
||||
- "18323"
|
||||
- "18343"
|
||||
- "18313"
|
||||
- "18293"
|
||||
- "18286"
|
||||
- "18284"
|
||||
- "18337"
|
||||
- "18338"
|
||||
- "18334"
|
||||
- "18330"
|
||||
- "18335"
|
||||
- "18352"
|
||||
- "18372"
|
||||
- "18402"
|
||||
- "18347"
|
||||
- "18348"
|
||||
- "18396"
|
||||
- "18382"
|
||||
- "18384"
|
||||
- "18357"
|
||||
- "18405"
|
||||
- "18409"
|
||||
- "18371"
|
||||
- "18389"
|
||||
- "18374"
|
||||
- "18392"
|
||||
- "18388"
|
||||
- "18367"
|
||||
- "18404"
|
||||
- "18380"
|
||||
- "18361"
|
||||
- "18383"
|
||||
- "18391"
|
||||
- "18398"
|
||||
- "18350"
|
||||
- "18373"
|
||||
- "18408"
|
||||
- "18400"
|
||||
- "18377"
|
||||
- "18379"
|
||||
- "18403"
|
||||
- "18354"
|
||||
- "18362"
|
||||
- "18394"
|
||||
- "18410"
|
||||
- "18458"
|
||||
- "18459"
|
||||
- "18460"
|
||||
- "18455"
|
||||
- "18457"
|
||||
- "18456"
|
||||
- "18454"
|
||||
- "18453"
|
||||
- "18452"
|
||||
- "18451"
|
||||
- "18450"
|
||||
- "18448"
|
||||
- "18449"
|
||||
- "18447"
|
||||
- "18446"
|
||||
- "18445"
|
||||
- "18442"
|
||||
- "18444"
|
||||
- "18443"
|
||||
- "18441"
|
||||
- "18438"
|
||||
- "18439"
|
||||
- "18437"
|
||||
- "18436"
|
||||
- "18435"
|
||||
- "18434"
|
||||
- "18433"
|
||||
- "18432"
|
||||
- "18430"
|
||||
- "18431"
|
||||
- "18428"
|
||||
- "18429"
|
||||
- "18427"
|
||||
- "18426"
|
||||
- "18425"
|
||||
- "18423"
|
||||
- "18424"
|
||||
- "18422"
|
||||
- "18421"
|
||||
- "18420"
|
||||
- "18419"
|
||||
- "18418"
|
||||
- "18417"
|
||||
- "18416"
|
||||
- "18415"
|
||||
- "18413"
|
||||
- "18411"
|
||||
- "18412"
|
||||
- "18414"
|
||||
- "18461"
|
||||
- "18462"
|
||||
- "18463"
|
||||
- "18465"
|
||||
- "18466"
|
||||
- "18469"
|
||||
- "18468"
|
||||
- "18472"
|
||||
- "18471"
|
||||
- "18473"
|
||||
- "18474"
|
||||
- "18477"
|
||||
- "18476"
|
||||
- "18478"
|
||||
- "18479"
|
||||
- "18480"
|
||||
- "18481"
|
||||
- "18482"
|
||||
- "18483"
|
||||
- "18484"
|
||||
- "18485"
|
||||
- "18487"
|
||||
- "18488"
|
||||
- "18489"
|
||||
- "18490"
|
||||
- "18491"
|
||||
- "18493"
|
||||
- "18492"
|
||||
- "18495"
|
||||
- "18494"
|
||||
- "18497"
|
||||
- "18496"
|
||||
- "18498"
|
||||
- "18499"
|
||||
- "18501"
|
||||
- "18503"
|
||||
- "18502"
|
||||
- "18504"
|
||||
- "18505"
|
||||
- "18507"
|
||||
- "18506"
|
||||
- "18512"
|
||||
- "18486"
|
||||
- "18517"
|
||||
- "18534"
|
||||
- "18532"
|
||||
- "18535"
|
||||
- "18533"
|
||||
- "18537"
|
||||
- "18536"
|
||||
- "18539"
|
||||
- "18540"
|
||||
- "18541"
|
||||
- "18543"
|
||||
- "18544"
|
||||
- "18545"
|
||||
- "18546"
|
||||
- "18547"
|
||||
- "18550"
|
||||
- "18552"
|
||||
- "18554"
|
||||
- "18556"
|
||||
- "18555"
|
||||
- "18557"
|
||||
- "18559"
|
||||
- "18560"
|
||||
- "18551"
|
||||
- "18558"
|
||||
https://theporndb.net/graphql:
|
||||
- "18500"
|
||||
- "18538"
|
||||
- "18542"
|
||||
- "18549"
|
||||
- "18553"
|
||||
markSceneAsOrganizedOnSave: false
|
||||
mode: auto
|
||||
selectedEndpoint: https://stashdb.org/graphql
|
||||
setCoverImage: true
|
||||
setTags: true
|
||||
showMales: true
|
||||
tagOperation: merge
|
||||
taskDefaults:
|
||||
cleanGenerated:
|
||||
blobFiles: true
|
||||
dryRun: false
|
||||
imageThumbnails: false
|
||||
markers: true
|
||||
screenshots: true
|
||||
sprites: true
|
||||
transcodes: true
|
||||
generate:
|
||||
clipPreviews: false
|
||||
covers: true
|
||||
imagePreviews: false
|
||||
imageThumbnails: false
|
||||
interactiveHeatmapsSpeeds: false
|
||||
markerImagePreviews: false
|
||||
markerScreenshots: false
|
||||
markers: false
|
||||
phashes: true
|
||||
previewOptions:
|
||||
previewExcludeEnd: "0"
|
||||
previewExcludeStart: "0"
|
||||
previewPreset: slow
|
||||
previewSegmentDuration: "0.75"
|
||||
previewSegments: "18"
|
||||
previews: true
|
||||
sprites: true
|
||||
transcodes: false
|
||||
trackActivity: true
|
||||
username: chris
|
||||
video_file_naming_algorithm: OSHASH
|
||||
write_image_thumbnails: true
|
||||
0
stashapp/config/custom.css
Executable file
0
stashapp/config/custom.css
Executable file
59
stashapp/docker-compose.yml
Normal file
59
stashapp/docker-compose.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
# APPNICENAME=Stash
|
||||
# APPDESCRIPTION=An organizer for your porn, written in Go
|
||||
name: stashapp
|
||||
services:
|
||||
app:
|
||||
image: stashapp/stash:latest
|
||||
restart: unless-stopped
|
||||
## the container's port must be the same with the STASH_PORT in the environment section
|
||||
networks:
|
||||
- proxy-net
|
||||
ports:
|
||||
- "9999:9999"
|
||||
expose:
|
||||
- "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
|
||||
|
||||
## Keep configs, scrapers, and plugins here.
|
||||
- ./config:/root/.stash
|
||||
## Point this at your collection.
|
||||
- /media/raid/junk_transfer:/data
|
||||
- /media/raid/stash:/stash
|
||||
- /media/junk/junk:/junk
|
||||
- /media/raid/junk_movies_transfer:/movies
|
||||
- /media/raid/junk_pack_transfer:/packs
|
||||
## This is where your stash's metadata lives
|
||||
- ./data/metadata:/metadata
|
||||
## Any other cache content.
|
||||
- ./data/cache:/cache
|
||||
## Where to store binary blob data (scene covers, images)
|
||||
- ./data/blobs:/blobs
|
||||
## Where to store plugins
|
||||
- ./data/plugins:/plugins
|
||||
## Where to store scrapers
|
||||
- ./data/scrapers:/scrapers
|
||||
## Where to store database file
|
||||
- ./data/db:/db
|
||||
## Where to store generated content (screenshots,previews,transcodes,sprites)
|
||||
- /media/stashapp/generated:/generated
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
29
triliumnext-notes/config/config.ini
Normal file
29
triliumnext-notes/config/config.ini
Normal file
@@ -0,0 +1,29 @@
|
||||
[General]
|
||||
# Instance name can be used to distinguish between different instances using backend api.getInstanceName()
|
||||
instanceName=
|
||||
|
||||
# set to true to allow using Trilium without authentication (makes sense for server build only, desktop build doesn't need password)
|
||||
noAuthentication=false
|
||||
|
||||
# set to true to disable backups (e.g. because of limited space on server)
|
||||
noBackup=false
|
||||
|
||||
# Disable automatically generating desktop icon
|
||||
# noDesktopIcon=true
|
||||
|
||||
[Network]
|
||||
# host setting is relevant only for web deployments - set the host on which the server will listen
|
||||
# host=0.0.0.0
|
||||
# port setting is relevant only for web deployments, desktop builds run on a fixed port (changeable with TRILIUM_PORT environment variable)
|
||||
port=8080
|
||||
# true for TLS/SSL/HTTPS (secure), false for HTTP (insecure).
|
||||
https=false
|
||||
# path to certificate (run "bash bin/generate-cert.sh" to generate self-signed certificate). Relevant only if https=true
|
||||
certPath=
|
||||
keyPath=
|
||||
# setting to give trust to reverse proxies, a comma-separated list of trusted rev. proxy IPs can be specified (CIDR notation is permitted),
|
||||
# alternatively 'true' will make use of the leftmost IP in X-Forwarded-For, ultimately an integer can be used to tell about the number of hops between
|
||||
# Trilium (which is hop 0) and the first trusted rev. proxy.
|
||||
# once set, expressjs will use the X-Forwarded-For header set by the rev. proxy to determinate the real IPs of clients.
|
||||
# expressjs shortcuts are supported: loopback(127.0.0.1/8, ::1/128), linklocal(169.254.0.0/16, fe80::/10), uniquelocal(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7)
|
||||
trustedReverseProxy=false
|
||||
20
triliumnext-notes/docker-compose.yml
Normal file
20
triliumnext-notes/docker-compose.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
name: "triliumnext-notes"
|
||||
services:
|
||||
app:
|
||||
image: triliumnext/notes:v0.90.12
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/home/node/trilium-data
|
||||
- ./config:/home/node/trilium-config
|
||||
expose:
|
||||
- "8080"
|
||||
networks:
|
||||
- proxy-net
|
||||
environment:
|
||||
USER_UID: 1000
|
||||
USER_GID: 1000
|
||||
TRILIUM_CONFIG_INI_PATH: /home/node/trilium-config/config.ini
|
||||
|
||||
networks:
|
||||
proxy-net:
|
||||
external: true
|
||||
Reference in New Issue
Block a user