No description
- Rust 65.7%
- JavaScript 15.2%
- Shell 7.7%
- HTML 6.4%
- CSS 4.3%
- Other 0.7%
| .forgejo/workflows | ||
| crates | ||
| docs | ||
| patches/rustls-acme-0.15.1 | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| buildenv.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Makefile | ||
| README.md | ||
Hero Proxy
HTTP/HTTPS reverse proxy and service discovery for the Hero ecosystem. Routes incoming traffic to Hero services via URL prefix to Unix Domain Socket forwarding, with TLS termination, SSH tunnels, OAuth, and a management API.
Quick Start
# Build and start
make run
# Stop
make stop
# View service status
make status
Open the admin dashboard at http://localhost:9997 (via hero_router).
Architecture
Internet / Browser
│
:9997 (HTTP) / :9996 (HTTPS)
│
hero_proxy_server
├── /{service}/* → ~/hero/var/sockets/{service}/*.sock
├── TLS termination (self-signed or Let's Encrypt)
├── SSH tunnel manager (reverse port forwarding)
└── OpenRPC management API
│
Unix sockets (all Hero services)
hero_osis/ui.sock, hero_embedder/ui.sock, ...
Crates
| Crate | Type | Description |
|---|---|---|
hero_proxy |
binary | CLI — registers and starts/stops all services via hero_proc |
hero_proxy_server |
binary | TCP proxy + service discovery + OpenRPC management API |
hero_proxy_ui |
binary | Admin dashboard |
hero_proxy_sdk |
library | Auto-generated typed client for the management API |
hero_proxy_examples |
examples | SDK usage examples |
hero_proxy_tests |
library | Integration tests for the server and proxy |
weblib |
library | Reusable web server library (proxy, TLS, certs, ACME) |
Sockets
All sockets under $HERO_SOCKET_DIR/hero_proxy/ (default: ~/hero/var/sockets/hero_proxy/).
| Socket | Protocol | Description |
|---|---|---|
rpc.sock |
OpenRPC/JSON-RPC 2.0 | Management API |
ui.sock |
HTTP | Admin dashboard |
Ports (TCP)
| Port | Protocol | Description |
|---|---|---|
| 9997 | HTTP | Reverse proxy ingress |
| 9996 | HTTPS | Reverse proxy ingress (TLS) |
| 80 | HTTP | Redirect to HTTPS (Let's Encrypt mode only) |
Documentation
- Configuration — Environment variables and settings
- API Reference — Management API methods
- Architecture — System design and data flow
- Setup — Installation and deployment
- Releasing — How to create a new release
Development
make check # cargo check
make test # cargo test
make lint # clippy
make fmt # rustfmt
make rundev # debug build, direct execution
make test-all # full CI suite
Installation
make install # build release + install to ~/hero/bin/