config(docker compose): add local rundfunkarr-at, unpackerr config, gitea bidy_size fix

add local rundfunkarr from git fork
update unpackerr dafult config(generated at docker compose up)
reverse proxy change: client_max_body_size 10G to transfer larger files
to gitea
This commit is contained in:
lucas committed 2026-10-27 10:00:25 +01:00
1 parent c4a717a8a8
commit 298519a446
4 files changed
+289 -103

No files matched your search

+2 -2
View File
@@ -31,9 +31,9 @@
*/5 * * * * /home/lucas/scripts/docker_compose/docker_update_nextcloud.sh && logger "CRON_SUCCESS nextcloud" || logger "CRON_FAILURE nextcloud" */5 * * * * /home/lucas/scripts/docker_compose/docker_update_nextcloud.sh && logger "CRON_SUCCESS nextcloud" || logger "CRON_FAILURE nextcloud"
*/5 * * * * /home/lucas/scripts/docker_compose/node-exporter-pubip-docker-states.sh && logger "CRON_SUCCESS pubip" || logger "CRON_FAILURE pubip" */5 * * * * /home/lucas/scripts/docker_compose/node-exporter-pubip-docker-states.sh && logger "CRON_SUCCESS pubip" || logger "CRON_FAILURE pubip"
0 * * * * /home/lucas/scripts/media_editing/convert_heic.sh && logger "CRON_SUCCESS conv_heic" || logger "CRON_FAILURE conv_heic" 0 * * * * /home/lucas/scripts/media_editing/convert_heic.sh && logger "CRON_SUCCESS conv_heic" || logger "CRON_FAILURE conv_heic"
0 * * * * /home/lucas/scripts/file_processing/rename_memes_folder.sh && logger "CRON_SUCCESS rename_mem" || logger "CRON_FAILURE rename_mem" 0 * * * * /home/lucas/scripts/file_processing/rename_memes_folder.sh && logger "CRON_SUCCESS rename_mem" || logger "CRON_FAILURE rename_mem"
10 * * * * /home/lucas/scripts/file_processing/rename_camera_folder.sh && logger "CRON_SUCCESS rename_cam" || logger "CRON_FAILURE rename_cam" 10 * * * * /home/lucas/scripts/file_processing/rename_camera_folder.py && logger "CRON_SUCCESS rename_cam" || logger "CRON_FAILURE rename_cam"
0 3 * * * /home/lucas/scripts/docker_compose/docker_renew_certbot.sh && logger "CRON_SUCCESS renew_cert" || logger "CRON_FAILURE renew_cert" 0 3 * * * /home/lucas/scripts/docker_compose/docker_renew_certbot.sh && logger "CRON_SUCCESS renew_cert" || logger "CRON_FAILURE renew_cert"
0 23 * * * /home/lucas/scripts/file_processing/sync_camera_to_immich.sh && logger "CRON_SUCCESS immich" || logger "CRON_FAILURE immich" 0 23 * * * /home/lucas/scripts/file_processing/sync_camera_to_immich.sh && logger "CRON_SUCCESS immich" || logger "CRON_FAILURE immich"
0 3 * * 0 /home/lucas/scripts/utils/download_latest_ubuntu.sh && logger "CRON_SUCCESS ubuntu" || logger "CRON_FAILURE ubuntu" 0 3 * * 0 /home/lucas/scripts/utils/download_latest_ubuntu.sh && logger "CRON_SUCCESS ubuntu" || logger "CRON_FAILURE ubuntu"
@@ -82,6 +82,20 @@ services:
- VPN_TYPE=wireguard - VPN_TYPE=wireguard
ports: ports:
- "6767:6767" # Rundfunkarr UI - "6767:6767" # Rundfunkarr UI
rundfunkarr-at:
image: rundfunkarr:local
container_name: rundfunkarr-at
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID (id -u)
- PGID=1000 # Group ID (id -g)
- DOWNLOAD_FOLDER_PATH=/downloads-rundfunkarr
volumes:
- ./rundfunkarr-at:/app/prisma/data
- /torrent/rundfunkarr-at:/downloads-rundfunkarr
ports:
- 6768:6767
restart: unless-stopped
rundfunkarr-de: rundfunkarr-de:
image: ghcr.io/rundfunkarr/rundfunkarr:latest image: ghcr.io/rundfunkarr/rundfunkarr:latest
container_name: rundfunkarr-de container_name: rundfunkarr-de
@@ -115,6 +129,7 @@ services:
- VPN_TYPE=wireguard - VPN_TYPE=wireguard
- SOCKS5_ENABLED=on - SOCKS5_ENABLED=on
- HTTPPROXY=on - HTTPPROXY=on
- HTTP_LISTENING_ADDRESS:=8888
- SOCKSPROXY=on - SOCKSPROXY=on
- TZ=Europe/Vienna - TZ=Europe/Vienna
- DNS_SERVER=on - DNS_SERVER=on
@@ -2,65 +2,80 @@
## Unpackerr Example Configuration File ## ## Unpackerr Example Configuration File ##
####################################################### #######################################################
## The values are a mix of defaults and examples. ## ## The values are a mix of defaults and examples. ##
## Environment Variables may override all values. ## ## Env vars overlay the process, not this file. ##
## More configuration help: https://unpackerr.zip ## ## More configuration help: https://unpackerr.zip ##
## Config Generator: https://notifiarr.com/unpackerr ## ## Config Generator: https://notifiarr.com/unpackerr ##
####################################################### #######################################################
## Turn on debug messages in the output. Do not wrap this in quotes. ## Turn on debug messages in the output. Do not wrap this in quotes.
## Recommend trying this so you know what it looks like. I personally leave it on. ## Recommend trying this so you know what it looks like. I personally leave it on.
debug = false #debug = false
## Disable writing messages to stdout/stderr. This silences the app. Set a log ## Disable writing messages to stdout/stderr. This silences the app. Set a log
## file below if you set this to true. Recommended when starting with systemctl. ## file below if you set this to true. Recommended when starting with systemctl.
quiet = false #quiet = false
## Send error output to stderr instead of stdout by setting error_stderr to true. ## Send error output to stderr instead of stdout by setting error_stderr to true.
## Recommend leaving this at false. Ignored if quiet (above) is true. ## Recommend leaving this at false. Ignored if quiet (above) is true.
error_stderr = false #error_stderr = false
## Setting activity to true will silence all app queue log lines with only zeros. ## Setting activity to true will silence all app queue log lines with only zeros.
## Set this to true when you want less log spam. ## Set this to true when you want less log spam.
activity = false #activity = false
## The Starr-application activity queue is logged on an interval. ## The Starr-application activity queue is logged on an interval.
## Adjust that interval with this setting. ## Adjust that interval with this setting.
## Default is a minute. 2m, 5m, 10m, 30m, 1h are also perfectly acceptable. ## Default is a minute. 2m, 5m, 10m, 30m, 1h are also perfectly acceptable.
log_queues = "1m" #log_queues = "1m"
## Write messages to a log file. This is the same data that is normally output to stdout. ## Write messages to a log file. This is the same data that is normally output to stdout.
## This setting is great for Docker users that want to export their logs to a file. ## This setting is great for Docker users that want to export their logs to a file.
## The alternative is to use syslog to log the output of the application to a file. ## The alternative is to use syslog to log the output of the application to a file.
## Default is no log file; this is unset. ## Default is no log file; this is unset.
## Except on macOS and Windows, the log file gets set to "~/.unpackerr/unpackerr.log" ## Except on macOS and Windows, the log file gets set to "~/.unpackerr/unpackerr.log"
## log_files=0 turns off auto-rotation. ## log_files=0 turns off auto-rotation so logrotate can own the file.
## After logrotate renames the live file, send SIGHUP (`systemctl reload unpackerr`)
## to close and reopen it. Use logrotate `create` plus postrotate HUP, not copytruncate.
## Default files is 10 and size(mb) is 10 Megabytes. ## Default files is 10 and size(mb) is 10 Megabytes.
#log_file = '/downloads/unpackerr.log' #log_file = ''
log_files = 10 #log_files = 10
log_file_mb = 10 #log_file_mb = 10
log_file_mode = "0600" #log_file_mode = "0600"
## How many completed or failed items to keep in unpackerr.history.jsonl
## (next to the log file, or the config file if logs go to stdout).
## With neither a log file nor a config file, history stays in memory
## for this process and is not written to disk, so it does not survive
## a restart. Set `log_file` or use a config file to persist it.
## In-progress extracts are also written so a restart can resume them
## for 72 hours (Starr waiting for import, folders waiting on
## delete_after). Those in-progress rows do not count against this
## number. Imported and failed rows do. The history API still lists
## only completed or failed rows.
## `0` disables history and restart resume.
#keep_history = 400
## How often to poll starr apps (sonarr, radarr, etc). ## How often to poll starr apps (sonarr, radarr, etc).
## Recommend 1m-5m. Uses Go Duration. ## Recommend 1m-5m. Uses Go Duration.
interval = "2m" #interval = "2m"
## How often status is logged for in-progress extractions. ## How often status is logged for in-progress extractions.
## Recommend 2-60s. Uses Go Duration. ## `0` uses the default `15s`. Uses Go Duration.
progress = "15s" #progress = "15s"
## How long an item must be queued (download complete) before extraction will start. ## How long an item must be queued (download complete) before extraction will start.
## One minute is the historic default and works well. Set higher if your downloads ## One minute is the historic default and works well. Set higher if your downloads
## take longer to finalize (or transfer locally). Uses Go Duration. ## take longer to finalize (or transfer locally). Uses Go Duration.
start_delay = "1m" #start_delay = "1m"
## How long to wait before removing the history for a failed extraction. ## How long to wait before removing the history for a failed extraction.
## Once the history is deleted the item will be recognized as new and ## Once the history is deleted the item will be recognized as new and
## extraction will start again. Uses Go Duration. ## extraction will start again. Uses Go Duration.
retry_delay = "5m" #retry_delay = "5m"
## How many times to retry a failed extraction after the first try. Default is 2 ## How many times to retry a failed extraction after the first try. Default is 2
## (3 attempts total). `0` uses that default. Pauses retry_delay between attempts. ## (3 attempts total). `0` uses that default. Pauses retry_delay between attempts.
max_retries = 2 #max_retries = 2
## Applies to Starr apps and to watched folders with `move_back` enabled ## Applies to Starr apps and to watched folders with `move_back` enabled
## (the default folder config extracts into a sidecar tree and does not ## (the default folder config extracts into a sidecar tree and does not
@@ -75,61 +90,117 @@ max_retries = 2
## until it leaves the Starr queue (folders are untracked). Bounded by ## until it leaves the Starr queue (folders are untracked). Bounded by
## max_retries; if retries are exhausted the leftover fails the extract ## max_retries; if retries are exhausted the leftover fails the extract
## instead of reporting success. ## instead of reporting success.
remnant_action = "rename" #remnant_action = "rename"
## How many files may be extracted in parallel. 1 works fine. ## How many files may be extracted in parallel. 1 works fine.
## Do not wrap the number in quotes. Raise this only if you have fast disks and CPU. ## Do not wrap the number in quotes. Raise this only if you have fast disks and CPU.
parallel = 1 #parallel = 1
## Use these configurations to control the file modes used for newly extracted ## Extracted files are created with this mode. The process umask still
## files and folders. Recommend 0644/0755 or 0666/0777. ## applies, so 0666 becomes 0644 under umask 0022. Use 0644, or 0660 or
file_mode = "0644" ## 0666 when another user must write the extracted files. Archive
dir_mode = "0755" ## execute bits are kept only for a watched folder with preserve_exec
## enabled.
#file_mode = "0644"
## Extracted directories are created with this mode. The process umask
## still applies.
#dir_mode = "0755"
## List of passwords to use for encrypted archives. Must be a list of strings. ## List of passwords to use for encrypted archives. Must be a list of strings.
## Use this special format as a password to read more passwords from a file: ## Use this special format as a password to read more passwords from a file:
## passwords = [ "filepath:/path/to/passwords.txt" ] ## passwords = [ "filepath:/path/to/passwords.txt" ]
passwords = [] #passwords = []
[webserver] [webserver]
## The web server currently only supports metrics; set this to true if you wish to use it. ## Expose Prometheus metrics at /metrics. The HTTP server starts whenever listen_addr is set;
metrics = false ## this only controls the /metrics route. Scrapes must send an API key with
## system:metrics:read via Authorization: Bearer or X-Api-Key.
# metrics = false
## Expose Go pprof handlers at /debug/pprof/. Leave this false unless you
## are debugging the running process.
# pprof = false
## This may be set to a port or an ip:port to bind a specific IP. 0.0.0.0 binds ALL IPs. ## This may be set to a port or an ip:port to bind a specific IP. 0.0.0.0 binds ALL IPs.
listen_addr = "0.0.0.0:5656" ## Set this to an empty string to disable the HTTP server.
# listen_addr = "0.0.0.0:5656"
## Local UI login. Use user:pass (hashed on startup), !!cryptd!!user:$2a$...
## for a stored hash, webauth:X-Webauth-User for a reverse-proxy header, or
## noauth. The HTTP API does not accept plaintext; send user:<PBKDF2 hex>
## (same digest as login) and uiCurrentKdf when changing a live password.
## filepath:/path reads that file for the live password and keeps filepath: in the
## config. Empty generates a temporary password when the HTTP server is enabled.
## Reset with --reset. Do not set an empty
## UN_WEBSERVER_UI_PASSWORD; a present empty env value wipes a stored hash.
ui_password = "!!cryptd!!admin:$2a$10$t8pChUtJw.VZW2DO47Lh/.2nE9J.jHnx.MH5VncjCZ2LADfso64oe"
## Used with webauth (proxy header auth). Empty keeps those proxy users
## as admin. Ignored for noauth and local password login. Set this to a
## header the reverse proxy fills, for example X-Webauth-Role or
## X-Authentik-Groups. Matching names are a built-in admin or a custom
## [webserver.roles] name. Comma, semicolon, pipe, or space separated
## lists are unioned; extra IdP groups are ignored. A selected header
## that is missing, empty, or has no matching role is access denied,
## not admin.
## example: ui_role_header = "X-Webauth-Role"
# ui_role_header = ""
## Recommend setting a log file for HTTP requests. Otherwise, they go with other logs. ## Recommend setting a log file for HTTP requests. Otherwise, they go with other logs.
log_file = '' # log_file = ''
## This app automatically rotates logs. Set these to the size and number to keep. ## This app automatically rotates logs. Set these to the size and number to keep.
log_files = 10 ## log_files=0 disables auto-rotation; SIGHUP reopens the HTTP log too.
log_file_mb = 10 # log_files = 10
# log_file_mb = 10
## Set both of these to valid file paths to enable HTTPS/TLS. ## Set both of these to valid file paths to enable HTTPS/TLS.
ssl_cert_file = '' # ssl_cert_file = ''
ssl_key_file = '' # ssl_key_file = ''
## Base URL from which to serve content. ## Base URL from which to serve content.
urlbase = "/" # urlbase = "/"
## Upstreams should be set to the IP or CIDR of your trusted upstream proxy. ## Upstreams should be set to the IP or CIDR of your trusted upstream proxy.
## Setting this correctly allows X-Forwarded-For to be used in logs. ## Setting this correctly allows X-Forwarded-For to be used in logs.
## In the future it may control auth proxy trust. Must be a list of strings. ## In the future it may control auth proxy trust. Must be a list of strings.
## example: upstreams = [ "127.0.0.1/32", "10.1.2.0/24" ] ## example: upstreams = [ "127.0.0.1/32", "10.1.2.0/24" ]
upstreams = [] # upstreams = []
## Empty keeps the library same-origin check (the embedded UI). Add hosts
## when a browser on another origin should open GET /ws, for example
## localhost:5173 or https://ui.example.com. Patterns use path.Match;
## a URI scheme is matched as scheme://host. Do not set * unless you
## intend to allow every origin.
## example: ws_origins = [ "localhost:5173" ]
# ws_origins = []
## Nested [[webserver.api_keys]] tables, not an inline array. Each key is 60–150 ASCII
## characters. Names and key values must be unique. Built-in role `admin` grants every
## permission. Custom roles are listed under [webserver.roles].
## Env uses UN_WEBSERVER_API_KEYS_0_NAME, _KEY, and _ROLES_0.
## Nested [webserver.roles.<name>] tables. Names are letters, digits, _ or -.
## Built-in admin cannot be redefined. `*` is reserved for that built-in role.
## Each custom role needs at least one known permission.
## File browser is system:browse:read (list) and system:browse:write (create folder).
## Env works but is picky: do not set UN_WEBSERVER_ROLES itself. Role names are
## case-sensitive and may contain underscores. Index permissions from 0:
## UN_WEBSERVER_ROLES_stats_PERMISSIONS_0=system:stats:read
## UN_WEBSERVER_ROLES_read_only_PERMISSIONS_0=system:stats:read
## [webserver.roles.stats]
## permissions = ["system:stats:read"]
[[webserver.api_keys]]
name = "admin"
key = "Gv7I8Y0wY7-KFjZxeRD_mVvSm8Ca2sxvo267DY9GG5YKD34BBMGIeudHQy_tI7gq"
roles = ["admin"]
## Global Folder configuration that affects all watched folders. ## Global Folder configuration that affects all watched folders.
[folders] [folders]
## How often poller checks for new folders.
## The default of `0s` will disable the poller on all systems except Docker.
## Set this value to `1ms` to disable it in Docker.
interval = "0s"
## How many new folder events can be immediately queued. Don't change this. ## How many new folder events can be immediately queued. Don't change this.
buffer = 20000 # buffer = 20000
############################################################################### ###############################################################################
##-IMPORTANT-#######-READ THIS!!!-################ Seriously, read this. ###### ##-IMPORTANT-#######-READ THIS!!!-################ Seriously, read this. ######
############################################################################### ###############################################################################
## The following sections can be repeated if you have more than one Sonarr, ## ## The following sections can be repeated if you have more than one Sonarr, ##
## Radarr, Lidarr, Readarr, Whisparr, Folder, Webhook, and/or Command Hook. ## ## Radarr, Lidarr, Readarr, Folder, Webhook, and/or Command Hook. ##
## You MUST uncomment the [[header]], url and api_key at for any Starr app. ## ## Identify each instance with a short key: [sonarr.uhd], [folder.tv]. ##
## The [[sonarr]] and [[radarr]] headers come uncommented. Uncomment the url ## ## Changed in v1.0.0 (October 2026): map keys, not [[array]] list rows. ##
## and api_key if they are in use. Comment them with a hash if they are not. ## ## You MUST uncomment the [header.0], url and api_key for any Starr app. ##
## Uncomment the [[lidarr]] and/or [[readarr]] headers and values if in use. ## ## Uncomment [sonarr.0], [radarr.0], [lidarr.0], and/or [readarr.0] plus the ##
## url and api_key if that app is in use. ##
## Do not set a bare UN_SONARR / UN_FOLDER / UN_WEBHOOK / UN_CMDHOOK. ##
############################################################################### ###############################################################################
############################################################################### ###############################################################################
## ALL LINES BEGINNING WITH A HASH # ARE IGNORED COMMENTS ## ## ALL LINES BEGINNING WITH A HASH # ARE IGNORED COMMENTS ##
@@ -137,11 +208,23 @@ passwords = []
############################################################################### ###############################################################################
############################################################################### ###############################################################################
## Leaving the [[sonarr]] header uncommented (no leading hash #) without also #[sonarr.0]
## uncommenting the api_key (remove the hash #) will produce a startup warning. ## Empty uses the app name (Sonarr, Radarr, and so on). Set this for a
[[sonarr]] ## Sonarr-compatible app such as Sportarr so logs and Discord are not
## tagged Sonarr. Add Whisparr as a Radarr instance with name = "Whisparr".
## Hook exclude matches this name or the app dialect.
## Names must be printable and cannot contain quotes, braces, or angle brackets.
# name = ""
# url = "http://127.0.0.1:8989" # url = "http://127.0.0.1:8989"
# api_key = "0123456789abcdef0123456789abcdef" # api_key = "0123456789abcdef0123456789abcdef"
## Username for HTTP basic authentication on the Starr app, if enabled.
# http_user = ""
## Password for HTTP basic authentication on the Starr app, if enabled.
# http_pass = ""
## Username for Starr native (forms) authentication, if enabled.
# username = ""
## Password for Starr native (forms) authentication, if enabled.
# password = ""
## List of paths where content is downloaded for this app. ## List of paths where content is downloaded for this app.
## Used as fallback if the path the Starr app reports does not exist or is not accessible. ## Used as fallback if the path the Starr app reports does not exist or is not accessible.
# paths = ['/downloads'] # paths = ['/downloads']
@@ -162,16 +245,31 @@ passwords = []
# delete_orig = false # delete_orig = false
## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish. ## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.
# syncthing = false # syncthing = false
## When true, Unpackerr verifies the Starr app HTTPS certificate.
## The default is false for backward compatibility.
# valid_ssl = false
## Per-archive uncompressed-byte cap. Empty uses the app default: ## Per-archive uncompressed-byte cap. Empty uses the app default:
## Sonarr/Whisparr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB. ## Sonarr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB.
## `0` or `0B` disables the cap for this instance. ## `0` or `0B` disables the cap for this instance.
# max_bytes = "" # max_bytes = ""
## Leaving the [[radarr]] header uncommented (no leading hash #) without also #[radarr.0]
## uncommenting the api_key (remove the hash #) will produce a startup warning. ## Empty uses the app name (Sonarr, Radarr, and so on). Set this for a
[[radarr]] ## Sonarr-compatible app such as Sportarr so logs and Discord are not
## tagged Sonarr. Add Whisparr as a Radarr instance with name = "Whisparr".
## Hook exclude matches this name or the app dialect.
## Names must be printable and cannot contain quotes, braces, or angle brackets.
# name = ""
# url = "http://127.0.0.1:7878" # url = "http://127.0.0.1:7878"
# api_key = "0123456789abcdef0123456789abcdef" # api_key = "0123456789abcdef0123456789abcdef"
## Username for HTTP basic authentication on the Starr app, if enabled.
# http_user = ""
## Password for HTTP basic authentication on the Starr app, if enabled.
# http_pass = ""
## Username for Starr native (forms) authentication, if enabled.
# username = ""
## Password for Starr native (forms) authentication, if enabled.
# password = ""
## List of paths where content is downloaded for this app. ## List of paths where content is downloaded for this app.
## Used as fallback if the path the Starr app reports does not exist or is not accessible. ## Used as fallback if the path the Starr app reports does not exist or is not accessible.
# paths = ['/downloads'] # paths = ['/downloads']
@@ -192,14 +290,31 @@ passwords = []
# delete_orig = false # delete_orig = false
## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish. ## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.
# syncthing = false # syncthing = false
## When true, Unpackerr verifies the Starr app HTTPS certificate.
## The default is false for backward compatibility.
# valid_ssl = false
## Per-archive uncompressed-byte cap. Empty uses the app default: ## Per-archive uncompressed-byte cap. Empty uses the app default:
## Sonarr/Whisparr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB. ## Sonarr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB.
## `0` or `0B` disables the cap for this instance. ## `0` or `0B` disables the cap for this instance.
# max_bytes = "" # max_bytes = ""
#[[lidarr]] #[lidarr.0]
## Empty uses the app name (Sonarr, Radarr, and so on). Set this for a
## Sonarr-compatible app such as Sportarr so logs and Discord are not
## tagged Sonarr. Add Whisparr as a Radarr instance with name = "Whisparr".
## Hook exclude matches this name or the app dialect.
## Names must be printable and cannot contain quotes, braces, or angle brackets.
# name = ""
# url = "http://127.0.0.1:8686" # url = "http://127.0.0.1:8686"
# api_key = "0123456789abcdef0123456789abcdef" # api_key = "0123456789abcdef0123456789abcdef"
## Username for HTTP basic authentication on the Starr app, if enabled.
# http_user = ""
## Password for HTTP basic authentication on the Starr app, if enabled.
# http_pass = ""
## Username for Starr native (forms) authentication, if enabled.
# username = ""
## Password for Starr native (forms) authentication, if enabled.
# password = ""
## List of paths where content is downloaded for this app. ## List of paths where content is downloaded for this app.
## Used as fallback if the path the Starr app reports does not exist or is not accessible. ## Used as fallback if the path the Starr app reports does not exist or is not accessible.
# paths = ['/downloads'] # paths = ['/downloads']
@@ -220,17 +335,43 @@ passwords = []
# delete_orig = false # delete_orig = false
## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish. ## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.
# syncthing = false # syncthing = false
## When true, Unpackerr verifies the Starr app HTTPS certificate.
## The default is false for backward compatibility.
# valid_ssl = false
## Per-archive uncompressed-byte cap. Empty uses the app default: ## Per-archive uncompressed-byte cap. Empty uses the app default:
## Sonarr/Whisparr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB. ## Sonarr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB.
## `0` or `0B` disables the cap for this instance. ## `0` or `0B` disables the cap for this instance.
# max_bytes = "" # max_bytes = ""
## When enabled, FLAC files with embedded CUE sheets are split into ## When enabled, FLAC and APE files with CUE sheets are split into
## individual track files. ## individual track files. ape_format and ape_compression choose what
## an APE image becomes.
# split_flac = false # split_flac = false
## ape keeps Monkey's Audio. wav and flac decode the audio.
## Empty means ape. FLAC cannot store 32-bit or float PCM.
## Compression is ignored unless the format is ape.
# ape_format = "ape"
## Used only when ape_format is ape (or empty). A default of 0 is set
## to 2000. Accepted values are 1000, 2000, 3000, 4000, and 5000.
## WAV and FLAC ignore this.
# ape_compression = 0
#[[readarr]] #[readarr.0]
## Empty uses the app name (Sonarr, Radarr, and so on). Set this for a
## Sonarr-compatible app such as Sportarr so logs and Discord are not
## tagged Sonarr. Add Whisparr as a Radarr instance with name = "Whisparr".
## Hook exclude matches this name or the app dialect.
## Names must be printable and cannot contain quotes, braces, or angle brackets.
# name = ""
# url = "http://127.0.0.1:8787" # url = "http://127.0.0.1:8787"
# api_key = "0123456789abcdef0123456789abcdef" # api_key = "0123456789abcdef0123456789abcdef"
## Username for HTTP basic authentication on the Starr app, if enabled.
# http_user = ""
## Password for HTTP basic authentication on the Starr app, if enabled.
# http_pass = ""
## Username for Starr native (forms) authentication, if enabled.
# username = ""
## Password for Starr native (forms) authentication, if enabled.
# password = ""
## List of paths where content is downloaded for this app. ## List of paths where content is downloaded for this app.
## Used as fallback if the path the Starr app reports does not exist or is not accessible. ## Used as fallback if the path the Starr app reports does not exist or is not accessible.
# paths = ['/downloads'] # paths = ['/downloads']
@@ -251,36 +392,11 @@ passwords = []
# delete_orig = false # delete_orig = false
## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish. ## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.
# syncthing = false # syncthing = false
## When true, Unpackerr verifies the Starr app HTTPS certificate.
## The default is false for backward compatibility.
# valid_ssl = false
## Per-archive uncompressed-byte cap. Empty uses the app default: ## Per-archive uncompressed-byte cap. Empty uses the app default:
## Sonarr/Whisparr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB. ## Sonarr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB.
## `0` or `0B` disables the cap for this instance.
# max_bytes = ""
#[[whisparr]]
# url = "http://127.0.0.1:6969"
# api_key = "0123456789abcdef0123456789abcdef"
## List of paths where content is downloaded for this app.
## Used as fallback if the path the Starr app reports does not exist or is not accessible.
# paths = ['/downloads']
## Protocols to process from the download queue. Starr apps historically
## used "torrent" and "usenet" as the protocol strings, but newer versions
## emit the full class names "TorrentDownloadProtocol" and
## "UsenetDownloadProtocol" instead. List every string your app may return,
## separated by commas. The default covers both the legacy and new torrent
## strings. Add "usenet,UsenetDownloadProtocol" if you use a Usenet client.
# protocols = "torrent,TorrentDownloadProtocol"
## How long to wait for a reply from the backend.
# timeout = "10s"
## How long to wait after import before deleting the extracted items.
# delete_delay = "5m"
## If you use this app with NZB you may wish to delete archives after extraction.
## General recommendation is: do not enable this for torrent use.
## Setting this to true deletes the entire original download folder after import.
# delete_orig = false
## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.
# syncthing = false
## Per-archive uncompressed-byte cap. Empty uses the app default:
## Sonarr/Whisparr 20GB, Radarr 75GB, Lidarr 4GB, Readarr 1GB.
## `0` or `0B` disables the cap for this instance. ## `0` or `0B` disables the cap for this instance.
# max_bytes = "" # max_bytes = ""
@@ -295,8 +411,14 @@ passwords = []
## subfolder into a watched folder (defined below) any extractable items in the ## ## subfolder into a watched folder (defined below) any extractable items in the ##
## folder will be decompressed. This has nothing to do with Starr applications. ## ## folder will be decompressed. This has nothing to do with Starr applications. ##
################################################################################## ##################################################################################
#[[folder]] #[folder.0]
# path = '/downloads/auto_extract' # path = '/downloads/auto_extract'
## How often this folder is scanned for new archives.
## Off (`0s`) uses filesystem events (inotify and friends).
## Enable a poll interval if files never show up in the queue, which is
## common on Docker and CIFS. Polling increases disk reads and is not
## recommended when fsnotify works.
# interval = "0s"
## Paths to ignore while watching this folder. Excluded paths and their ## Paths to ignore while watching this folder. Excluded paths and their
## children are not tracked or extracted. ## children are not tracked or extracted.
## Paths may be absolute, or relative to this folder's `path`. ## Paths may be absolute, or relative to this folder's `path`.
@@ -307,7 +429,7 @@ passwords = []
## The default is 10m. Set to 0 to disable all deletes. Deletes also ## The default is 10m. Set to 0 to disable all deletes. Deletes also
## require `delete_files` and/or `delete_original`. Uses Go Duration. ## require `delete_files` and/or `delete_original`. Uses Go Duration.
# delete_after = "10m" # delete_after = "10m"
## Unpackerr extracts archives inside archives. Set this to true to disable recursive extractions. ## Nested archives are extracted by default. Disable recursion to extract only the outer archive.
# disable_recursion = false # disable_recursion = false
## Per-archive uncompressed-byte cap. Empty is unlimited. `0` or `0B` is also unlimited. ## Per-archive uncompressed-byte cap. Empty is unlimited. `0` or `0B` is also unlimited.
# max_bytes = "" # max_bytes = ""
@@ -332,17 +454,56 @@ passwords = []
# move_back = false # move_back = false
## Set this to true if you want this app to extract ISO files with .iso extension. ## Set this to true if you want this app to extract ISO files with .iso extension.
# extract_isos = false # extract_isos = false
## When true, an execute bit stored in the archive is kept for owner,
## group, or other only when file_mode already grants that class access.
## A 6 beside an archived 7 becomes 7, a 4 becomes 5, and a 0 stays 0.
## Off, extracted files use file_mode only. Starr extracts stay off.
## The process umask still applies.
# preserve_exec = false
## Incomplete-download suffixes such as `.part` or `.crdownload`. Extraction
## stays in waiting as long as any matching file is in the watched item's
## top folder. Subfolders are not scanned. The UI and config always store
## a leading period. Waiting items are rechecked every 5s even without the
## poller. Enabling folder poller will double-poll the folder and increase
## disk reads. Useful when fsnotify is not available, and not recommended
## when it is.
# wait_extensions = []
## After start delay, skip watched folders that have no extractable archives.
## They leave waiting without history or webhooks.
# skip_empty = false
####################
### Hook Payload ###
####################
# Extra IDs and custom event titles shared by every webhook and command hook.
[hooks]
## Nested [hooks.custom_ids] table, not an inline map.
## Webhooks get `customIDs` in JSON (`{{index .CustomIDs "url"}}` in templates).
## Command hooks get `UN_CUSTOM_ID_<key>` environment variables.
## Env: UN_HOOKS_CUSTOM_IDS_url=https://…
## [hooks.custom_ids]
## url = "https://unpackerr.example"
## Nested [hooks.titles] table with one field per extract event:
## waiting, queued, extracting, extractfailed, extracted, imported,
## deleting, deletefailed, deleted, extractednothing.
## Empty values keep the built-in English title. Built-in Discord, Slack,
## Telegram, Gotify, and Pushover templates use this string.
## Env: UN_HOOKS_TITLES_EXTRACTING=Archive Found
## [hooks.titles]
## extracting = "Archive Found"
################ ################
### Webhooks ### ### Webhooks ###
################ ################
# Sends a webhook when an extraction queues, starts, finishes, and/or is deleted. # Sends a webhook when an extraction queues, starts, finishes, and/or is deleted.
# Created to integrate with notifiarr.com. # Created to integrate with notifiarr.com.
# Also works natively with Discord.com, Telegram.org, and Slack.com webhooks. # Also works natively with Discord.com, Telegram.org, Slack.com, ntfy, Apprise, and Mattermost webhooks.
# Can possibly be used with other services by providing a custom template_path. # Can possibly be used with other services by providing a custom template_path.
###### Don't forget to uncomment [[webhook]] and url at a minimum !!!! ###### Don't forget to uncomment [webhook.0] and url at a minimum !!!!
#[[webhook]] #[webhook.0]
# url = "https://notifiarr.com/api/v1/notification/unpackerr/api_key_from_notifiarr_com" ## Notifiarr: https://notifiarr.com/api/v1/notification/unpackerr plus headers.X-Api-Key.
## A path API key in a pasted URL is moved to that header.
# url = "https://notifiarr.com/api/v1/notification/unpackerr"
## Provide an optional name to hide the URL in logs. ## Provide an optional name to hide the URL in logs.
## If a name is not provided then the URL is used. ## If a name is not provided then the URL is used.
# name = "" # name = ""
@@ -352,30 +513,40 @@ passwords = []
## The default is [0] and this is an example: ## The default is [0] and this is an example:
# events = [1, 4, 6] # events = [1, 4, 6]
## ===> Advanced Optional Webhook Configuration <=== ## ===> Advanced Optional Webhook Configuration <===
## Used in Discord and Slack templates as bot name, in Telegram as chat_id. ## Discord, Slack, and Mattermost: bot/display name. Telegram: chat_id.
## Gotify, ntfy, and Apprise: optional title prefix. Unused by Notifiarr JSON.
# nickname = "Unpackerr" # nickname = "Unpackerr"
## Also passed into templates. Used in Slack templates for destination channel. ## Also passed into templates. Slack and Mattermost optional channel. Pushover user key.
# channel = "" # channel = ""
## List of apps to exclude. None by default. This is an example: ## Passed into webhook templates. Pushover requires the application token. ntfy sends Authorization Bearer when set. Unused by Discord, Telegram, and Slack incoming webhooks.
# token = ""
## Dialect tokens skip every instance of that API. Any other value matches an instance name. None by default. This is an example:
# exclude = ["readarr", "lidarr"] # exclude = ["readarr", "lidarr"]
## Override internal webhook template for discord.com or other hooks. ## Used when template is empty (automatic). A named template ignores this file.
# template_path = '' # template_path = ''
## Override automatic template detection. Values: notifiarr, discord, telegram, gotify, pushover, slack ## Override automatic template detection. Values: notifiarr, discord, telegram, gotify, pushover, slack, ntfy, apprise, mattermost. Empty uses the URL or template_path.
# template = "" # template = ""
## Default on for Discord webhooks and Telegram sendMessage. Other templates ignore this. Set false to post a new message for every extract event.
# update = true
## Set this to true to ignore the SSL certificate on the server. ## Set this to true to ignore the SSL certificate on the server.
# ignore_ssl = false # ignore_ssl = false
## You can adjust how long to wait for a server response. ## You can adjust how long to wait for a server response.
# timeout = "10s" # timeout = "10s"
## If your custom template uses another MIME type, set this. ## If your custom template uses another MIME type, set this.
# content_type = "application/json" # content_type = "application/json"
## Nested [webhook.0.headers] table. Header names are letters, digits, underscore, or hyphen.
## Applied first; Content-Type and ntfy Authorization Bearer from token still win.
## Notifiarr client key: X-Api-Key. Env: UN_WEBHOOK_0_HEADERS_X-Api-Key=api_key_from_notifiarr_com
## [webhook.0.headers]
## X-Api-Key = "api_key_from_notifiarr_com"
##################### #####################
### Command Hooks ### ### Command Hooks ###
##################### #####################
# Executes a script or command when an extraction queues, starts, finishes, and/or is deleted. # Executes a script or command when an extraction queues, starts, finishes, and/or is deleted.
# All data is passed in as environment variables. Try /usr/bin/env to see what variables are available. # All data is passed in as environment variables. Try /usr/bin/env to see what variables are available.
###### Don't forget to uncomment [[cmdhook]] at a minimum !!!! ###### Don't forget to uncomment [cmdhook.0] at a minimum !!!!
#[[cmdhook]] #[cmdhook.0]
# command = '/downloads/scripts/command.sh' # command = '/downloads/scripts/command.sh'
## Provide an optional name to hide the URL in logs. ## Provide an optional name to hide the URL in logs.
## If a name is not provided the first word in the command is used. ## If a name is not provided the first word in the command is used.
@@ -388,9 +559,8 @@ passwords = []
## The default is [0] and this is an example: ## The default is [0] and this is an example:
# events = [1, 4, 7] # events = [1, 4, 7]
## ===> Optional Command Hook Configuration <=== ## ===> Optional Command Hook Configuration <===
## List of apps to exclude. None by default. This is an example: ## Dialect tokens skip every instance of that API. Any other value matches an instance name. None by default. This is an example:
# exclude = ["readarr", "lidarr"] # exclude = ["readarr", "lidarr"]
## You can adjust how long to wait for the command to run. ## You can adjust how long to wait for the command to run.
# timeout = "10s" # timeout = "10s"
## => Content Auto Generated, 31 AUG 2026 00:07 UTC
@@ -356,6 +356,7 @@ server {
ssl_certificate /etc/nginx/certs/live/cloud.someoneslinux.selfhost.eu/fullchain.pem; ssl_certificate /etc/nginx/certs/live/cloud.someoneslinux.selfhost.eu/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/live/cloud.someoneslinux.selfhost.eu/privkey.pem; ssl_certificate_key /etc/nginx/certs/live/cloud.someoneslinux.selfhost.eu/privkey.pem;
client_max_body_size 10G;
location / { location / {
proxy_pass http://gitea:3000; proxy_pass http://gitea:3000;
# Do not try another upstream on errors # Do not try another upstream on errors