Files
resources/master_sync.toml
T

1400 lines
33 KiB
TOML

[[server]]
name = "Unraid"
[server.config]
external_address = "http://172.24.3.12"
enabled = true
##
[[server]]
name = "synology"
[server.config]
enabled = true
##
[[stack]]
name = "audiobookshelf"
tags = ["Active"]
[stack.config]
server = "Unraid"
linked_repo = "compose-audiobookshelf"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "birdnet-go"
[stack.config]
server = "Unraid"
linked_repo = "compose-birdnet-go"
##
[[stack]]
name = "changedetection_io"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-changedetection_io"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "duplicati"
[stack.config]
server = "Unraid"
file_contents = """
services:
duplicati:
image: duplicati/duplicati:stable
container_name: duplicati
environment:
- PUID=0
- PGID=0
- TZ=America/New_York
- SETTINGS_ENCRYPTION_KEY=${SETTINGS_ENCRYPTION_KEY}
- DUPLICATI__WEBSERVICE_ALLOWED_HOSTNAMES=duplicati.andrewamason.tech
- DOTNET_SYSTEM_IO_DISABLEFILELOCKING=true
- DUPLICATI__WEBSERVICE_PASSWORD=${DUPLICATI__WEBSERVICE_PASSWORD}
volumes:
- /mnt/user/docker/duplicati/config:/data/Duplicati
- /mnt/user/docker/duplicati/db:/config # per-job local databases (DBPath=/config/*.sqlite)
- /mnt/user:/mnt/source/
expose:
- 8200
restart: unless-stopped
networks:
- Internal
labels:
- traefik.enable=false
- net.unraid.docker.icon=file:///mnt/user/docker/icons/duplicati.png
networks:
Internal:
name: Internal_Network
external: true
"""
environment = """
# VARIABLE = value
SETTINGS_ENCRYPTION_KEY=8cwCehuik1ZSsleD8dnd
DUPLICATI__WEBSERVICE_PASSWORD=Washable-Balsamic-Wool-Valium-Hatless-Boggle1-Gully
DUPLICATI_LICENSE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiJkOTMzMjRiZS1kMzRjLTQxYTctODJiOC1mZmVlMjYzYmM3NmYiLCJsaWQiOiJmYjk3NzYzZTRjYzU3NDU5OTgyYjNhN2E1YmM3Mzg0YiIsInR5cCI6ImxpY2Vuc2UiLCJpc3MiOiJsaWNkdXAiLCJhdWQiOiJkdXAifQ.NbNs-KyuJlD9q0dfYP7ELW_-m21FcV9eRxFHN8uhXxo
"""
##
[[stack]]
name = "glance"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-glance"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "timezone.env", track = true }
]
##
[[stack]]
name = "grimmory"
tags = ["Testing"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-grimmory"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "homeassistant_io"
tags = ["Active"]
[stack.config]
server = "Unraid"
poll_for_updates = true
auto_update = true
linked_repo = "compose-homeassistant_io"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
env_file_path = "HA.env"
additional_env_files = [
{ path = ".env", track = true }
]
environment = """
# Home Assistant Full Stack
MQTT_PORT=1883
INFLUX_PORT=8087
INFLUX_USER=admin
INFLUX_PASSWORD=ndfgsdfgldskfnbdfj
INFLUX_ORG=home
INFLUX_BUCKET=homeassistant
GRAFANA_ADMIN_PASSWORD=UvxikNBndldic27gpmicVzK
"""
##
[[stack]]
name = "homebox"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-homebox"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "homepage"
tags = ["Active"]
[stack.config]
server = "Unraid"
linked_repo = "compose-homepage"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "icloud_pd"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-icloudpd"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "icloud_shared.env", track = true },
{ path = "icloud_andrew.env", track = true }
]
##
[[stack]]
name = "immich"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-immich"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "immich.env", track = true },
{ path = "immich-frame.env", track = true },
{ path = ".env", track = true }
]
##
[[stack]]
name = "jellyfin"
tags = ["Active"]
[stack.config]
server = "Unraid"
project_name = "media_apps"
auto_update = true
linked_repo = "compose-jellyfin"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "karakeep"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-karakeep"
reclone = true
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "karakeep.env", track = true },
{ path = ".env", track = true }
]
##
[[stack]]
name = "kavita"
tags = ["Decom"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-kavita"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "lubelogger"
tags = ["Active"]
[stack.config]
server = "Unraid"
linked_repo = "compose-lubelogger"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "makemkv"
tags = ["As_Needed"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-makemkv"
reclone = true
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "manyfold"
tags = ["As_Needed"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-manyfold"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "mealie"
tags = ["Testing"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-mealie"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "metrics"
[stack.config]
server = "Unraid"
poll_for_updates = true
linked_repo = "compose-metrics"
environment = """
# metrics stack
TZ=America/New_York
GRAFANA_ADMIN_PASSWORD=UvxikNBndldic27gpmicVzK
INFLUX_TELEGRAF_TOKEN=nVgWIqKyVgLvQixVoirh1v107kGN5eETi6yNICzNUmZigcIBWWcQlDClYELVixrIG_4axiDrY3cz7LL_8JnKng==
SONARR_API_KEY=4a392773bb664d4491f1475acf961afe
RADARR_API_KEY=40a3b3ae2f174385b41a10aed360947e
QBIT_API_KEY=qbt_fvYsuRSBtSsz73qVhBC9mryTScvA
PROWLARR_API_KEY=c8803bd24f78428db897d0bbe57c5863
TDARR_API_KEY=tapi_x-ZrhTpZh
TAUTULLI_API_KEY=jU1eV9NTbH9Fw0Ohh-X3zHdAWr-PTHw_
JELLYFIN_API_KEY=4e510aa82a9d4048a293e7c5f6a2b867
UNPOLLER_INFLUX_TOKEN=0cXQdFl5Jt2RiVSBGqOVzNuCOPcFPDWLFcIUwOHr3ED7OStR3JOZ2A5SsM5poxrVz0fVpZQphof-gHnqjJBaOA==
UNIFI_USER=homeassistant_net
UNIFI_PASS=mh2609!LM!@123
UPTIME_KUMA_API_KEY=uk1_Imp3ddbsKtagWF_I5NYd3JGccecynG5jCLioy5km
NTFY_TOKEN_GRAFANA=tk_p6079bgpqn7yv52z5p7r81skyjbvx
"""
##
[[stack]]
name = "notify"
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-notify"
reclone = true
additional_env_files = [
{ path = "ntfy.env", track = true },
{ path = ".env", track = true }
]
##
[[stack]]
name = "obsidian-sync"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-obsidian-sync"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "andrew-obsidian-vault.env", track = true }
]
##
[[stack]]
name = "open-vscode"
tags = ["As_Needed"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-open-vscode"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "osiris"
[stack.config]
server = "Unraid"
auto_pull = false
poll_for_updates = true
auto_update = true
webhook_enabled = false
file_contents = """
name: osiris
# Self-contained deploy of https://github.com/simplifaisoul/osiris (upstream is
# not ours, so nothing is committed there). The web app uses the prebuilt GHCR
# image, osiris-intel builds straight from the upstream git repo, and the nginx
# tile cache config is inlined below (copied from upstream nginx/nginx.conf).
# LAN access is https://osiris.andrewamason.tech via SWAG (osiris.subdomain.conf),
# which proxies to osiris-cache:8080 on Internal_Network. The cache gzips the
# large JSON APIs and caches map tiles. No host ports are published.
services:
osiris:
image: ghcr.io/simplifaisoul/osiris:latest
container_name: osiris
env_file:
- path: .env
required: false
environment:
- NODE_OPTIONS=--dns-result-order=ipv4first
- NODE_ENV=production
- PORT=3000
- HOSTNAME=0.0.0.0
- INTEL_URL=http://osiris-intel:4000
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- osiris-intel
restart: unless-stopped
labels:
net.unraid.docker.icon: file:///mnt/user/docker/icons/global-threat-map.png
net.unraid.docker.webui: https://osiris.andrewamason.tech/
osiris-cache:
image: nginx:alpine
container_name: osiris-cache
networks:
- default
- Internal_Network
configs:
- source: nginx_conf
target: /etc/nginx/nginx.conf
volumes:
- /mnt/user/docker/osiris/nginx-cache:/var/cache/nginx
depends_on:
- osiris
restart: unless-stopped
labels:
net.unraid.docker.icon: file:///mnt/user/docker/icons/global-threat-map.png
osiris-intel:
build:
context: https://github.com/simplifaisoul/osiris.git#master:intel
image: osiris-intel:local
container_name: osiris-intel
# Upstream's check hits "localhost", which resolves to ::1 while the server
# listens on IPv4 only, so it never passes.
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:4000/health"]
interval: 30s
timeout: 5s
start_period: 60s
restart: unless-stopped
labels:
net.unraid.docker.icon: file:///mnt/user/docker/icons/global-threat-map.png
networks:
Internal_Network:
external: true
configs:
nginx_conf:
content: |
worker_processes auto;
events { worker_connections 1024; }
http {
gzip on;
gzip_vary on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_proxied any;
gzip_types application/json application/javascript application/xml
application/geo+json text/plain text/css text/javascript image/svg+xml;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=tile_cache:100m
max_size=10g inactive=365d use_temp_path=off;
resolver 1.1.1.1 8.8.8.8 valid=300s;
server {
listen 8080;
# Map tiles from CARTO, cached for a year
location ~ ^/proxy/tiles/(?<target_domain>(?:[a-d]\.)?basemaps\.cartocdn\.com)/(?<target_path>.*)$$ {
proxy_pass https://$$target_domain/$$target_path$$is_args$$args;
proxy_set_header Host $$target_domain;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_hide_header Set-Cookie;
proxy_ignore_headers Set-Cookie;
proxy_cache tile_cache;
proxy_cache_valid 200 304 365d;
proxy_cache_valid any 1m;
proxy_cache_lock on;
add_header Cache-Control "public, max-age=31536000, immutable";
add_header X-Cache-Status $$upstream_cache_status;
}
location ~ ^/proxy/tiles/ { return 403; }
# Everything else goes to the app
location / {
proxy_pass http://osiris:3000;
proxy_set_header Host $$host;
proxy_set_header X-Real-IP $$remote_addr;
proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $$scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
proxy_buffering on;
proxy_buffer_size 16k;
proxy_buffers 32 64k;
proxy_busy_buffers_size 128k;
proxy_http_version 1.1;
proxy_set_header Upgrade $$http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
"""
environment = """
# ═══════════════════════════════════════════════════════════════════════════
# OSIRIS — Environment Template
# Copy this file to `.env` (or `.env.local`) and fill in values as needed.
#
# IMPORTANT — read before filling anything in:
# OSIRIS works fully WITHOUT any third-party API keys. Aviation, maritime,
# satellites, fires, earthquakes, weather, news, CVEs, etc. all use public
# keyless feeds (adsb.lol, celestrak.org, NASA FIRMS open CSV, USGS, …).
#
# As of this revision the application code only actually reads SCANNER_URL
# and SCANNER_KEY. The other keys below are OPTIONAL and reserved for higher
# rate limits / future data sources — set them only if you extend the code or
# hit rate limits on the public feeds.
# ═══════════════════════════════════════════════════════════════════════════
# ─────────────────────────────────────────────────────────────────────────
# RECON SCANNER BACKEND ── the ONLY keys the current code consumes ──
# Powers the RECON toolkit (quick/ssl/headers/rdns/subdomains/tech/whois/
# geoloc/vuln scans). Requires running the separate OSIRIS scanner backend.
# SCANNER_KEY here MUST equal the backend's OSIRIS_KEY. Generate one with:
# openssl rand -hex 32
# Leave both empty to simply disable the RECON features (UI returns 503).
# ─────────────────────────────────────────────────────────────────────────
SCANNER_URL=
SCANNER_KEY=
# ─────────────────────────────────────────────────────────────────────────
# CLOUDFLARE RADAR ── read by the code; enables two map layers ──
# Powers the "Internet Outages" and "Attack Origins" layers under
# NET & EVENT INTEL (https://radar.cloudflare.com/).
# Free: any Cloudflare account → My Profile → API Tokens → Create Token →
# Custom token with permission "Account · Radar · Read".
# Leave empty to disable — /api/cloudflare-radar returns 503 and both layer
# toggles stay hidden in the UI. The GDELT Events layer is unaffected and
# needs no key.
# ─────────────────────────────────────────────────────────────────────────
CLOUDFLARE_API_TOKEN=
# ─────────────────────────────────────────────────────────────────────────
# CHAIN INTEL ── optional; the RECON "CHAIN INTEL" tab works without these ──
# Baseline wallet forensics (BTC/ETH/SOL balance, transaction history,
# counterparties, OFAC SDN screening, risk scoring) is fully keyless via
# mempool.space, Blockscout and the public Solana RPC.
#
# These only deepen it; /api/osint/crypto?probe=1 reports which are active:
# ETHERSCAN_API_KEY https://etherscan.io/apis — internal txs, richer ETH
# HELIUS_API_KEY https://helius.dev — parsed Solana transfers.
# Without it, SOL transfer amounts and counterparties
# stay blank: the public RPC lists signatures only.
# ─────────────────────────────────────────────────────────────────────────
ETHERSCAN_API_KEY=
HELIUS_API_KEY=
# ─────────────────────────────────────────────────────────────────────────
# OPTIONAL DATA-SOURCE KEYS (not read by current code — future / upgrades)
# ─────────────────────────────────────────────────────────────────────────
# NASA FIRMS — active wildfire hotspots.
# Free, instant. Enter an email at the page below and the MAP_KEY is emailed
# to you (looks like 'abcdef1234567890abcdef1234567890'). Limit: 5000 req /
# 10 min. The app already uses the keyless FIRMS CSV; a key only matters if
# you switch to the per-area FIRMS API.
# Get it: https://firms.modaps.eosdis.nasa.gov/api/map_key/
FIRMS_API_KEY=
# OpenSky Network — aviation (higher rate limits than the keyless feed).
# Free account. Since March 2025 OpenSky uses OAuth2 (username/password auth
# is dropped). Create an account, open the Account page, create a new API
# client, and copy the client_id / client_secret.
# Get it: https://opensky-network.org/ (Account → API client)
OPENSKY_CLIENT_ID=
OPENSKY_CLIENT_SECRET=
# N2YO — satellite tracking / pass predictions.
# Free. Register, then Profile page → scroll down → "generate API key".
# The key cannot be changed once issued. Limit: 1000 req / hour.
# Get it: https://www.n2yo.com/login/register/ (then Profile)
N2YO_API_KEY=
# aisstream.io — live maritime AIS vessel positions via WebSocket.
# Free. Register, then create a key on the API Keys page. Used in the
# subscription message to wss://stream.aisstream.io/v0/stream.
# Get it: https://aisstream.io/ (sign up → API Keys)
AIS_API_KEY=
# ─────────────────────────────────────────────────────────────────────────
# RUNTIME
# ─────────────────────────────────────────────────────────────────────────
# Host port the web UI is published on (container always listens on 3000).
# Change this if 3000 is already taken on your host.
OSIRIS_PORT=3026
# Comma-separated list of public Telegram channel usernames (no @) to scrape
# for the "Telegram OSINT" map layer. Overrides the curated default set.
# Channels must have web preview enabled (most well-known OSINT channels do).
# Default if unset:
# osintdefender,insiderpaper,aljazeeraenglish,nexta_live,war_monitor
# OSIRIS_TELEGRAM_CHANNELS=
# Set by the Docker image already — override only if needed.
# NODE_ENV=production
# PORT=3000
# HOSTNAME=0.0.0.0
"""
##
[[stack]]
name = "ossint-web-check"
tags = ["As_Needed"]
[stack.config]
server = "Unraid"
poll_for_updates = true
auto_update = true
linked_repo = "compose-OSSINT-Webcheck"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "paperless-ngx"
tags = ["As_Needed"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-paperless-ngx"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "stack.env", track = true },
{ path = ".env", track = true }
]
##
[[stack]]
name = "plex"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-plex"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "resilio-sync"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-resilio-sync"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "romm"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-romm"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "servarr"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-servarr"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = "timezone.env", track = true },
{ path = ".env", track = true }
]
##
[[stack]]
name = "stirling-pdf"
tags = ["Active"]
[stack.config]
server = "Unraid"
linked_repo = "compose-stirling-pdf"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "swag"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-swag"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[stack]]
name = "traefik"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-traefik"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
env_file_path = "traefik.env"
environment = """
TZ=US/New_York
CF_API_EMAIL=andrew_amason@live.com
CLOUDFLARE_DNS_API_TOKEN=cfat_zAU3sVB9CNQSt7YrIY5e4DB3i1AX4bQToa35Tnqg9841df09
"""
##
[[stack]]
name = "uptime-kuma"
[stack.config]
server = "synology"
auto_update = true
auto_update_skip_services = ["uptime-kuma-init"]
linked_repo = "compose-uptime-kuma-synology"
reclone = true
additional_env_files = [
{ path = ".env", track = true }
]
##
[[stack]]
name = "wallos"
tags = ["Active"]
[stack.config]
server = "Unraid"
auto_update = true
linked_repo = "compose-wallos"
webhook_secret = "Spotting-Drainpipe-Freely-Outwit-Opponent7"
##
[[deployment]]
name = "Technitium_2"
[deployment.config]
server = "synology"
image.type = "Image"
image.params.image = "technitium/dns-server:15.6.0"
poll_for_updates = true
auto_update = true
restart = "always"
volumes = """
/volume1/docker/technitium_2/config:/etc/dns
"""
environment = """
TZ=America/New_York
"""
##
[[build]]
name = "audiobookshelf"
[build.config]
builder = "local"
linked_repo = "source-audiobookshelf"
image_registry = [
{ domain = "gitea.andrewamason.tech", account = "andrewamason", organization = "docker" }
]
##
[[build]]
name = "grimmory"
[build.config]
builder = "local"
git_account = "andrewamason"
repo = "grimmory-tools/grimmory"
image_registry = [
{ domain = "gitea.andrewamason.tech", account = "andrewamason", organization = "docker" }
]
##
[[build]]
name = "icloudpd"
[build.config]
builder = "local"
linked_repo = "icloudpd"
dockerfile_path = "icloudpd.dockerfile"
image_registry = [
{ domain = "gitea.andrewamason.tech", account = "andrewamason", organization = "docker" }
]
##
[[build]]
name = "swag"
[build.config]
builder = "local"
linked_repo = "swag"
image_registry = [
{ domain = "gitea.andrewamason.tech", account = "andrewamason", organization = "docker" }
]
##
[[build]]
name = "web-check"
[build.config]
builder = "local"
linked_repo = "web-check"
image_registry = [
{ domain = "gitea.andrewamason.tech", account = "andrewamason", organization = "docker" }
]
##
[[repo]]
name = "Master_Resource_Sync"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "andrewamason/resources"
##
[[repo]]
name = "compose-OSSINT-Webcheck"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/OSSINT-Webcheck"
##
[[repo]]
name = "compose-audiobookshelf"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/audiobookshelf"
##
[[repo]]
name = "compose-automation"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/automation"
##
[[repo]]
name = "compose-birdnet-go"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/birdnet-go"
##
[[repo]]
name = "compose-changedetection_io"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/changedetection_io"
##
[[repo]]
name = "compose-filestash"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/filestash"
##
[[repo]]
name = "compose-freshrss"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/freshrss"
##
[[repo]]
name = "compose-glance"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/Dashboards"
##
[[repo]]
name = "compose-grimmory"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/grimmory"
##
[[repo]]
name = "compose-homeassistant_io"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/HomeAssistant"
##
[[repo]]
name = "compose-homebox"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/HomeBox"
##
[[repo]]
name = "compose-homepage"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/homepage"
##
[[repo]]
name = "compose-icloudpd"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/iCloud_PD"
##
[[repo]]
name = "compose-immich"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/immich"
##
[[repo]]
name = "compose-jellyfin"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/Media_Apps"
##
[[repo]]
name = "compose-karakeep"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/karakeep"
##
[[repo]]
name = "compose-kavita"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/kavita"
##
[[repo]]
name = "compose-lubelogger"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/lubelogger"
##
[[repo]]
name = "compose-makemkv"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/makemkv"
##
[[repo]]
name = "compose-manyfold"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/manyfold"
env_file_path = "manyfold.env"
##
[[repo]]
name = "compose-mealie"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/Mealie"
##
[[repo]]
name = "compose-metrics"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/metrics"
##
[[repo]]
name = "compose-notify"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/notify"
##
[[repo]]
name = "compose-obsidian-sync"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/obsidian-sync"
##
[[repo]]
name = "compose-open-vscode"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/Open-VSCode"
##
[[repo]]
name = "compose-paperless-ngx"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/paperless-ngx"
##
[[repo]]
name = "compose-plex"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/Media-Streaming"
##
[[repo]]
name = "compose-repoflow"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/RepoFlow"
##
[[repo]]
name = "compose-resilio-sync"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/Resilio-Sync"
##
[[repo]]
name = "compose-romm"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/Romm"
##
[[repo]]
name = "compose-scanopy"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/Scanopy"
##
[[repo]]
name = "compose-servarr"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/servarr"
##
[[repo]]
name = "compose-sonarqube"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/SonarQube"
##
[[repo]]
name = "compose-stirling-pdf"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/stirling-pdf"
##
[[repo]]
name = "compose-swag"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/swag"
##
[[repo]]
name = "compose-traefik"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_account = "andrewamason"
repo = "HomeLab/reverse-proxy"
##
[[repo]]
name = "compose-uptime-kuma-synology"
[repo.config]
server = "synology"
git_provider = "gitea.andrewamason.tech"
git_account = "andrewamason"
repo = "HomeLab/uptime-kuma-synology"
##
[[repo]]
name = "compose-wallos"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "HomeLab/WallOS"
##
[[repo]]
name = "icloudpd"
[repo.config]
server = "Unraid"
builder = "local"
git_account = "andrewamason"
repo = "boredazfcuk/docker-icloudpd"
branch = "master"
##
[[repo]]
name = "master-config"
[repo.config]
server = "Unraid"
git_provider = "gitea:3000"
git_https = false
git_account = "andrewamason"
repo = "andrewamason/resources"
##
[[repo]]
name = "osiris"
[repo.config]
server = "Unraid"
builder = "local"
git_account = "andrewamason"
repo = "simplifaisoul/osiris"
branch = "master"
##
[[repo]]
name = "source-audiobookshelf"
[repo.config]
server = "Unraid"
builder = "local"
git_account = "andrewamason"
repo = "advplyr/audiobookshelf"
branch = "master"
##
[[repo]]
name = "swag"
[repo.config]
server = "Unraid"
builder = "local"
git_account = "andrewamason"
repo = "linuxserver/docker-swag"
branch = "master"
##
[[repo]]
name = "web-check"
[repo.config]
server = "Unraid"
builder = "local"
git_account = "andrewamason"
repo = "lissy93/web-check"
branch = "master"
##
[[procedure]]
name = "Backup Core Database"
description = "Triggers the Core database backup at the scheduled time."
tags = ["system"]
config.schedule = "Every day at 01:00"
[[procedure.config.stage]]
name = "Stage 1"
enabled = true
executions = [
{ execution.type = "BackupCoreDatabase", execution.params = {}, enabled = true }
]
##
[[procedure]]
name = "Global Auto Update"
description = "Pulls and auto updates Stacks and Deployments using 'poll_for_updates' or 'auto_update'."
tags = ["system"]
config.schedule_enabled = false
config.schedule = "Every day at 03:00"
[[procedure.config.stage]]
name = "Stage 1"
enabled = true
executions = [
{ execution.type = "GlobalAutoUpdate", execution.params.skip_auto_update = false, enabled = true }
]
##
[[procedure]]
name = "Rotate Server Keys"
description = "Rotates all currently connected Server keys."
tags = ["system"]
config.schedule = "Every day at 06:00"
[[procedure.config.stage]]
name = "Stage 1"
enabled = true
executions = [
{ execution.type = "RotateAllServerKeys", execution.params = {}, enabled = true }
]
##
[[alerter]]
name = "ntfy"
[alerter.config]
enabled = true
endpoint.type = "Ntfy"
endpoint.params.url = "http://ntfy/homelab?auth=QmVhcmVyIHRrX2RwbzQweGoyODNuZ3d3b25vajB3MGtsMmY5eTRk"
##
[[builder]]
name = "local"
[builder.config]
type = "Server"
params.servers = ["Unraid"]
##
[[builder]]
name = "synology"
[builder.config]
type = "Server"
params = {}
##
[[resource_sync]]
name = "master-sync"
[resource_sync.config]
linked_repo = "Master_Resource_Sync"
resource_path = ["master_sync.toml"]
managed = true
include_variables = true
include_user_groups = true
##
[[variable]]
name = "SONARQUBE_HOST"
value = "sqa_35f53592be1dfce277bc27d51ee0a4e32a858604"
is_secret = true
##
[[variable]]
name = "SONARQUBE_TOKEN"
value = "http://172.24.3.12:9001"
is_secret = true