How anomalyco/opentunnel works
OpenTunnel provides hosted blind TLS tunneling: a user creates a tunnel and routes to a local app; the server issues certificates and relays encrypted visitor streams, while the client terminates TLS locally. The map includes the documented CLI, Rust client, TypeScript SDK, server, and website capabilities. Several server modules are represented from the source index and README rather than inspected excerpts, so only documented or indexed relationships are connected.
Main entry points: server.rs Server listeners · jobs.rs Issuance jobs · src/service.rs Tunnel service · src/service.rs Background service
Components 29
Clients and SDKs
- CLI commands
crates/opentunnel-cli/src/main.rs - Background service
crates/opentunnel-cli/src/service.rs - Rust client
crates/opentunnel/src/client.rs - Rust identity storage
crates/opentunnel/src/storage.rs - TypeScript SDK
packages/client/src/effect/client.ts - SDK identity storage
packages/client/src/effect/storage.ts
Server runtime
- Server listeners
crates/opentunnel-server/src/server.rs - HTTP API
crates/opentunnel-server/src/http.rs - TLS and SNI routing
crates/opentunnel-server/src/tls.rs - Bridge relay
crates/opentunnel-server/src/bridge.rs - Tunnel service
crates/opentunnel-server/src/service.rs
Certificate issuance
- ACME integration
crates/opentunnel-server/src/acme.rs - Issuance jobs
crates/opentunnel-server/src/jobs.rs - Certificate issuer
crates/opentunnel-server/src/issuer.rs - DNS challenges
crates/opentunnel-server/src/dns.rs
State and operations
- MySQL store
crates/opentunnel-server/src/store.rs - Rate limits
crates/opentunnel-server/src/limits.rs - Cluster coordination
crates/opentunnel-server/src/cluster.rs - Cluster mesh
crates/opentunnel-server/src/mesh.rs - Analytics events
crates/opentunnel-server/src/analytics.rs - Prometheus metrics
crates/opentunnel-server/src/metrics.rs - Renewal clock
crates/opentunnel-server/src/clock.rs
Website
- Landing website
packages/website/src/App.tsx
Other components
- Tunnel operator
- Local application
- Tunnel visitor
- MySQL service
- ZeroSSL
- Cloudflare DNS
Connections 32
- Tunnel operator → CLI commands: adds routes
README.md - CLI commands → Background service: starts service
README.md - CLI commands → Local application: targets port
README.md - Background service → Rust client: runs tunnel
- Rust client → Rust identity storage: loads identity
crates/opentunnel/src/client.rs - Tunnel operator → TypeScript SDK: uses SDK
README.md - TypeScript SDK → SDK identity storage: stores identity
packages/client/src/effect/client.ts - Tunnel visitor → Server listeners: opens TLS
README.md - Server listeners → TLS and SNI routing: accepts TLS
README.md - TLS and SNI routing → Bridge relay: routes encrypted stream
README.md - Bridge relay → Background service: forwards stream
README.md - Background service → Local application: proxies plaintext
README.md - Tunnel operator → HTTP API: creates tunnel
README.md - HTTP API → Tunnel service: handles API
crates/opentunnel-server/src/http.rs - Tunnel service → MySQL store: reads and writes
crates/opentunnel-server/src/service.rs - Server listeners → MySQL service: uses persistent state
README.md - Tunnel service → Issuance jobs: schedules issuance
crates/opentunnel-server/src/service.rs - Issuance jobs → MySQL store: persists jobs
crates/opentunnel-server/src/jobs.rs - Issuance jobs → ACME integration: requests certificates
crates/opentunnel-server/src/jobs.rs - Issuance jobs → Certificate issuer: runs issuance
crates/opentunnel-server/src/jobs.rs - Certificate issuer → ZeroSSL: obtains certificates
README.md - Issuance jobs → DNS challenges: sets challenges
crates/opentunnel-server/src/jobs.rs - DNS challenges → Cloudflare DNS: updates DNS
README.md - HTTP API → Rate limits: checks limits
crates/opentunnel-server/src/http.rs - Tunnel service → Cluster coordination: coordinates tunnels
crates/opentunnel-server/src/service.rs - Cluster coordination → Cluster mesh: publishes events
crates/opentunnel-server/src/cluster.rs - Tunnel service → Analytics events: publishes events
crates/opentunnel-server/src/service.rs - Server listeners → Landing website: serves site
README.md - Server listeners → HTTP API: serves API
README.md - Server listeners → Issuance jobs: runs workers
crates/opentunnel-server/src/server.rs - Server listeners → Renewal clock: configures time
crates/opentunnel-server/src/server.rs - Server listeners → Prometheus metrics: exposes metrics
crates/opentunnel-server/src/metrics.rs