Releases: LuisCMerrick/MirrorRelay
Release list
v0.0.21
v0.0.21 supersedes the withdrawn v0.0.20 Release.
Highlights:
- Fixes startup upgrades from pre-v0.0.20 persisted Web settings by overlaying legacy records on current YAML/default values while retaining strict unknown-field validation.
- Preserves existing configuration, database, users, history and cache; no purge or instance recreation is required.
- Adds a dedicated Passkey authentication group in Settings and an Admin shortcut from My account when Passkeys are disabled.
- Moves the GitHub shortcut to the lower-right corner of the login page.
- Preserves backward-compatible three-, six- and eight-digit appearance accent colors.
Upgrade normally from any earlier version, including an installed v0.0.20 build. The release pipeline attaches verified amd64/arm64 DEB, RPM and tar.gz packages, a vendored source archive, SHA256SUMS, and publishes the matching multi-platform Docker image.
v0.0.17
Security and release hardening for MirrorRelay v0.0.17.
Highlights:
- Redacts repository credentials and raw runtime diagnostics from every non-Admin role, with Admin-only sensitive configuration and cluster-node credential management.
- Encrypts Coordinator Edge mutation tokens at rest with a file-backed AES-256-GCM rotation keyring.
- Trusts X-Real-IP only from configured ingress peers, keeps inferred public URLs on validated HTTPS authorities, and defaults client-IP exposure off.
- Validates and precompiles bounded package policies with fail-closed persisted-state handling.
- Uses the official latest multi-architecture image in the bilingual four-method Quick Start and Compose model.
- Strengthens package and container binary provenance checks.
The Release Build workflow publishes verified linux/amd64 and linux/arm64 packages, the vendored source archive, and Docker Hub tags 0.0.17, v0.0.17, and latest.
MirrorRelay v0.0.16
MirrorRelay v0.0.16 closes the v0.0.15 audit findings and hardens the release baseline.
Highlights:
- Replaces preset administrator credentials with atomic first-use Admin registration, protected by the configured administration host/path and CIDR boundary.
- Supports both APT DEB822 (
.sources) and traditionalsources.listoutput. - Applies a calmer, consistent bilingual Web UI with progressive disclosure; Managed Upstream Nginx technical details and Nginx snippets are hidden until requested.
- Fixes all ten v0.0.15 audit findings across distributed routing, replay protection, credential boundaries, logging privacy and HTML auxiliary resources.
- Upgrades Managed Upstream Nginx to 1.30.4, Go to 1.26.6, pins the vulnerability scan, and verifies exact static Nginx binaries for amd64 and arm64 packages.
- Keeps release output limited to DEB, RPM, tar.gz and a vendored source archive; no container image is published.
Upgrade note: remove the obsolete admin.initial_username and admin.initial_password YAML keys (and any corresponding environment variables/password-file setting) before starting v0.0.16. Strict configuration loading intentionally rejects these removed keys.
See CHANGELOG.md for the complete change list and verify downloads with SHA256SUMS.
MirrorRelay v0.0.15
Highlights
- Hardened distributed control-plane synchronization and cache-purge propagation with authenticated Edge receivers, authoritative Active fingerprints, atomic activation, and verified acknowledgements.
- Enforced consistent URL, DNS, address, redirect, TLS, and credential policy for cluster and Webhook outbound traffic.
- Added persistent Light, Dark, and Auto themes to the login page and administration header, including a complete light palette and system-theme tracking.
- Clarified the single active Webhook destination model and added explicit DingTalk, Feishu/Lark, WeCom, Slack, custom JSON, and running-configuration test targets.
- Fixed scheduler persistence, warm-up endpoint generation, Active publication, Viewer credential redaction, and Managed Upstream Nginx rollback behavior.
Release artifacts
The release workflow builds and verifies DEB, RPM, and tar.gz packages for linux/amd64 and linux/arm64. It also publishes mirrorrelay-0.0.15-source-with-vendor.tar.gz for offline source builds and includes every artifact in SHA256SUMS.
Container images are not part of this release.
v0.0.12
MirrorRelay v0.0.12 Release
Highlights
- Settings State Discrepancy & False Restart Prompt Resolution:
- Eliminated false "Saved values differ from the running process; restart MirrorRelay" warnings on the settings page by normalizing dynamic appearance configs (
UIEnhancement),nilvs empty slice representations (AdminCIDRs), and duration string formatting across comparison routines.
- Eliminated false "Saved values differ from the running process; restart MirrorRelay" warnings on the settings page by normalizing dynamic appearance configs (
- Wildcard Rewrite Host & Upstream Redirect Mirror Matching:
- Enhanced
isAllowedRewriteOriginwith wildcard subdomain matching (*.acc.umu.se,*.debian.org,*.ubuntu.com,*.rockylinux.org,*.pkgbuild.com,*.archlinux.org), enabling seamless proxying and caching for Debian CD/Live ISO and other mirrors that redirect via geo-dispatchers.
- Enhanced
- CI Automation on Push:
- Configured GitHub Actions CI workflow to trigger automatically on direct pushes to
main.
- Configured GitHub Actions CI workflow to trigger automatically on direct pushes to
v0.0.11
MirrorRelay v0.0.11 Release
Highlights
- Docker / OCI Registry Health Check Handshake Compliance:
- Aligned health checker probe validation with the OCI Distribution Specification and Docker Registry v2 API: unauthenticated
/v2/probes receivingHTTP 401 UnauthorizedwithWww-Authenticatechallenge headers are recognized as healthy endpoints alongsideHTTP 200 OK.
- Aligned health checker probe validation with the OCI Distribution Specification and Docker Registry v2 API: unauthenticated
- Disabled Repository State Semantics & UI Normalization:
- Fixed health state resolution for disabled repositories (
Enabled = falseorHealthCheckEnabled = false) to explicitly return"disabled"instead of"unknown". - Updated Web UI dashboard, repository table, and health view to render neutral
"Disabled"(已禁用) badges and suppress alarm indicators for disabled mirrors.
- Fixed health state resolution for disabled repositories (
- Operating System ISO / Image Repository Support & Templates:
- Added native
isorepository type support across core registry, routing, and proxy pipelines. - Added built-in profiles and interactive help guides for major OS distributions: Ubuntu Releases (ISO), Debian CD/Live ISO, Rocky Linux ISO, Arch Linux ISO, and Generic ISO / OS Images.
- Added interactive Client Setup Generator downloads and multi-threaded CLI commands (
aria2c -x 16,wget -c,curl -C -,sha256sum -c) for ISO repositories.
- Added native
Included Features (v0.0.10)
- Smart Cache Warm-Up & Predictive Pre-Fetching Engine (
warmup): Recursive metadata extraction for APT, RPM, PyPI with concurrency & bandwidth limiting (default off). - Distributed Multi-Node Cluster Edge Synchronization & Purge Broadcast: Manifest synchronization & distributed cache purge broadcast.
- Zero-Copy / X-Accel-Redirect Binary Bypass Acceleration: Adaptive direct bypass to Managed Upstream Nginx for kernel zero-copy sendfile.
- Enterprise Security, RBAC & Multi-Channel Webhook Alerting: Role-based access control, Package Guard supply chain protection, JSON audit trails, and multi-platform webhooks (DingTalk, Feishu, WeCom, Slack).
- Vector SVG Analytics & Real-Time Log Streaming Console: Hourly traffic charts, status distribution donuts, and live log terminal.
v0.0.5
v0.0.5 - Modern Control Plane UI & Modular Architecture
Highlights
-
Control Plane Design System & Visual Overhaul (
app.css):- Deep obsidian and slate surface hierarchy (
#060911,#0a0e1a,#0f172a,#151f34) with refined frosted glassmorphism headers (backdrop-filter: blur(12px)). - Cyber Cyan accent branding with animated emerald breathing pulses for real-time online status.
- Interactive micro-animations: subtle card elevation lift (
translateY(-2px)), button press feedback (scale(0.98)), and smooth transition states.
- Deep obsidian and slate surface hierarchy (
-
Unified Native SVG Vector Icon Suite (
js/icons.js):- Introduced a comprehensive, lightweight SVG icon system across all 13 sidebar navigation items, header actions, metric cards, topology nodes, repository tables, and modal dialogs.
- Replaced all text-only action lists with sleek, compact chip button clusters.
-
Integrated Layout & Seamless Header Navigation:
- Embedded bilingual language switcher directly into the sticky top control bar, eliminating floating overlap and ensuring full clearance for all header actions.
- Upgraded sidebar with branded logo mark, category section grouping (
Core,Gateway,Cluster & Ops,Logs & System,Admin), and user profile card.
-
Cloud Topology Pipeline & Metric Grids:
- Redesigned visual architecture pipeline (
Clients ➔ Ingress ➔ MirrorRelay ➔ Upstream Nginx ➔ Origins) with protocol badges, animated connectors, and live status badges. - Metric cards grid with dedicated icon chips, monospace numbers, and real-time status indicators.
- Redesigned visual architecture pipeline (
-
Modal Dialog & Form Experience Hardening:
- Fixed modal scrolling across all viewport heights with pinned sticky headers and footers, ensuring action buttons are always accessible.
- Upgraded table UX with search filtering, latency badges, and one-click URL copying.
v0.0.4
v0.0.4
Highlights
-
UI Enhancement, Themes & Appearance Customization:
- Full theme customization support: Light, Dark, and System modes with configurable accent colors.
- Customizable site title, header branding, and login page branding.
- Appearance management page in Web UI, database persistence (
appearance_settings), config validation, and administrative REST API endpoints (/appearance,/appearance/reset).
-
Repository Browser & Interactive Help System:
- Implemented Repository Browser file exploration mode with local file caching and directory tree navigation.
- Built-in interactive Help guide generator (
/help/,/help/<slug>/,/help/templates) covering 10 major package ecosystems (APT, RPM, PyPI, Docker/OCI, npm, Maven, Go, NuGet, Cargo, Conda). - Embedded zero-dependency SVG icon set in
internal/browser/with safe UI fallback mode.
-
Go Codebase Modularization (<20KB Refactoring):
- Completely refactored and modularized oversized Go files across packages
internal/help/,internal/config/,internal/upstreamnginx/,internal/database/,internal/proxy/, andinternal/api/. - Guaranteed 100% of all Go source files across the entire codebase are strictly under 20KB (largest is 18KB), ensuring high maintainability and clean single-responsibility boundaries.
- Preserved 100% test coverage with complete
-racecompliance and multi-architecture build verification.
- Completely refactored and modularized oversized Go files across packages
-
Documentation & Routing Updates:
- Synchronized paired English and Chinese documentation for Appearance, Themes, and Help features in
docs/configuration.md,docs/configuration.zh-CN.md,docs/web-ui.md, anddocs/web-ui.zh-CN.md. - Added Debian Security upstream profile and client example handling.
- Synchronized paired English and Chinese documentation for Appearance, Themes, and Help features in
v0.0.3
Changelog
v0.0.3
- Documentation & Open Source Overhaul:
- Restructured README with clear one-line positioning, architecture topology, Why MirrorRelay comparison, Target Compatibility, and 5-minute Quick Start.
- Added dedicated deep-dive guides:
docs/quick-start.md,docs/architecture.md,docs/docker-oci.md,docs/distributed.md,docs/security.md, and paired Chinese versions. - Added
ROADMAP.mdandCONTRIBUTING.md. - Harmonized Quick Start and Installation guides with
sudo systemctl enable --now mirrorrelay.service. - Fixed Distributed Routing documentation to accurately reflect allowed modes (
hybrid,cidr,geo,priority) and Coordinator 503 behavior when no edge is available.
- Security & Quality Hardening:
- Added SSRF validation to Cluster Node Health Checker (
internal/cluster/checker.go). - Strengthened Content-Security-Policy headers and public index security.
- Added package-level documentation across all Go modules.
- Hardened systemd service unit with strict Linux namespace protections.
- Added unit test coverage for
internal/accesslogandinternal/limit.
- Added SSRF validation to Cluster Node Health Checker (
- Web UI & i18n Improvements:
- Fixed dynamic placeholder formatting for localized strings (
L('text %s', val)). - Improved mobile drawer responsiveness, ARIA accessibility, and visual feedback for save/restart actions.
- Fixed dynamic placeholder formatting for localized strings (
v0.0.2
- Renamed project from RepoGate to MirrorRelay
- Added Web UI in-place service restart functionality
- Decoupled i18n language dictionaries into standalone resource files (
locales/en.js,locales/zh.js)
v0.0.1
- Initial release with pull-through repository proxying and Managed Upstream Nginx data plane
- Embedded bilingual Web UI and REST API
- Multi-architecture DEB, RPM, and tar.gz release packaging
MirrorRelay v0.0.2
MirrorRelay v0.0.2
What's Changed
- Full Repository Rename: Renamed the entire project, packages, modules, services, and documentation from
RepoGatetoMirrorRelay. - Web UI In-Place Restart: Added graceful service restart directly from the Web UI Settings and System pages (
POST /system/restart), allowing configuration changes to be applied immediately with automatic reconnection. - Web UI i18n Resource Decoupling: Decoupled static dictionary text and translation resources into standalone language files (
locales/en.jsandlocales/zh.js), completely separating presentation resources from functional JavaScript logic. - Release Packages: Verified DEB, RPM, and tar.gz release packages for
linux/amd64andlinux/arm64.