Future Changes Backlog
Last updated: 2026-06-22
This file tracks recommended changes and investigations that were discussed but
not fully implemented. It is intentionally conservative: items here should be
reviewed before action, especially anything that affects DNS, storage,
firewalls, exposed services, or deletion.
Highest Priority
Security-First Operating Principle
Status: standing rule for future VHNIC changes.
Security, anti-intrusion, and anti-tracking are now first-class project goals,
not optional cleanup items. Future work should prefer the safer design even if
it takes a little more setup.
Standing rules:
- Minimize public exposure. Every public port forward should have a named
- Prefer reverse proxy plus explicit routes over direct app-port exposure.
- Do not publicly expose administrative apps such as DSM, Sonarr, Radarr,
- Prefer least-privilege service accounts and scoped helpers over broad sudo or
- Keep secrets out of tracked project files. Store credentials in local
- Keep Pi-hole as the primary privacy/ad/tracker DNS layer unless there is a
- Treat new containers, new port forwards, new DNS records, and new UniFi
- Prefer notification-only or controlled image updates over broad automatic
- Keep appdata backups, restore notes, and rollback paths current before making
- Current Prometheus/Grafana coverage already includes service reachability,
- Since the May 30 Synology hang, a narrow read-only Synology log exporter has
- The most useful next monitoring additions are now:
- a narrow read-only Synology SMART/scrub-age exporter or textfile collector,
- backup freshness panels for Pi-hole/appdata/project reports,
- Windows desktop/Tdarr node health,
- deeper Pi-hole query/block metrics if API credentials are later approved.
- security posture monitoring for public port-forward changes, new UniFi
- Do not build this as arbitrary remote command execution. Use scoped helpers
- Prometheus retention remains time-based at 30 days with no size cap. Recheck
purpose, owner, and review date.
Grafana, Homepage, Pi-hole, NZBHydra2, NZBGet, qBittorrent, Tdarr, or
Homebridge without a separate VPN or identity/2FA layer.
arbitrary remote shell access.
.secrets paths or remote secrets directories with restricted permissions.
deliberate migration plan.
clients as security-relevant changes.
container updates.
major service changes.
Near-term hardening priorities:
1. Build monitoring/reporting for public port-forward drift, new UniFi clients,
SSH failed-login spikes, unexpected Docker containers/images, and DNS record
changes. Initial expected-state plan:
security/SECURITY_POSTURE_MONITORING_PLAN.md.
2. Remove Plex Test and disable Minecraft public forwards. Approved helper:
tools/unifi/Set-UnifiApprovedPortForwards.ps1.
3. Add an identity-aware access layer, such as Authelia, Authentik, or VPN-first
access, before exposing any internal portal or admin dashboard.
4. Consider disabling Synology SSH password authentication after verifying
key-based access and emergency access paths.
5. Review and document all privileged helper scripts and NOPASSWD entries.
6. Enable DNSSEC for ravick5.com after coordinating the Google Cloud DNS
signing step with registrar DS-record publication.
7. Continue tuning Pi-hole lists and local DNS with a privacy-first bias, while
avoiding overblocking that makes troubleshooting chaotic.
Observability Next Monitoring Additions
Status: partly deployed; remaining work is targeted hardening/coverage.
container presence/restarts, container resource usage, Synology filesystem
usage, md/RAID state, Btrfs error counters, disk busy/latency, Plex/Tautulli,
Tdarr, UniFi, and Pi-hole DNS probe health.
been deployed to watch DSM backend timeouts, Btrfs known/unknown block
errors, core dump signals, and storage timeout/reset language.
clients, SSH failed-login spikes, and unexpected Docker container/image
changes.
with explicit read-only commands and no repair/delete capability.
footprint around 2026-06-28 before deciding whether to add a retention size
limit.
Reference:
synology/docker/projects/observability-compose/CURRENT_STATE.md
synology/docker/projects/observability-compose/IMPROVEMENT_PLAN.md
Security Hardening Follow-Up
Status: reviewed 2026-06-01; no breach evidence found, hardening remains.
evidence of compromise was found across the reviewed Synology, Docker, UniFi,
Pi-hole, and Google Cloud DNS evidence.
ravick5.com, but the public zone is currently unsigned
(dnssecConfig.state: off). See google-cloud-dns/DNSSEC_PLAN.md before
enabling it.
Plex Test and Minecraft public forwards are still needed,emergency access paths,
ravick5.com as a coordinated Cloud DNS plus registrarDS-record change,
unexpected Docker container/image changes, and SSH failed-login spikes.
Reference:
security/breach-assessment-20260601.md
synology/security/Capture-SynologySecurityAudit.ps1
Internal Friendly Names / Reverse Proxy
Status: design clarified; implementation should not be DNS-only.
The environment should eventually support internal service names instead of
requiring LAN IP plus port for every app. This would make day-to-day use cleaner
and would also make Homepage/Grafana links easier to maintain.
Recommended shape:
on the LAN.
home.ravick5.com, lan.ravick5.com, or internal.ravick5.com.
sonarr.home.ravick5.com, radarr.home.ravick5.com, grafana.home.ravick5.com, and
homepage.home.ravick5.com to the reverse proxy host.
split this onto a Pi.
public exposure.
the apps.
will see certificate warnings.
Homepage, Pi-hole, or Synology DSM publicly without a separate identity/2FA
layer such as Authelia, Authentik, or VPN-first access.
This is related to, but separate from, the current public Caddy route for Seerr.
Important 2026-06-13 finding: current Caddy uses Synology host ports 8088
and 8443 because DSM owns 80 and 443. DNS cannot encode ports, so simply
adding Pi-hole records for *.home.ravick5.com -> 10.0.0.119 would not provide
clean no-port URLs. Use a dedicated internal proxy IP, a separate proxy host, or
Synology's built-in reverse proxy.
Runbook:
synology/docker/projects/reverse-proxy-compose/INTERNAL_FRIENDLY_NAMES_PLAN.md
Tdarr Post-Completion Follow-Up And Anime Prep
Status: original broad rollout complete; evening queue and Anime prep remain.
file-level transcode errors and zero current health-check errors.
rollout targets.
profile for 20 old Survivor AVI health-check failures.
112 queued transcodes and 98 active jobs with 0 transcode errors and stable DB load. Treat these as the
current evening finish-out queue; recapture after it drains.
1. Recapture Tdarr progress and health after tonight's remaining queue finishes.
2. Review any residual non-HEVC legacy files surgically by library/codec.
3. Prepare an Anime-specific test profile, not a normal cloned rollout.
stay in Lidarr/Picard-style metadata hygiene rather than Tdarr compression.
YouTube had no obvious junk cleanup; compression or retention would be the
only meaningful space lever there.
Reference:
synology/docker/tdarr/README.md
synology/docker/tdarr/COMPLETION_MILESTONES.md
synology/docker/tdarr/NEXT_LIBRARY_ROLLOUT_PLAN.md
synology/docker/music/README.md
synology/docker/YOUTUBE_LIBRARY.md
Music Metadata Hygiene
Status: safe duplicate cleanup done; metadata cleanup remains manual/reviewed.
files were moved to quarantine, not deleted.
/volume1/data/media/_codex_quarantine/music-20260607-safe-duplicates
the filenames/titles differ. Review manually before any move/delete.
AlbumId = 0; do not trigger broadrename/retagging until those are understood.
workflow rather than blind embedded tag edits.
Reference:
synology/docker/music/README.md
Personal Media Protection
Status: hard rule.
/volume1/data/media/personal contains irreplaceable family videos.requested.
Reference:
synology/HANDOFF.md
synology/docker/tdarr/NEXT_LIBRARY_ROLLOUT_PLAN.md
Synology Volume 1 Btrfs Follow-Up
Status: active evacuation and rebuild planning item after Synology Support
identified likely memory-related bit flip corruption.
35,311 checksum/corruption errors, 0 corrected.
btrfs inspect-internal logical-resolve 56885910093824 /volume1.
ERROR: logical ino ioctl: No such file or directory; no live filepath was identified for that logical block.
errors dating back to March 2026. They identified unsupported Crucial
CT16G4SFRA266.C8FF RAM as a likely contributor.
block still logging Btrfs metadata errors, plus md2 self-heal retries that
sometimes ended in give up while DSM still reported the array active.
synology/support-cases/20260614-volume1-btrfs-md2/.
temp_media was created as a temporaryRAID 6/Btrfs landing zone.
/volume4/migration-from-volume1.synology/storage/VOLUME1_REBUILD_MIGRATION_PLAN.md.stop write-heavy services for final true-up, validate the landing copy, then
remove/recreate Volume 1 only after explicit user approval.
outcome if Synology cannot provide a supported non-destructive repair path.
btrfs check --repair on the live filesystem.Reference:
synology/storage/CURRENT_STATE.md
synology/HANDOFF.md
Synology Appdata Backup Plan
Status: planned, not fully implemented.
external USB, another machine/NAS, or cloud/offsite.
be treated as disaster recovery.
Radarr, Lidarr, Prowlarr, NZBHydra2, qBittorrent, and Gluetun.
Reference:
synology/docker/BACKUP_STRATEGY.md
Second Windows Tdarr Node
Status: candidate reachable, not configured.
10.0.0.126.3389 reachable,445 reachable,22 not open. VHNIC-Node-126.
0 workers or very low workers until path translation and cachebehavior are verified.
Reference:
synology/docker/tdarr/native-worker/SECOND_WINDOWS_NODE.md
Public Exposure For Seerr
Status: Caddy reverse proxy project live for Seerr only.
/volume3/docker/reverse-proxy.
80/443, so Caddy publishes on host ports 8088/8443.
synology/docker/projects/reverse-proxy-compose.
/volume1/docker/projects/reverse-proxy-compose.
8088/8443 and has a Let's Encrypt certificate for overseerr.ravick5.com.
80 -> 10.0.0.119:8088 and public 443 -> 10.0.0.119:8443.
seerr:5055.applicationUrl set and trustProxy enabled.cacheImages remains disabled to avoid large disk use. Caddy handlesmixed-content warnings with:
Content-Security-Policy: upgrade-insecure-requests; block-all-mixed-content.
overseerr container is stopped with restart policy disabled; appdataand a timestamped migration backup are retained.
csrfProtection if no proxy-header issues appear.
overseerr.ravick5.comseerr.ravick5.comrequests.ravick5.comoverserr.ravick5.com was removed from DNS and Caddy.unless HTTP/3/QUIC is intentionally desired later.
applicationUrl, trustProxy, and csrfProtection.Reference:
synology/docker/REVERSE_PROXY_OVERSEERR_PLAN.md
synology/docker/OVERSEERR_REVIEW.md
synology/docker/projects/seerr-compose/README.md
google-cloud-dns/README.md
Homepage Remote Access Discussion
Status: discussion needed before any implementation.
short-lived Homarr pilot.
10.0.0.119, 10.0.0.195, 10.0.0.132, and 10.0.0.1.
those internal links will not work from normal remote devices.
value of a compromised account/session.
which would let the existing internal links keep working.
Cloudflare Access, Authentik, Authelia, or another deliberate gate.
intentionally exposed services such as Seerr and, later, Grafana if
hardened.
the access model is chosen and reviewed.
Reference:
synology/docker/projects/homepage-compose/README.md
diagrams/PUBLIC_EXPOSURE.md
synology/docker/projects/reverse-proxy-compose/README.md
Arr Preference Monitoring
Status: direct Sonarr/Radarr helpers are authoritative; Recyclarr is
reference-only unless explicitly reactivated.
1080RealityHD - 720p/1080p synology/docker/arr-preference-audit/20260603-221118/SUMMARY.md
showed 31 pass, 0 warn, 0 fail. This includes the main Radarr profile
change that disables 720p and lower movie grabs.
non-Anime profile behavior is acceptable in practice for incoming grabs.
Reference:
synology/docker/RECYCLARR_PLAN.md
Bazarr Subtitle Pilot
Status: retired 2026-06-14.
Bazarr was added as a conservative subtitle pilot, but the user removed the
webhook and approved retirement because the service kept creating log noise and
had not proven useful. Keep the old plan and helper scripts as historical
reference only; do not expect a running Bazarr container, public route,
Homepage card, or Prometheus probe.
Future subtitle work, if reopened, should start with a fresh decision about
whether subtitles are worth automating at all. If they are, prefer a small
manual test scope before recreating an always-on service.
Reference:
synology/docker/BAZARR_PLAN.md
Audiobook External Access And Ebook Follow-Up
Status: Audiobookshelf remains; ReadAIrr retired 2026-06-14; public access and
manual ingestion workflow remain.
audiobook project on 2026-06-04. https://audiobooks.ravick5.com for ShelfPlayer/app access.
2026-06-14 after repeated expensive rescans and bad imports. Do not recreate
them unless the user explicitly reopens audiobook automation.
roles, test mobile-app login, and decide whether additional auth/VPN is
needed.
live Audiobookshelf library. Use a staging folder and move reviewed finished
files into the organized library path.
reading project. Keep Kavitainternal-only until account setup, library scans, and access policy are
reviewed; keep Mylar3 disconnected from indexers/download clients until the
comic/manhwa acquisition workflow is explicitly approved.
Audiobookshelf, Kavita, and Mylar3 setup first, then decide whether Mylar3 is
worth keeping.
Reference:
synology/docker/projects/audiobook-compose/README.md
synology/docker/projects/reading-compose/README.md
synology/docker/CONTAINER_FOOTPRINT_REVIEW.md
diagrams/PUBLIC_EXPOSURE.md
Optional Media/Arr Tooling To Evaluate
Status: evaluation only; do not add containers by default.
The current preference is to avoid additional always-on containers unless they
replace real manual work or improve safety/visibility. The existing stack is
already broad: Sonarr, Radarr, Lidarr, Prowlarr, NZBHydra2, NZBGet,
qBittorrent/Gluetun, Seerr, Tdarr, Tautulli, Audiobookshelf, Kavita, and Mylar3.
Candidate tools worth evaluating later:
cleanup tied to Plex plus Sonarr/Radarr/Seerr. Treat as high-risk until a
dry-run and approval workflow is designed because it can delete files,
unmonitor items, and clear request records.
and library presentation. This may replace some manual playlist/collection
work, but it should start as scheduled/manual config generation rather than
a constantly changing production process.
and managing Sonarr/Radarr profiles and custom formats, especially Anime.
Current VHNIC policy still keeps direct API helpers authoritative because
previous Recyclarr use risked broader quality-definition drift.
plane for Plex, Radarr/Sonarr, Tautulli, and health checks. Existing
Prometheus/Alertmanager plus Seerr Discord notifications already cover the
most important local alerting path, so this should not be added just for
novelty.
guided setup. Not needed for the current small/private environment unless
user onboarding becomes a real chore.
Items that are lower priority right now:
exists.
workflow proves what is actually missing.
explicit dry-run review are comfortable.
Recommended next step after Tdarr finishes this evening:
1. Capture Tdarr progress and health.
2. Review residual non-HEVC/legacy codec buckets.
3. Decide whether Anime deserves a tiny custom-profile test set.
4. Only after that, choose one optional tool to evaluate, preferably Kometa for
low-risk Plex organization or Maintainerr in dry-run-only mode for cleanup
planning.
Reference:
synology/docker/CONTAINER_FOOTPRINT_REVIEW.md
synology/docker/tdarr/ANIME_PROFILE_PLAN.md
Seerr Request Notifications
Status: configured, pending Seerr restart.
synology/docker/seerr/Enable-SeerrDiscordNotifications.ps1updated Seerr's Discord notification agent using the protected webhook already
stored on the Synology.
/volume1/docker/seerr/settings.json.codex-before-discord-notifications-20260601-223141
is proven.
Plex-user notifications are worth adding.
docs.
Reference:
synology/docker/OVERSEERR_REVIEW.md
synology/docker/projects/seerr-compose/README.md
Pi-hole
Pi-hole Metrics Exporter
Status: future enhancement.
401 Unauthorized without auth, so deeperquery/block/client stats were intentionally not added.
Reference:
synology/docker/projects/observability-compose/CURRENT_STATE.md
pihole/CURRENT_STATE.md
Upstream DNS Simplification
Status: helper prepared; live application not confirmed in tracked docs.
Current behavior is functional. Older tracked captures show many built-in
providers enabled, while dns.upstreams = [] appears to mean no custom
upstreams are configured. A narrow helper now exists at
tools/pihole/Set-PiholeSharedUpstreams.ps1 to apply Quad9 filtered IPv4
upstreams to both Pi-holes, but do not claim that policy is active until a fresh
capture verifies live dns.upstreams.
Future recommendation to review:
and verifying current state.
Reference:
pihole/CONFIG_REVIEW.md
pihole/HANDOFF.md
Pi-hole OS Update Policy
Status: recommendation documented; no automatic OS patching enabled.
Both Pi-holes have apt metadata timers enabled and Pi-hole's own gravity/update
cron jobs present. Neither Pi-hole currently has unattended-upgrades
installed or configured.
Recommendation:
powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\pihole\Capture-PiholeUpdateReadiness.ps1
Reasoning:
PiHole4B has a clean Debian trixie security repository and may be a futurecandidate for security-only unattended upgrades.
PiHolePi4 uses Raspberry Pi/Raspbian bookworm repositories, where a genericunattended-upgrades policy could apply broader changes than intended.
surprise automatic changes across both DNS servers.
Reference:
pihole/OS_UPDATE_POLICY.md
PiHoleEx Replacement
Status: completed 2026-06-13.
PiHoleEx was replaced with the spare RaspberryPi 4 Model B Rev 1.5.
PiHole4B.10.0.0.132 were preserved.backup.
10.0.0.132.codex-maint. pihole/inventory/snapshots/20260613-153931.
Follow-up:
artifact or retire it.
Reference:
pihole/PIHOLEEX_PI4_REPLACEMENT.md
tools/pihole/Prepare-PiHoleExReplacement.ps1
Pi-hole Hostname Alignment
Status: future cleanup after PiHole4B cutover is stable.
PiHole4B.PiHolePi4 should be renamed later to usethe same naming style.
until DNS service, backups, helper scripts, Homepage, Grafana, and docs are
all stable after the replacement.
UniFi client alias, local docs, backup folder naming if desired, and any
dashboard/Homepage labels in one coordinated pass.
UniFi
Observability Metrics Expansion
Status: first pass implemented; deeper counters still open.
wireless clients by AP.
WAN throughput,
switch-port throughput,
AP channel utilization,
retry rates,
roaming/client experience,
and PoE/uplink detail.
on-demand audit path rather than the first choice for an always-on exporter.
Reference:
synology/docker/projects/observability-compose/CURRENT_STATE.md
unifi/HANDOFF.md
Deeper Network Review
Status: inventory and SSH/API access established; review incomplete.
as expected.
Reference:
unifi/HANDOFF.md
unifi/topology/README.md
unifi/system/README.md
Firewall, NAT, And Port Forward Review
Status: captured, not fully remediated.
remediation is complete.
Overseer public 5055 -> 5055 disabled.Overseerr public 80 -> 5055 disabled.QB public 6881 -> 6881 disabled.Minecraft-Oneblock public 19191 -> 19191 disabled.Plex Test public 32401 -> 32400 intentionally still enabled.HTTPS Routing public 443 -> 5055 later disabled and no longer live inNAT as of the 2026-05-22 follow-up check.
Reference:
unifi/security/PORT_FORWARDS.md
unifi/security/DOMAIN_EXPOSURE.md
unifi/security/SECURITY_POSTURE_REVIEW.md
Wi-Fi Review
Status: initial config reviewed; first repeatable helper created; deeper live radio health counters still needed.
unifi/wifi/snapshots/20260621-073006.
sticky, roam poorly, or attach to the farther AP.
powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\unifi\Capture-UnifiWifiHealth.ps1
RSSI, retry rates, PHY mode, roaming events, AP uplink speed, and PoE state
if a reliable UniFi source exposes them.
target, if evidence supports it, is lowering 2.4 GHz power rather than
changing channel widths.
Reference:
unifi/wifi/README.md
Google Cloud DNS And Dynamic DNS
Dynamic Public IP Updater
Status: not implemented.
future safety net.
always-on host.
Reference:
google-cloud-dns/README.md
Docker And Media Automation
Tdarr Library Expansion
Status: broad rollout complete; Anime remains optional and separate.
Movies, TV Shows, and Reality are already covered.
be treated as a controlled pilot with a custom stream-preserving profile.
load, and the 2026-06-11 finish-out queue before enabling any Anime workers.
suited for idle/overnight windows.
Reference:
synology/docker/tdarr/README.md
Tdarr Error Handling
Status: needs review before large-scale rollout.
or replaced through Sonarr/Radarr.
of files.
Anime Automation
Status: partially improved, not finished.
NZBHydra2 indexer behavior, and whether Standard series type remains the
better fit for the user's Anime library.
Reference:
synology/docker/OVERSEERR_REVIEW.md
synology/HANDOFF.md
qBittorrent And Gluetun
Status: review deferred while current VPN path remains stable.
QB public forward 6881 -> 10.0.0.119:6881 is likely a relicfrom the first setup and should be reviewed/remediated after md2 resync.
to the Synology is probably not useful unless intentionally bypassing VPN,
which is not the current design.
Reference:
synology/docker/VPN_QBIT_NZBHYDRA_REVIEW.md
NZBGet Secret Hygiene
Status: future cleanup.
CertStore and SevenZipCmd.
into a local .env or another untracked secret location.
docs.
Hardware Planning
Former SSD Cache Bays
Status: future planning only.
mirrored Volume 3 for high-churn app workloads.
add more HDD capacity to Volume 1, add larger SSDs to Volume 2, or leave bays
empty until a clearer need appears.
Btrfs follow-up are stable.
Reference:
synology/HANDOFF.md
synology/storage/CURRENT_STATE.md
Spare Raspberry Pi 4
Status: now serving as PiHole4B, the secondary Pi-hole replacement.
Potential future uses:
stable, though this is optional rather than required.
Raspberry Pi 5 Arcade Cabinet Refresh
Status: future project candidate.
refresh than for secondary Pi-hole duty.
control-panel/input requirements before imaging.
display connection/resolution, controller encoder type, button mapping,
audio path, power behavior, and whether any existing game/media files need to
be preserved.
stay simple and low-risk.
Lower Priority Cleanup
run.
/volume1 below the agreed comfort threshold over time.assuming the Synology is the bottleneck.