Etoki

Docs

Servers & ports

A reference for the services in an Etoki deployment: what each one does, the ports it listens on, and how to operate it.

Services & ports

A typical deployment exposes these ports. Only open what you run; the gateway on 443 can front several services behind bridge paths.

PortServiceRole
443GatewayTLS camouflage — looks like HTTPS, fronts router/directory
5223RouterMessage queues + 2-hop onion forwarding (TCP; WS variant available)
5443File relayChunked, padded file transfer (NFP)
5553Push relayContent-free push fan-out (NPP)
5663DirectoryOpt-in @username → contact-address lookup (NDP)
3478coturnSTUN/TURN for calls and Etoki push-to-talk
5880/5881Bot relayHTTP/HTTPS bot API (optional, one host)
localhostetokidHeadless daemon WS/JSON API for bots (keep private)

Transports

Clients can reach a router over several transports:

  • Plain TCP — the default, e.g. etoki://<fp>@your.host:5223.
  • WebSocketws:// form for reachability behind CDNs and reverse proxies.
  • TLS camouflagetls://sni@host:443/path, indistinguishable from HTTPS to an observer.
  • SOCKS5 / Tor — dial through a SOCKS5 proxy so onion targets resolve inside Tor, with per-session circuit isolation.

State & identity

Each service persists its identity and data under a state directory (a systemd StateDirectory). Because the fingerprint is derived from persisted keys, addresses stay stable across restarts and upgrades.

Back up your state directories / volumes. Router queue retention and quotas are tunable through the admin plane.

Operating the services

  • systemd: systemctl status|restart and journalctl -u <unit> for logs.
  • Keep the etokid daemon API on a private network — it is token-gated but not TLS by default.