Skip to content

Releases: routegate/RouteGate

RouteGate v0.2.0-rc.2

RouteGate v0.2.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 08:17
36a2b72

What's Changed

  • fix: show RU and FI flags in dashboard node map by @ikaevus in #496
  • Guide remote VPN Node onboarding and fix Reality auto setup by @ikaevus in #497
  • Validate Reality handshake target on Agent before apply by @ikaevus in #498

Full Changelog: v0.2.0-rc.1...v0.2.0-rc.2

RouteGate v0.2.0-rc.1

RouteGate v0.2.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@ikaevus ikaevus released this 28 Sep 20:47
6a96c6b

What's Changed

  • [RG-104] Remove demo data from the production Dashboard by @ikaevus in #117
  • [RG-105] Remove legacy Agent API and UI layer by @ikaevus in #119
  • [RG-106] Harden browser boundary without session redesign by @ikaevus in #121
  • [RG-108] Make Config Deploy history controllable by @ikaevus in #124
  • [RG-109] Add bounded Config Deploy lifecycle retention by @ikaevus in #126
  • [RG-110] Build real admin Security section by @ikaevus in #129
  • [RG-110A] Align Security session buttons with existing UI by @ikaevus in #130
  • RG-107 — VPN Account Management & Scalability by @ikaevus in #131
  • RG-111 — Dashboard Runtime Data by @ikaevus in #132
  • RG-112 Phase 1 — Delivery Core by @ikaevus in #134
  • RG-112 Phase 2 — Email Delivery by @ikaevus in #135
  • RG-112 Phase 3 — Guided Send Access UX by @ikaevus in #136
  • RG-112 Phase 4 — Telegram Delivery by @ikaevus in #138
  • RG-112 Phase 5 — WhatsApp Business Delivery by @ikaevus in #139
  • RG-112 Phase 6 — Delivery Hardening & Production E2E by @ikaevus in #140
  • RG-112A — Delivery provider Next Action UX by @ikaevus in #141
  • RG-112B — Managed delivery provider settings by @ikaevus in #144
  • RG-112C — Telegram pairing and managed recipients by @ikaevus in #146
  • RG-112D — Repair VPN client profile uniqueness drift by @ikaevus in #150
  • RG-112E — Retire WhatsApp Delivery channel by @ikaevus in #153
  • RG-113A — Observability Domain Foundation by @ikaevus in #159
  • RG-113B — Bounded Agent Telemetry by @ikaevus in #160
  • RG-113C — Health Evaluation by @ikaevus in #161
  • RG-113D Alert Engine by @ikaevus in #162
  • RG-113E Alert Delivery Integration by @ikaevus in #163
  • RG-113F — Typed Diagnostics by @ikaevus in #164
  • RG-113G — Prometheus Surface by @ikaevus in #165
  • RG-113G — Managed Prometheus Installer by @ikaevus in #166
  • RG-113H — Analytics Overview & World Map by @ikaevus in #167
  • RG-113I — Production-like Observability Validation by @ikaevus in #168
  • RG-113J — Analytics UI polish by @ikaevus in #169
  • RG-113K — Production-like deploy automation by @ikaevus in #170
  • RG-113L — Guided map location placement by @ikaevus in #171
  • RG-113M — Automatic server geolocation by @ikaevus in #173
  • RG-114 — Deployment history lifecycle by @ikaevus in #174
  • RG-115 — Automatic map redetection and config status alignment by @ikaevus in #175
  • RG-116 — Refresh automatic geolocation after public IP changes by @ikaevus in #176
  • RG-117 — Fix GeoIP resolution for PostgreSQL inet host notation by @ikaevus in #177
  • RG-118 — Make automatic GeoIP placement prompt by @ikaevus in #178
  • RG-119 — Align config version status badges by @ikaevus in #179
  • RG-120 — Show node details on world map click by @ikaevus in #180
  • RG-121 — Interactive world map navigation by @ikaevus in #181
  • RG-122 — Collapsible map inspector by @ikaevus in #182
  • RG-123 — Exact config status badge alignment by @ikaevus in #183
  • RG-124 — Stabilize Config Versions grid alignment by @ikaevus in #184
  • RG-125 — Use shared subgrid for Config Versions columns by @ikaevus in #185
  • RG-126 — Make map node details copyable by @ikaevus in #186
  • RG-127 — Localize observability runtime presentation by @ikaevus in #187
  • RG-129 — User Portal operational self-service by @ikaevus in #189
  • RG-130 — Gate User Portal by session and fix mobile safe areas by @ikaevus in #190
  • RG-131 — Fix User Portal mobile responsiveness by @ikaevus in #191
  • RG-112F — Finalize SMTP connectivity diagnostics by @ikaevus in #192
  • RG-132 — Fill Observability map stage by @ikaevus in #193
  • RG-133 — Add Observability map pan control by @ikaevus in #194
  • RG-134 — Responsive Observability interactions by @ikaevus in #195
  • RG-135 — Fix Admin mobile shell width by @ikaevus in #196
  • RG-136 — Managed Grafana / Historical Analytics by @ikaevus in #199
  • RG-114A: Node roles and protocol capability foundation by @ikaevus in #201
  • RG-114B: Remote VPN Node bootstrap and inventory by @ikaevus in #202
  • RG-114C: VPN Core adapter boundary by @ikaevus in #203
  • RG-114D: Certificate lifecycle and recovery by @ikaevus in #204
  • RG-114E: Native WireGuard adapter by @ikaevus in #205
  • RG-114F: Native Hysteria2 adapter by @ikaevus in #206
  • [RG-114G] Add Shadowsocks and MTProto adapters by @ikaevus in #207
  • [RG-114H] Node Groups, Balancing Targets & Routing Extensions by @ikaevus in #208
  • [RG-114I] Explainable Automatic Selection Foundation by @ikaevus in #209
  • [RG-114I] Harden automatic selection transactions by @ikaevus in #210
  • RG-114-UI: add spacing between Server Details sections by @ikaevus in #211
  • RG-114-UI: unblock production-like RG-114 deployment by @ikaevus in #212
  • RG-114J: multi-protocol VPN account profiles by @ikaevus in #213
  • RG-114-UI: acceptance fixes for security history and server inventory by @ikaevus in #214
  • RG-114J: surface multi-protocol client selection and polish security sessions by @ikaevus in #215
  • RG-114J: architecture closeout for multi-protocol account profiles by @ikaevus in #216
  • RG-114-UI: enforce Management Node VPN-plane boundary by @ikaevus in #217
  • RG-114-UI: lock automatic selection acceptance invariants by @ikaevus in #218
  • RG-114-UI: label protocol settings correctly in navigation by @ikaevus in #219
  • RG-114-UI: expose Management, VPN, and Hybrid node creation by @ikaevus in #220
  • RG-114-UI: surface per-account protocol selection by @ikaevus in #221
  • RG-114-UI: make protocol controls context-specific by @ikaevus in #222
  • RG-114-UI: polish routing profile spacing by @ikaevus in #223
  • RG-114-UI: remove contradictory offline Agent headline by @ikaevus in #224
  • RG-114-UI: clarify automatic selection deployment order by @ikaevus in #225
  • RG-114-UI: make server creation success role-neutral by @ikaevus in #226
  • RG-114-UI: eliminate legacy config-deploy dead end by @ikaevus in #227
  • RG-114-UI: expose server operational next actions by @ikaevus in #228
  • RG-114-UI: guide unassigned VPN accounts before client setup by @ikaevus in #229
  • RG-114-UI: make account protocol selection effective end-to-end by @ikaevus in #230
  • RG-114-UI: keep one protocol control per VPN account by @ikaevus in #231
  • RG-114-UI: expose effective protocol in User Portal by @ikaevus in #232
  • RG-114-UI: serialize server IPs as host addresses by @ikaevus i...
Read more

RouteGate v0.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 22:42
407b08a

RouteGate v0.1.0

RouteGate v0.1.0 is the first public MVP release of RouteGate: an open-source, self-hosted Linux VPN Management Platform.

This release closes the initial MVP milestone with a production-like Clean VPS path validated end to end on Ubuntu 24.04 LTS.

What is included

The supported v0.1.0 workflow is:

Clean VPS
→ RouteGate installer
→ PostgreSQL + Manager + Admin UI + nginx/HTTPS + local Agent
→ secure /setup activation
→ Guided Workflow
→ install sing-box through RouteGate
→ configure VLESS / Reality
→ create the first VPN account
→ Config Deploy
→ persistent client profile / QR / VLESS link
→ working VPN connection

RouteGate manages the infrastructure lifecycle through the product model:

RouteGate Manager → RouteGate Agent → VPN Core

Highlights

  • Clean VPS Installer for the supported single-node Ubuntu deployment.
  • Native systemd services for Manager and Agent.
  • PostgreSQL persistence and migrations.
  • nginx + Let's Encrypt HTTPS as the public management endpoint.
  • Secure first access through a high-entropy, single-use /setup activation link.
  • Automatic local All-in-One Server and Agent registration during installation.
  • Guided Workflow / Next Action First onboarding driven by real system state.
  • Allow-listed sing-box installation and service lifecycle through RouteGate Agent.
  • VLESS / Reality server configuration with a recommended All-in-One setup.
  • VPN accounts and persistent client profiles.
  • QR code and VLESS link delivery for third-party clients.
  • Config Deploy lifecycle: render, validate, apply, start/restart, health check, and rollback foundations.
  • Routing Profiles / Split Tunnel foundations with Direct, VPN, and Block actions.
  • Traffic usage and limits foundations.
  • User Portal foundations and access hardening.
  • Version, schema, and Agent compatibility reporting.
  • English-first UI with Russian localization.

Supported installation

The live-validated v0.1.0 installation target is:

Ubuntu 24.04 LTS
amd64
single VPS
native systemd deployment

Before installation, point a DNS A record at the VPS and make TCP 80/443 reachable.

Install the latest published RouteGate release:

curl -fsSL https://raw.githubusercontent.com/ikaevus/RouteGate/main/install.sh \
  | sudo bash

Pin v0.1.0 explicitly:

curl -fsSL https://raw.githubusercontent.com/ikaevus/RouteGate/main/install.sh \
  | sudo bash -s -- \
      --domain vpn.example.com \
      --email owner@example.com \
      --version v0.1.0

See docs/deployment/clean-vps-installer.md for the full installation contract and recovery behavior.

All-in-One network layout

The recommended first-run layout keeps the management and VPN listeners separate:

RouteGate HTTPS / nginx    TCP 443
VLESS / Reality            TCP 8443

The recommended VLESS / Reality setup uses TCP, xtls-rprx-vision, a newly generated Reality keypair, a random Short ID, and the server hostname as the initial Reality server name/handshake target.

Important lifecycle behavior

The Clean VPS Installer installs the RouteGate management platform, not the VPN Core.

After first administrator activation, RouteGate guides the administrator to install sing-box as an explicit allow-listed action. A newly installed sing-box may remain inactive and unconfigured. That is expected: installed and running with a valid RouteGate configuration are separate states.

The first successful Config Deploy owns the first real sing-box startup after RouteGate has rendered and validated a complete configuration.

Validation

The final production-like Clean VPS acceptance passed on us.routegate.org.

Validated end-to-end behavior included:

  • clean Ubuntu 24.04 LTS installation;
  • secure /setup activation;
  • automatic local Agent registration;
  • Guided Workflow;
  • sing-box installation through RouteGate;
  • VLESS / Reality configuration;
  • first VPN account;
  • Config Deploy;
  • persistent client profile / QR / VLESS link;
  • real client connectivity;
  • full host reboot;
  • automatic service recovery;
  • VPN connectivity after reboot.

Validated third-party clients:

  • V2Box
  • V2RayTun

The final accepted persistent client profile used fingerprint=firefox for the working Reality path.

Release artifacts

The GitHub Release publishes:

routegate-v0.1.0-linux-amd64.tar.gz
routegate-v0.1.0-linux-arm64.tar.gz
SHA256SUMS

The release workflow verifies the checksums and required bundle structure before publication.

The arm64 bundle establishes the multi-architecture packaging contract, but Ubuntu 24.04 LTS amd64 is the v0.1.0 live Clean VPS support boundary.

Security notes

The supported installer path includes these release boundaries:

  • downloaded release bundles require SHA-256 verification;
  • unsafe archive paths and links are rejected;
  • Manager listens on loopback behind nginx/HTTPS;
  • PostgreSQL is local-only;
  • the installer avoids silently overwriting unrelated active host services;
  • the first-access token is high entropy, time-limited, and single-use;
  • bootstrap administrator environment values are removed after initialization;
  • Agent infrastructure mutations use explicit allow-listed operations rather than an arbitrary remote shell API.

Security vulnerabilities should be reported through the process described in SECURITY.md, not public issues.

Known boundaries / Post-MVP

v0.1.0 intentionally does not include:

  • RG-101C compatibility auto-tuning and advanced client-profile controls;
  • additional VPN protocols or VPN Cores;
  • appliance image work;
  • Kubernetes or HA;
  • managed/automatic RouteGate updates;
  • official RouteGate mobile clients.

These are not release blockers for the supported MVP contract.

Source and license

RouteGate is licensed under AGPLv3-or-later.

The RouteGate name, logo, and official-build designation are governed separately from the software license; see TRADEMARKS.md and NOTICE.

Open code. Protected brand. Trusted official builds.

RouteGate RG-102 Guided Setup validation

Choose a tag to compare

What's Changed

  • Add auth/users/roles foundation: migrations, session auth, password hashing, handlers, and docs by @ikaevus in #1
  • Add migration 000004 to extend servers and agents schema and create server registration tokens by @ikaevus in #2
  • Agents & Servers: registry overhaul, registration tokens, token hashing, and repository refactor by @ikaevus in #3
  • Add server v1 API, registration token generation, and server handler refactor by @ikaevus in #4
  • Agent registration and heartbeat API: token handling, repository changes, and tests by @ikaevus in #5
  • Task 5 — Agent v0.1 by @ikaevus in #6
  • Task 6 — Frontend servers list by @ikaevus in #8
  • Task 7 — Frontend server details by @ikaevus in #9
  • servers: add LegacyGet admin endpoint and tests by @ikaevus in #10
  • RG-50: expose config apply job status details by @ikaevus in #17
  • RG-50: add config versions and apply status UI by @ikaevus in #18
  • RG-10: rename Go module path by @ikaevus in #12
  • RG-50: add Manager config lifecycle foundation by @ikaevus in #13
  • RG-50: stage and validate configs on Agent by @ikaevus in #14
  • RG-50: apply staged configs on Agent by @ikaevus in #15
  • RG-50: restart and healthcheck sing-box after config apply by @ikaevus in #16
  • RG-40: add VPN accounts backend foundation by @ikaevus in #19
  • RG-40: add subscription tokens and QR payload endpoints by @ikaevus in #20
  • RG-42: add sing-box client config renderer by @ikaevus in #22
  • RG-43: add VLESS Reality credentials foundation by @ikaevus in #23
  • RG-44: Add VLESS Reality admin API by @ikaevus in #24
  • RG-45 VLESS / Reality Admin UI by @ikaevus in #25
  • RG-46 Reality keypair generation by @ikaevus in #26
  • RG-47 Subscription QR and client config UI by @ikaevus in #27
  • Rg 47a scannable qr code UI by @ikaevus in #28
  • RG-48 — VPN Client E2E Test by @ikaevus in #29
  • RG-49 — VPN Accounts Hardening by @ikaevus in #30
  • RG-81: User Portal backend foundation by @ikaevus in #31
  • RG-82 — User Portal Frontend Shell by @ikaevus in #32
  • RG-83: Add User Portal subscription self-service foundation by @ikaevus in #33
  • RG-84 — User Portal Access Hardening by @ikaevus in #34
  • RG-70 — Traffic Stats / Limits backend foundation by @ikaevus in #35
  • RG-71 — Traffic Stats Admin UI by @ikaevus in #36
  • RG-72 — Agent Traffic Collection Foundation by @ikaevus in #37
  • RG-73 — Traffic Usage E2E / Dev Scenario by @ikaevus in #38
  • RG-74 — Traffic Limit Enforcement Foundation by @ikaevus in #39
  • RG-75: exclude over-limit accounts from rendered config by @ikaevus in #40
  • RG-60 — Routing Profiles / Split Tunnel Foundation by @ikaevus in #41
  • RG-61 — Routing Profiles Admin UI by @ikaevus in #42
  • RG-62 — Routing Profiles Server Assignment by @ikaevus in #43
  • RG-63 — Routing Profiles Validation & Hardening by @ikaevus in #44
  • RG-64 Routing Profiles Render E2E by @ikaevus in #45
  • RG-65 Public Subscription Split Tunnel E2E by @ikaevus in #46
  • [RG-90] MVP Deployment / Release Readiness by @ikaevus in #47
  • [RG-91] Audit Log Foundation by @ikaevus in #48
  • [RG-91] Subscription Token Hardening by @ikaevus in #49
  • [RG-91] Agent Registration Hardening by @ikaevus in #50
  • [RG-91] Secrets Handling Baseline by @ikaevus in #51
  • [RG-91] Config Apply Safety by @ikaevus in #52
  • [RG-91] Manager Agent Trust by @ikaevus in #53
  • [RG-91] RBAC Admin Sessions by @ikaevus in #54
  • [RG-91] Security Baseline Closeout by @ikaevus in #55
  • RG-80: Admin UI and User Portal product polish baseline by @ikaevus in #56
  • RG-80: Dashboard visual alignment to reference v0.1 by @ikaevus in #57
  • RG-80: Core feature screens polish pass by @ikaevus in #58
  • RG-80: Dashboard reference fidelity pass by @ikaevus in #59
  • RG-80: Core feature screens reference polish by @ikaevus in #60
  • RG-80: Login auth shell polish by @ikaevus in #61
  • RG-80: Language switcher and locale persistence by @ikaevus in #63
  • RG-82: Brand logo UI integration by @ikaevus in #65
  • RG-80: Dashboard map asset cleanup by @ikaevus in #66
  • [RG-90] MVP v0.1 Release Candidate / Acceptance Pass by @ikaevus in #67
  • [RG-90] UI / i18n Acceptance Fixes by @ikaevus in #73
  • [RG-90] Runtime Apply Readiness by @ikaevus in #74
  • RG-80: Dashboard final MVP UI polish by @ikaevus in #75
  • RG-85 Localization QA Foundation by @ikaevus in #76
  • [RG-90] Fix agent sing-box apply payload staging by @ikaevus in #77
  • docs: record MVP v0.1 acceptance pass by @ikaevus in #78
  • docs: add systemd smoke test follow-up by @ikaevus in #79
  • RG-86: Polish User Portal QR and long-value UI handling by @ikaevus in #80
  • RG-86 follow-up: polish Admin login/logout UX by @ikaevus in #81
  • RG-86 follow-up: polish servers table row spacing by @ikaevus in #82
  • RG-93: Add open-source licensing and project boundary docs by @ikaevus in #83
  • RG-96: add update and versioning foundation by @ikaevus in #85
  • RG-86: Polish UI spacing and density by @ikaevus in #84
  • RG-87: add server creation UI by @ikaevus in #86
  • RG-87 follow-up: add safe server deletion by @ikaevus in #87
  • RG-87 follow-up: add server editing by @ikaevus in #88
  • RG-87 follow-up: guide agent registration from server page by @ikaevus in #89
  • [RG-88] Improve server connection onboarding by @ikaevus in #91
  • [RG-89] Add guided VPN Core status workflow by @ikaevus in #93
  • [RG-89A] Add guided VPN Core service controls by @ikaevus in #97
  • [RG-89B] Add VPN Core installation workflow by @ikaevus in #98
  • [RG-97C] Add public website foundation by @ikaevus in #101
  • [RG-97D] Polish public website and prepare GitHub Pages deployment by @ikaevus in #103
  • [RG-98A] Refresh public GitHub project page by @ikaevus in #105

Full Changelog: https://github.com/ikaevus/RouteGate/commits/rg102-validation-582b5f4

RouteGate RG-101 Clean VPS validation

Pre-release

Choose a tag to compare

What's Changed

  • Add auth/users/roles foundation: migrations, session auth, password hashing, handlers, and docs by @ikaevus in #1
  • Add migration 000004 to extend servers and agents schema and create server registration tokens by @ikaevus in #2
  • Agents & Servers: registry overhaul, registration tokens, token hashing, and repository refactor by @ikaevus in #3
  • Add server v1 API, registration token generation, and server handler refactor by @ikaevus in #4
  • Agent registration and heartbeat API: token handling, repository changes, and tests by @ikaevus in #5
  • Task 5 — Agent v0.1 by @ikaevus in #6
  • Task 6 — Frontend servers list by @ikaevus in #8
  • Task 7 — Frontend server details by @ikaevus in #9
  • servers: add LegacyGet admin endpoint and tests by @ikaevus in #10
  • RG-50: expose config apply job status details by @ikaevus in #17
  • RG-50: add config versions and apply status UI by @ikaevus in #18
  • RG-10: rename Go module path by @ikaevus in #12
  • RG-50: add Manager config lifecycle foundation by @ikaevus in #13
  • RG-50: stage and validate configs on Agent by @ikaevus in #14
  • RG-50: apply staged configs on Agent by @ikaevus in #15
  • RG-50: restart and healthcheck sing-box after config apply by @ikaevus in #16
  • RG-40: add VPN accounts backend foundation by @ikaevus in #19
  • RG-40: add subscription tokens and QR payload endpoints by @ikaevus in #20
  • RG-42: add sing-box client config renderer by @ikaevus in #22
  • RG-43: add VLESS Reality credentials foundation by @ikaevus in #23
  • RG-44: Add VLESS Reality admin API by @ikaevus in #24
  • RG-45 VLESS / Reality Admin UI by @ikaevus in #25
  • RG-46 Reality keypair generation by @ikaevus in #26
  • RG-47 Subscription QR and client config UI by @ikaevus in #27
  • Rg 47a scannable qr code UI by @ikaevus in #28
  • RG-48 — VPN Client E2E Test by @ikaevus in #29
  • RG-49 — VPN Accounts Hardening by @ikaevus in #30
  • RG-81: User Portal backend foundation by @ikaevus in #31
  • RG-82 — User Portal Frontend Shell by @ikaevus in #32
  • RG-83: Add User Portal subscription self-service foundation by @ikaevus in #33
  • RG-84 — User Portal Access Hardening by @ikaevus in #34
  • RG-70 — Traffic Stats / Limits backend foundation by @ikaevus in #35
  • RG-71 — Traffic Stats Admin UI by @ikaevus in #36
  • RG-72 — Agent Traffic Collection Foundation by @ikaevus in #37
  • RG-73 — Traffic Usage E2E / Dev Scenario by @ikaevus in #38
  • RG-74 — Traffic Limit Enforcement Foundation by @ikaevus in #39
  • RG-75: exclude over-limit accounts from rendered config by @ikaevus in #40
  • RG-60 — Routing Profiles / Split Tunnel Foundation by @ikaevus in #41
  • RG-61 — Routing Profiles Admin UI by @ikaevus in #42
  • RG-62 — Routing Profiles Server Assignment by @ikaevus in #43
  • RG-63 — Routing Profiles Validation & Hardening by @ikaevus in #44
  • RG-64 Routing Profiles Render E2E by @ikaevus in #45
  • RG-65 Public Subscription Split Tunnel E2E by @ikaevus in #46
  • [RG-90] MVP Deployment / Release Readiness by @ikaevus in #47
  • [RG-91] Audit Log Foundation by @ikaevus in #48
  • [RG-91] Subscription Token Hardening by @ikaevus in #49
  • [RG-91] Agent Registration Hardening by @ikaevus in #50
  • [RG-91] Secrets Handling Baseline by @ikaevus in #51
  • [RG-91] Config Apply Safety by @ikaevus in #52
  • [RG-91] Manager Agent Trust by @ikaevus in #53
  • [RG-91] RBAC Admin Sessions by @ikaevus in #54
  • [RG-91] Security Baseline Closeout by @ikaevus in #55
  • RG-80: Admin UI and User Portal product polish baseline by @ikaevus in #56
  • RG-80: Dashboard visual alignment to reference v0.1 by @ikaevus in #57
  • RG-80: Core feature screens polish pass by @ikaevus in #58
  • RG-80: Dashboard reference fidelity pass by @ikaevus in #59
  • RG-80: Core feature screens reference polish by @ikaevus in #60
  • RG-80: Login auth shell polish by @ikaevus in #61
  • RG-80: Language switcher and locale persistence by @ikaevus in #63
  • RG-82: Brand logo UI integration by @ikaevus in #65
  • RG-80: Dashboard map asset cleanup by @ikaevus in #66
  • [RG-90] MVP v0.1 Release Candidate / Acceptance Pass by @ikaevus in #67
  • [RG-90] UI / i18n Acceptance Fixes by @ikaevus in #73
  • [RG-90] Runtime Apply Readiness by @ikaevus in #74
  • RG-80: Dashboard final MVP UI polish by @ikaevus in #75
  • RG-85 Localization QA Foundation by @ikaevus in #76
  • [RG-90] Fix agent sing-box apply payload staging by @ikaevus in #77
  • docs: record MVP v0.1 acceptance pass by @ikaevus in #78
  • docs: add systemd smoke test follow-up by @ikaevus in #79
  • RG-86: Polish User Portal QR and long-value UI handling by @ikaevus in #80
  • RG-86 follow-up: polish Admin login/logout UX by @ikaevus in #81
  • RG-86 follow-up: polish servers table row spacing by @ikaevus in #82
  • RG-93: Add open-source licensing and project boundary docs by @ikaevus in #83
  • RG-96: add update and versioning foundation by @ikaevus in #85
  • RG-86: Polish UI spacing and density by @ikaevus in #84
  • RG-87: add server creation UI by @ikaevus in #86
  • RG-87 follow-up: add safe server deletion by @ikaevus in #87
  • RG-87 follow-up: add server editing by @ikaevus in #88
  • RG-87 follow-up: guide agent registration from server page by @ikaevus in #89
  • [RG-88] Improve server connection onboarding by @ikaevus in #91
  • [RG-89] Add guided VPN Core status workflow by @ikaevus in #93
  • [RG-89A] Add guided VPN Core service controls by @ikaevus in #97
  • [RG-89B] Add VPN Core installation workflow by @ikaevus in #98
  • [RG-97C] Add public website foundation by @ikaevus in #101
  • [RG-97D] Polish public website and prepare GitHub Pages deployment by @ikaevus in #103
  • [RG-98A] Refresh public GitHub project page by @ikaevus in #105

Full Changelog: https://github.com/ikaevus/RouteGate/commits/rg101-validation-c69c02e