Skip to content

Releases: StealthCat/blockinator-web

v1.20.11

Choose a tag to compare

@StealthCat StealthCat released this 04 Oct 21:29

Changes since v1.20.1.

1.20.11 — Multiple daily schedule windows

  • Add up to 32 independent day/time windows to blocklists, whitelists, and policy targets with a shared timezone and OR matching.
  • Preserve existing single-window schedules through SQLite/MySQL schema upgrades.
  • Add window controls, per-window day presets, complete summaries, and next-transition calculations across overlapping and overnight windows.
  • Validate every saved window and cover weekday/weekend boundaries, DST, round trips, and migration.

1.20.10 — Apply target precedence to scoped lists

  • Use only the highest-priority scheduled target’s list assignments instead of combining endpoint, hostname, and network assignments.
  • Preserve global lists, whitelist-target bypass, and fallback outside target schedules.
  • Keep Policy Tester list explanations consistent with the decision engine and document the precedence change.

1.20.9 — Flush PTR cache

  • Add an authenticated, CSRF-protected PTR cache flush control in Settings → Runtime.
  • Clear learned identities and cached answers, queue tracked clients for fresh resolution, and preserve query history.
  • Discard stale in-flight results and serialize invalidation with policy reloads.

1.20.8 — Compact policy target search

  • Keep Search and Reset sized to their content and aligned with the target filters, with wrapping on narrow screens.

1.20.7 — Compact policy target actions

  • Shorten policy target action labels to Pause, Resume, and Edit.
  • Restore pause/resume controls on whitelist targets using the existing target-state action.

1.20.6 — Clear policy target terminology and polished controls

  • Distinguish blocklist targets from whitelist targets in cards, editors, schedules, and creation buttons.
  • Hide blocking state and pause/resume controls for whitelist targets, whose bypass follows their schedule independently of blocking state.
  • Polish policy target actions with consistent sizing, icons, theme-aware colors, responsive layouts, and keyboard focus states.

1.20.5 — Streamlined README

  • Focus the README on a concise overview, one complete recommended setup, and the stable-main update procedure.
  • Move optional tag installation and checkout-transition instructions into the alternative-installation guide; consolidate setup and navigation text.
  • Preserve every Reddit review and attribution unchanged as the final README section.

1.20.4 — Stable main installation workflow

  • Recommend standard clone and fast-forward pull on stable main, keeping exact release-tag installation as an option.
  • Add safe instructions for moving an existing single-branch tag checkout to main; retain matching release configuration for pinned Docker Hub images.
  • Document dev as the home for unreleased application changes and main for stable code and current documentation, including contributor instructions.

1.20.3 — Pin installation instructions to the stable release

  • Use the current published v1.20.1 tag in both source-build and Docker Hub configuration clone instructions.
  • Replace branch-pull upgrade instructions with explicit tag fetch/checkouts and explain detached HEAD behavior and matching Docker image versions.
  • Clarify the distinction between current source and published release versions; keep release-maintenance guidance consistent.

1.20.2 — Documentation consolidation

  • Keep the recommended source-built Compose quick start in the README and move detailed deployment, user, API, operations, and contributor material into linked guides.
  • Correct ignored-question semantics, system-theme options, incremental PTR reconciliation, and statistics/retention guidance; clarify migration prerequisites and runtime authentication.
  • Consolidate repeated setup, security, and release instructions, and replace the completed TLS implementation checklist with links to current documentation.
  • Update Docker Hub examples to the successfully published 1.20.1 image.
  • Preserve all Reddit reviews unchanged as the final README section. Existing release tags and branches remain unchanged.

Upgrade note: Scoped lists now follow endpoint → hostname → network priority instead of combining assignments. Global lists still apply. Existing schedules are preserved; database upgrades add support for additional time windows.

Full changelog

Blockinator Web v1.20.1

Choose a tag to compare

@StealthCat StealthCat released this 02 Oct 21:38

Highlights

  • Add a read-only Policy Tester that explains matching targets, schedules, candidate lists, and the winning rule.
  • Add searchable, paginated policy targets with dedicated editors, effective status, and the next schedule transition.
  • Improve query history with cursor-based Next/Previous navigation, cached counts and filter choices, and exact/prefix searches.
  • Add query shortcuts to open matched targets/lists and add domains to selected manual block lists or whitelists.
  • Preserve editable form values after failed saves when JavaScript is enabled.
  • Support whitelisted client, network, and reverse-DNS targets with schedule-aware whitelist precedence, plus a default system-theme preference.

Reliability and efficiency

  • Automatically retry failed policy rebuilds and display pending activation and operational warnings.
  • Isolate console reads from policy workers with a bounded worker pool.
  • Replace repeated raw-history statistics scans with transactional retained totals and minute summaries.
  • Maintain MySQL summaries without requiring server-level SUPER privileges or trigger creation; rebuild summaries after verified offline migrations.
  • Run bounded age-retention pruning even without incoming traffic, and use durable incremental PTR backfill.
  • Enforce HH:MM schedule validation, align multipart parsing with import limits, and pass the public HTTPS port through Docker Compose.

Upgrade notes

  • Existing databases receive a one-time statistics backfill on startup; large histories may take longer to initialize. Statistics describe retained queries and decrease as logs are pruned.
  • The retention ceiling remains 5 million rows. Last-page and explicit page-number links retain OFFSET compatibility.
  • Direct external MySQL history edits require an offline summary rebuild.
  • Continue running one application process; multiple workers/replicas require shared policy coordination.
  • Publishing this release starts the validation and multi-architecture Docker Hub workflow. Image availability depends on successful completion of that workflow.

Validation

  • 191 tests passed in the standard suite, with 8 environment-dependent tests skipped.
  • 9 MySQL and migration integration tests passed.
  • Browser checks covered form recovery, query shortcuts, mobile layouts, and light/dark themes.
  • CI passed, including Docker build, Compose/Caddy validation, and benchmark smoke tests.

Release commit: b54f6d1fbb338f840fde631efd90c39aef7b4254

Release branch: release/v1.20.1

See CHANGELOG.md for the full source-version history.

Blockinator Web v1.19.2

Choose a tag to compare

@StealthCat StealthCat released this 27 Sep 15:19
f0586e7

Highlights

  • Polished management interface with scalable artwork, responsive layouts, and light/dark theme improvements.
  • Expanded the Settings timezone selector to all available IANA time zones.
  • Improved policy consistency, authentication security, admin responsiveness, and operational diagnostics.

Fixes and improvements

  • Serialize policy rebuilds and use consistent database snapshots while keeping policy reads lock-free.
  • Make list creation/replacement atomic and invalidate refresh caches when source settings or content change.
  • Correct mixed DNS requests so non-ignored questions still receive policy evaluation.
  • Preserve secure session-cookie settings, add bounded login rate limiting, and keep newly generated API keys out of redirect URLs.
  • Reject insecure bootstrap credentials on fresh installations and strengthen request/upload validation.
  • Validate blocklist download destinations at connection time, including redirects; private sources require the BLOCKLIST_PRIVATE_HOSTS allowlist.
  • Move blocking admin work into a bounded worker pool, cache/coalesce statistics queries, and refresh query-log rows without full-page rendering.
  • Improve logging failure handling, shutdown draining, statistics refresh reliability, and refresher error reporting.
  • Add readiness checks and authenticated runtime diagnostics.

Upgrade notes

  • Fresh installations must supply non-example bootstrap credentials. Existing database credentials retain precedence.
  • Private/local blocklist sources must be explicitly allowlisted.
  • The experimental automatic-update feature was reverted and is not included in this release.

Validation

  • 155 local tests passed; 7 environment-dependent tests skipped.
  • Python compilation, JavaScript syntax, and whitespace checks passed.
  • GitHub CI passed for the release commit.

Release snapshot: f0586e7eb14a0f25b2b268d536cb9b4d8bbd0c3d

Branch: release/v1.19.2

Includes merged PRs #12, #13, and #15.