moved services to dockerserver1

This commit is contained in:
2024-03-02 22:13:12 -06:00
parent 0b7ac066dc
commit 36ec6c6059
18 changed files with 685 additions and 0 deletions

34
paperlessngx/.env Executable file
View File

@@ -0,0 +1,34 @@
#GLOBAL SETTINGS
COMPOSE_HTTP_TIMEOUT=120
COMPOSE_IGNORE_ORPHANS=1
DOCKER_CONFIGS=.
DOCKERGID=999
DOCKERHOSTNAME=DockerServer2
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
SERVERIP=192.168.1.32
PGID=1000
PUID=1000
UMASK=000
TZ=America/Chicago
BACKUP_DIR=/mnt/truenas-backups
MEDIA_DIR=/mnt/truenas-media
STORAGE_DIR=/mnt/truenas-storage
#PAPERLESS
PAPERLESS_URL=https://paperless.akanealw.com
PAPERLESS_SECRET_KEY=fo5soje2caiQu9eed4kuwakeevae5x
PAPERLESS_TIME_ZONE=America/Chicago
PAPERLESS_OCR_LANGUAGE=eng
PAPERLESS_DBPASS=ieta6iuGhoorooluGieceekahFeic4
PAPERLESS_ADMIN_USER=akanealw
PAPERLESS_ADMIN_PASSWORD=booshooSekae0eid9Vatohgei1phoo
PAPERLESS_ADMIN_MAIL=akanealw@gmail.com
PAPERLESS_OCR_USER_ARGS={"tesseract_timeout": 250, "continue_on_soft_render_error": true}
PAPERLESS_OCR_MODE=redo
PAPERLESS_OCR_CLEAN=clean
PAPERLESS_TASK_WORKERS=2
PAPERLESS_CONSUMER_RECURSIVE=true
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=true
PAPERLESS_CONSUMER_POLLING=180
PAPERLESS_FILENAME_FORMAT={created_year}/{correspondent}/{title}

81
paperlessngx/compose.yml Executable file
View File

@@ -0,0 +1,81 @@
version: '3'
services:
paperless-redis:
container_name: paperless-redis
image: docker.io/library/redis:7
networks:
- paperless
restart: always
volumes:
- ${DOCKER_CONFIGS}/redis/data:/data
paperless-postgres:
container_name: paperless-postgres
image: docker.io/library/postgres:15
networks:
- paperless
restart: always
volumes:
- ${DOCKER_CONFIGS}/postgres/data:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: ieta6iuGhoorooluGieceekahFeic4
paperless:
container_name: paperless
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
depends_on:
- paperless-postgres
- paperless-redis
- paperless-gotenberg
- paperless-tika
networks:
- paperless
- reverse-proxy
ports:
- "8111:8000"
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ${DOCKER_CONFIGS}/data:/usr/src/paperless/data
- ${DOCKER_CONFIGS}/data:/usr/src/paperless/media
- /mnt/truenas-storage/Documents/Paperless/Export:/usr/src/paperless/export
- /mnt/truenas-storage/Documents/Paperless/Input:/usr/src/paperless/consume
env_file: .env
environment:
PAPERLESS_REDIS: redis://paperless-redis:6379
PAPERLESS_DBHOST: paperless-postgres
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless-gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://paperless-tika:9998
paperless-gotenberg:
container_name: paperless-gotenberg
image: docker.io/gotenberg/gotenberg:7.10
networks:
- paperless
restart: always
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
paperless-tika:
container_name: paperless-tika
image: ghcr.io/paperless-ngx/tika:latest
networks:
- paperless
restart: always
networks:
paperless:
name: paperless
reverse-proxy:
name: reverse-proxy
external: true

14
photoprism/.env Executable file
View File

@@ -0,0 +1,14 @@
#GLOBAL SETTINGS
COMPOSE_HTTP_TIMEOUT=120
COMPOSE_IGNORE_ORPHANS=1
DOCKER_CONFIGS=.
DOCKERGID=999
DOCKERHOSTNAME=DockerServer2
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
SERVERIP=192.168.1.32
PGID=1000
PUID=1000
UMASK=000
TZ=America/Chicago
STORAGE_DIR=/mnt/truenas-storage

81
photoprism/compose.yml Normal file
View File

@@ -0,0 +1,81 @@
version: '3.5'
services:
photoprism:
container_name: photoprism
image: photoprism/photoprism:latest
restart: always
stop_grace_period: 10s
depends_on:
- photoprism-mariadb
security_opt:
- seccomp:unconfined
- apparmor:unconfined
networks:
- photoprism
- reverse-proxy
ports:
- "2342:2342" # HTTP port (host:container)
environment:
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
PHOTOPRISM_ADMIN_PASSWORD: "sueB3aoNg0eot4Iluinaeh5lah8Ais" # initial admin password (8-72 characters)
PHOTOPRISM_AUTH_MODE: "public" # authentication mode (public, password)
PHOTOPRISM_SITE_URL: "http://192.168.1.32:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)"
PHOTOPRISM_DISABLE_TLS: "false" # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available
PHOTOPRISM_DEFAULT_TLS: "true" # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic
PHOTOPRISM_READONLY: "false" # do not modify originals directory (reduced functionality)
PHOTOPRISM_EXPERIMENTAL: "false" # enables experimental features
PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
PHOTOPRISM_DISABLE_FACES: "false" # disables face detection and recognition (requires TensorFlow)
PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification (requires TensorFlow)
PHOTOPRISM_DISABLE_VECTORS: "false" # disables vector graphics support
PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100)
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive (no effect without TensorFlow)
PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance
PHOTOPRISM_DATABASE_SERVER: "photoprism-mariadb:3306" # MariaDB or MySQL database server (hostname:port)
PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name
PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name
PHOTOPRISM_DATABASE_PASSWORD: "photoprism" # MariaDB or MySQL database user password
PHOTOPRISM_SITE_CAPTION: "PhotoPrism"
PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description
PHOTOPRISM_SITE_AUTHOR: "" # meta site author
working_dir: "/photoprism" # do not change or remove
volumes:
- "${STORAGE_DIR}/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE)
- "${DOCKER_CONFIGS}/storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE)
photoprism-mariadb:
container_name: photoprism-mariadb
image: mariadb:10.11
restart: unless-stopped
stop_grace_period: 5s
security_opt:
- seccomp:unconfined
- apparmor:unconfined
command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "${DOCKER_CONFIGS}/database:/var/lib/mysql"
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "photoprism"
MARIADB_ROOT_PASSWORD: "eengeYoowoh9loh5zahngoh1aoye4b"
networks:
- photoprism
networks:
photoprism:
name: photoprism
reverse-proxy:
name: reverse-proxy
external: true

12
piped/.env Normal file
View File

@@ -0,0 +1,12 @@
#GLOBAL SETTINGS
COMPOSE_HTTP_TIMEOUT=120
COMPOSE_IGNORE_ORPHANS=1
DOCKER_CONFIGS=.
DOCKERGID=999
DOCKERHOSTNAME=DockerServer2
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
PGID=1000
PUID=1000
UMASK=000
TZ=America/Chicago

75
piped/compose.yml Normal file
View File

@@ -0,0 +1,75 @@
version: '3'
services:
piped:
container_name: piped
image: 1337kavin/piped:latest
depends_on:
- piped-postgres
networks:
- piped
restart: always
volumes:
- ${DOCKER_CONFIGS}/config/config.properties:/app/config.properties:ro
piped-frontend:
container_name: piped-frontend
image: 1337kavin/piped-frontend:latest
entrypoint: ash -c 'sed -i s/pipedapi.kavin.rocks/pipedapi.akanealw.com/g /usr/share/nginx/html/assets/* && /docker-entrypoint.sh && nginx -g "daemon off;"'
networks:
- piped
depends_on:
- piped
restart: always
piped-nginx:
container_name: piped-nginx
image: nginx:mainline-alpine
depends_on:
- piped
- piped-proxy
- piped-frontend
networks:
- piped
- reverse-proxy
ports:
- 8585:80
restart: always
volumes:
- ${DOCKER_CONFIGS}/config/nginx.conf:/etc/nginx/nginx.conf:ro
- ${DOCKER_CONFIGS}/config/pipedapi.conf:/etc/nginx/conf.d/pipedapi.conf:ro
- ${DOCKER_CONFIGS}/config/pipedproxy.conf:/etc/nginx/conf.d/pipedproxy.conf:ro
- ${DOCKER_CONFIGS}/config/pipedfrontend.conf:/etc/nginx/conf.d/pipedfrontend.conf:ro
- ${DOCKER_CONFIGS}/config/ytproxy.conf:/etc/nginx/snippets/ytproxy.conf:ro
- ${DOCKER_CONFIGS}/piped-proxy:/var/run/ytproxy
piped-postgres:
container_name: piped-postgres
image: postgres:15
environment:
- POSTGRES_DB=piped
- POSTGRES_USER=piped
- POSTGRES_PASSWORD=Vee0caiv8ieceeDae1aepheirophai
networks:
- piped
restart: always
volumes:
- ${DOCKER_CONFIGS}/data/db:/var/lib/postgresql/data
piped-proxy:
container_name: piped-proxy
image: 1337kavin/piped-proxy:latest
environment:
- UDS=1
networks:
- piped
restart: always
volumes:
- ${DOCKER_CONFIGS}/piped-proxy:/app/socket
networks:
piped:
name: piped
reverse-proxy:
name: reverse-proxy
external: true

37
piped/config/config.properties Executable file
View File

@@ -0,0 +1,37 @@
# The port to Listen on.
PORT: 8080
# The number of workers to use for the server
HTTP_WORKERS: 2
# Proxy
PROXY_PART: https://pipedproxy.akanealw.com
# Outgoing HTTP Proxy - eg: 127.0.0.1:8118
#HTTP_PROXY: 127.0.0.1:8118
# Captcha Parameters
CAPTCHA_BASE_URL: https://api.capmonster.cloud/
CAPTCHA_API_KEY: INSERT_HERE
# Public API URL
API_URL: https://pipedapi.akanealw.com
# Public Frontend URL
FRONTEND_URL: https://piped.akanealw.com
# Enable haveibeenpwned compromised password API
COMPROMISED_PASSWORD_CHECK: true
# Disable Registration
DISABLE_REGISTRATION: false
# Feed Retention Time in Days
FEED_RETENTION: 30
# Hibernate properties
hibernate.connection.url: jdbc:postgresql://piped-postgres:5432/piped
hibernate.connection.driver_class: org.postgresql.Driver
hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.username: piped
hibernate.connection.password: Vee0caiv8ieceeDae1aepheirophai

33
piped/config/nginx.conf Executable file
View File

@@ -0,0 +1,33 @@
user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nodelay on;
keepalive_timeout 65;
resolver 127.0.0.11 ipv6=off valid=10s;
include /etc/nginx/conf.d/*.conf;
}

15
piped/config/pipedapi.conf Executable file
View File

@@ -0,0 +1,15 @@
proxy_cache_path /tmp/pipedapi_cache levels=1:2 keys_zone=pipedapi:4m max_size=2g inactive=60m use_temp_path=off;
server {
listen 80;
server_name pipedapi.akanealw.com;
set $backend "http://piped:8080";
location / {
proxy_cache pipedapi;
proxy_pass $backend;
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
}
}

12
piped/config/pipedfrontend.conf Executable file
View File

@@ -0,0 +1,12 @@
server {
listen 80;
server_name piped.akanealw.com;
set $backend "http://piped-frontend:80";
location / {
proxy_pass $backend;
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
}
}

14
piped/config/pipedproxy.conf Executable file
View File

@@ -0,0 +1,14 @@
server {
listen 80;
server_name pipedproxy.akanealw.com;
location ~ (/videoplayback|/api/v4/|/api/manifest/) {
include snippets/ytproxy.conf;
add_header Cache-Control private always;
}
location / {
include snippets/ytproxy.conf;
add_header Cache-Control "public, max-age=604800";
}
}

18
piped/config/ytproxy.conf Executable file
View File

@@ -0,0 +1,18 @@
proxy_buffering on;
proxy_buffers 1024 16k;
proxy_set_header X-Forwarded-For "";
proxy_set_header CF-Connecting-IP "";
proxy_hide_header "alt-svc";
sendfile on;
sendfile_max_chunk 512k;
tcp_nopush on;
aio threads=default;
aio_write on;
directio 16m;
proxy_hide_header Cache-Control;
proxy_hide_header etag;
proxy_http_version 1.1;
proxy_set_header Connection keep-alive;
proxy_max_temp_file_size 32m;
access_log off;
proxy_pass http://unix:/var/run/ytproxy/actix.sock;

12
rss-bridge/.env Normal file
View File

@@ -0,0 +1,12 @@
#GLOBAL SETTINGS
COMPOSE_HTTP_TIMEOUT=120
COMPOSE_IGNORE_ORPHANS=1
DOCKER_CONFIGS=.
DOCKERGID=999
DOCKERHOSTNAME=DockerServer2
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
PGID=1000
PUID=1000
UMASK=000
TZ=America/Chicago

18
rss-bridge/compose.yml Normal file
View File

@@ -0,0 +1,18 @@
version: '3'
services:
rss-bridge:
container_name: rss-bridge
image: rssbridge/rss-bridge:latest
networks:
- reverse-proxy
ports:
- 3006:80
restart: always
volumes:
- ${DOCKER_CONFIGS}/config:/config
networks:
reverse-proxy:
name: reverse-proxy
external: true

152
rss-bridge/config/config.ini.php Executable file
View File

@@ -0,0 +1,152 @@
; <?php exit; ?> DO NOT REMOVE THIS LINE
; This file contains the default settings for RSS-Bridge. Do not change this
; file, it will be replaced on the next update of RSS-Bridge! You can specify
; your own configuration in 'config.ini.php' (copy this file).
[system]
; Only these bridges are available for feed production
; How to enable all bridges: enabled_bridges[] = *
enabled_bridges[] = CssSelectorBridge
enabled_bridges[] = FeedMerge
enabled_bridges[] = FeedReducerBridge
enabled_bridges[] = Filter
enabled_bridges[] = PCGamer
enabled_bridges[] = Reddit
enabled_bridges[] = SoundcloudBridge
enabled_bridges[] = Telegram
enabled_bridges[] = ThePirateBay
enabled_bridges[] = TikTokBridge
enabled_bridges[] = Twitch
enabled_bridges[] = Twitter
enabled_bridges[] = Youtube
enabled_bridges[] = YouTubeCommunityTabBridge
; Defines the timezone used by RSS-Bridge
; Find a list of supported timezones at
; https://www.php.net/manual/en/timezones.php
; timezone = "UTC" (default)
timezone = "UTC"
; Display a system message to users.
message = ""
; Whether to enable debug mode.
enable_debug_mode = false
; Enable debug mode only for these permitted ip addresses
; debug_mode_whitelist[] = 127.0.0.1
; debug_mode_whitelist[] = 192.168.1.10
; Whether to enable maintenance mode. If enabled, feed requests receive 503 Service Unavailable
enable_maintenance_mode = false
[http]
timeout = 60
useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
; Max http response size in MB
max_filesize = 20
[cache]
; Cache type: file, sqlite, memcached, array, null
type = "file"
; Allow users to specify custom timeout for specific requests.
; true = enabled
; false = disabled (default)
custom_timeout = false
[admin]
; Advertise an email address where people can reach the administrator.
; This address is displayed on the main page, visible to everyone!
; "" = Disabled (default)
email = ""
; Advertise a contact Telegram url e.g. "https://t.me/elegantobjects"
telegram = ""
; Show Donation information for bridges if available.
; This will display a 'Donate' link on the bridge view
; and a "Donate" button in the HTML view of the bridges feed.
; true = enabled (default)
; false = disabled
donations = true
[proxy]
; Sets the proxy url (i.e. "tcp://192.168.0.0:32")
; "" = Proxy disabled (default)
url = ""
; Sets the proxy name that is shown on the bridge instead of the proxy url.
; "" = Show proxy url
name = "Hidden proxy name"
; Allow users to disable proxy usage for specific requests.
; true = enabled
; false = disabled (default)
by_bridge = false
[authentication]
; Enables basic authentication for all requests to this RSS-Bridge instance.
;
; Warning: You'll have to upgrade existing feeds after enabling this option!
;
; true = enabled
; false = disabled (default)
enable = false
username = "admin"
; The password cannot be the empty string if authentication is enabled.
password = ""
; This will be used only for actions that require privileged access
access_token = ""
[error]
; Defines how error messages are returned by RSS-Bridge
;
; "feed" = As part of the feed (default)
; "http" = As HTTP error message
; "none" = No errors are reported
output = "feed"
; Defines how often an error must occur before it is reported to the user
report_limit = 1
; --- Cache specific configuration ---------------------------------------------
[FileCache]
; The root folder to store files in.
; "" = Use the cache folder in the repository (default)
path = ""
; Whether to actually delete files when purging. Can be useful to turn off to increase performance.
enable_purge = true
[SQLiteCache]
; Filepath of the sqlite db file
file = "cache.sqlite"
; Whether to actually delete data when purging
enable_purge = true
; Busy wait in ms before timing out
timeout = 5000
[MemcachedCache]
host = "localhost"
port = 11211
; --- Bridge specific configuration ------
[DiscogsBridge]
; Sets the personal access token for interactions with Discogs. When
; provided, images can be included in generated feeds.
;
; "" = no token used (default)
personal_access_token = ""

12
shlink/.env Normal file
View File

@@ -0,0 +1,12 @@
#GLOBAL SETTINGS
COMPOSE_HTTP_TIMEOUT=120
COMPOSE_IGNORE_ORPHANS=1
DOCKER_CONFIGS=.
DOCKERGID=999
DOCKERHOSTNAME=DockerServer2
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
PGID=1000
PUID=1000
UMASK=000
TZ=America/Chicago

58
shlink/compose.yml Normal file
View File

@@ -0,0 +1,58 @@
version: '3'
services:
shlink-server:
container_name: shlink-server
image: shlinkio/shlink:stable
environment:
- TZ=${TZ}
- DEFAULT_DOMAIN=aknlw.com
- IS_HTTPS_ENABLED=true
- GEOLITE_LICENSE_KEY=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
- DB_DRIVER=maria
- DB_USER=shlink
- DB_NAME=shlink
- DB_PASSWORD=OoDahdohv6
- DB_HOST=shlink-database
- INITIAL_API_KEY=f0dc4f0c-6d4e-47a3-ad65-d39acca81435
depends_on:
- shlink-database
networks:
- shlink
- reverse-proxy
ports:
- 8380:8080
restart: always
shlink-database:
container_name: shlink-database
image: mariadb:10.8
environment:
- MARIADB_ROOT_PASSWORD=coo6Pooch2
- MARIADB_DATABASE=shlink
- MARIADB_USER=shlink
- MARIADB_PASSWORD=OoDahdohv6
networks:
- shlink
restart: always
volumes:
- ${DOCKER_CONFIGS}/mariadb/db_data:/var/lib/mysql
shlink-web-client:
container_name: shlink-web-client
image: shlinkio/shlink-web-client:3.1.0
ports:
- 8381:80
networks:
- shlink
- reverse-proxy
restart: always
volumes:
- ${DOCKER_CONFIGS}/servers.json:/usr/share/nginx/html/servers.json
networks:
shlink:
name: shlink
reverse-proxy:
name: reverse-proxy
external: true

7
shlink/servers.json Executable file
View File

@@ -0,0 +1,7 @@
[
{
"name": "aknlw.com",
"url": "https://aknlw.com",
"apiKey": "eiy5ees0AiVoh8eeWa7U"
}
]