cunΔ«cu(1)

πŸ“¦ version 0.12.0, in nixos 26.05, nixpkgs unstable

πŸ’… cunΔ«cu(1) β€” the relay page, bestie edition πŸŽ€

okay so this is the manual for cunicu-relay, one of the pages under cunΔ«cu(1) β€” and ngl it's a good one. sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

cunicu-relay β€” literally just: start the relay API server. that's the whole vibe. periodt.


🌸 SYNOPSIS 🌸

cunicu relay URL... [flags]

yes bestie, you give it a bunch of URLs and you can throw flags at it. both. at the same time. iconic.


πŸ¦‹ DESCRIPTION πŸ¦‹

so what does this actually do? it starts a gRPC server that hands out a list of available STUN and TURN servers to your cunicu agents. like a little snack table 🍽️ but for network config.

⚠️ real talk: currently this command does not run a TURN server itself. it relies on an external server like Coturn. don't @ me, that's just how it is.

the way this is genuinely useful?? with this feature you can distribute a list of available STUN/TURN servers super easily to a whole fleet of agents. it also lets you issue short-lived HMAC-SHA1 credentials based on the proposed TURN REST API β€” and thereby avoids static long-term credentials. slay πŸ’… (short-lived creds >> static creds, no cap).

the command expects a list of STUN or TURN URLs according to RFC7065/RFC7064, with a few extensions:

  • a secret for the TURN REST API can be provided by the secret query parameter
    • example: turn:server.com?secret=rest-api-secret
  • a time-to-live to the TURN REST API secrets can be provided by the ttl query parameter
    • example: turn:server.com?ttl=1h
  • static TURN credentials can be provided by the URIs user info
    • example: turn:user1:pass1@server.com

three little extensions, all adorable, all doing their job 🧚


πŸ‘‘ OPTIONS πŸ‘‘

  • -h, --help[=false] β€” help for relay. your classic "what does this even do" button 🫢
  • -L, --listen=":8080" β€” the listen address. defaults to :8080, so it's already got a home πŸ’–
  • -S, --secure[=false] β€” listen with TLS. security!! lock it down, bestie πŸ”₯

🌈 OPTIONS INHERITED FROM PARENT COMMANDS 🌈

these come from the parent command, so you get them for free β€” main character inheritance energy:

  • -q, --color="auto" β€” enable colorization of output. one of: auto, always, never
  • -l, --log-file=[] β€” path of a file to write logs to
  • -d, --log-level=[] β€” log level filter rule. one of: debug, info, warn, error, dpanic, panic, and fatal. default is "info"

⭐ EXAMPLE ⭐

here's the moment you've been waiting for, the actual example, verbatim, no edits:

$ cunicu relay turn:server.com?secret=rest-api-secret&ttl=1h

look at that. secret and ttl in one URL. we love a multitasker 😭✨


πŸŽ€ SEE ALSO πŸŽ€

  • cunicu(1) β€” the parent page, go say hi πŸ’œ

and that's the whole page, bestie πŸ¦‹ fr fr.

source/version: https://github.com/cunicu/cunicu β€” Jan 1980 (yes, the date really says 1980, we don't question the timeline, we just respect it πŸ’€πŸŒΈ). mwah, bye! πŸ’…

πŸ“¦ where this page comes from