Repository navigation
Releases: routegate/RouteGate
Release list
RouteGate v0.2.0-rc.2
RouteGate v0.2.0-rc.1
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...
RouteGate v0.1.0
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
/setupactivation 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 bashPin 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.0See 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
/setupactivation; - 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
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
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