RECEPTOR(1)

πŸ“¦
version 1.6.6 Β· 5 versions
, in ubuntu stonking

πŸ’– RECEPTOR(1) πŸ’–

okay bestie, this is RECEPTOR(1) β€” it lives in the User Commands part of the manual, and yes this whole thing is about receptor, the Main controller daemon. buckle up, it's long, but we're getting through it together 🫢


🌸 NAME 🌸

receptor β€” Main controller daemon πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

receptor [--<action> [<param>=<value> ...] ...]

✨ DESCRIPTION ✨

so the whole vibe here is: you hand receptor one or more actions, and each action can have a lil pile of <param>=<value> pairs trailing after it. that's the shape of literally every invocation. here's every action the manual lists πŸ’…

  • --help β€” shows this help. that's it, that's the whole thing πŸ™ˆ
  • --config <filename> β€” loads extra config options from a YAML file
  • --bash-completion β€” generates a completion script for the bash shell
    • to turn it on right now, run . <(receptor --bash-completion) ✨
  • --node β€” specifies the node configuration of this instance (required, so like, do not skip this one ⚠️)
    • id=<string> β€” the node ID. defaults to the local hostname
    • datadir=<string> β€” the directory where node data gets stored (default: /tmp/receptor)
    • firewallrules=<JSON list of JSON dict of JSON data to JSON data> β€” firewall rules; go read the documentation for the syntax, bestie
    • maxidleconnectiontimeout=<string> β€” how long a backend connection can sit there with zero traffic before it gets timed out and refreshed
    • receptorkubesupportreconnect=<string>
    • receptorkubeclientsetqps=<string>
    • receptorkubeclientsetburst=<string>
    • **receptorkubeclientsetratelimiter=<string>
fr the last four have no description in the original β€” the page just lists them, so that's all we got πŸ’€
  • --local-only β€” runs a self-contained node with no backend
    • local=<bool>
  • --version β€” displays the Receptor version
  • --log-level β€” specifies the verbosity level for command output
    • level=<string> β€” the log level: Error, Warning, Info or Debug (default: error)
  • --trace β€” enables packet tracing output
  • --control-service β€” runs a control service
    • service=<string> β€” the Receptor service name to listen on (default: control)
    • filename=<string> β€” the filename of a local Unix socket to bind to the service
    • permissions=<int> β€” socket file permissions (default: 0600)
    • tls=<string> β€” name of the TLS server config for the Receptor listener
    • tcplisten=<string> β€” local TCP port, or host:port, to bind the control service to
    • tcptls=<string> β€” name of the TLS server config for the TCP listener

πŸŽ€ Commands that configure resources used by other commands πŸŽ€

  • --tls-server β€” define a TLS server configuration
    • name=<string> β€” name of this TLS server configuration (required)
    • cert=<string> β€” server certificate filename (required)
    • key=<string> β€” server private key filename (required)
    • requireclientcert=<bool> β€” require client certificates (default: false)
    • clientcas=<string> β€” filename of the CA bundle to verify client certs with
    • pinnedclientcert=<[]string (may be repeated)> β€” pinned fingerprint of the required client certificate
    • skipreceptornamescheck=<bool> β€” skip verifying ReceptorNames OIDs in the certificate at startup (default: false)
    • mintls13=<bool> β€” set the minimum TLS version to 1.3. otherwise the minimum is 1.2 (default: true)
  • --tls-client β€” define a TLS client configuration
    • name=<string> β€” name of this TLS client configuration (required)
    • cert=<string> β€” client certificate filename (required)
    • key=<string> β€” client private key filename (required)
    • rootcas=<string> β€” root CA bundle to use instead of system trust
    • insecureskipverify=<bool> β€” accept any server cert (default: false)
    • pinnedservercert=<[]string (may be repeated)> β€” pinned fingerprint of the required server certificate
    • skipreceptornamescheck=<bool> β€” if true, skip verifying ReceptorNames OIDs in the certificate at startup
    • mintls13=<bool> β€” set the minimum TLS version to 1.3. otherwise the minimum is 1.2 (default: true)

🌈 Commands to configure back-ends, which connect Receptor nodes together 🌈

  • --tcp-listener β€” run a backend listener on a TCP port
    • bindaddr=<string> β€” local address to bind to (default: 0.0.0.0)
    • port=<int> β€” local TCP port to listen on (required)
    • tls=<string> β€” name of the TLS server config
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • nodecost=<JSON dict of string to float64> β€” per-node costs
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection
  • --tcp-peer β€” make an outbound backend connection to a TCP peer
    • address=<string> β€” remote address (Host:Port) to connect to (required)
    • redial=<bool> β€” keep redialing on a lost connection (default: true)
    • tls=<string> β€” name of the TLS client config
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection
  • --udp-listener β€” run a backend listener on a UDP port
    • bindaddr=<string> β€” local address to bind to (default: 0.0.0.0)
    • port=<int> β€” local UDP port to listen on (required)
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • nodecost=<JSON dict of string to float64> β€” per-node costs
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection
  • --udp-peer β€” make an outbound backend connection to a UDP peer
    • address=<string> β€” Host:Port to connect to (required)
    • redial=<bool> β€” keep redialing on a lost connection (default: true)
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection
  • --ws-listener β€” run an http server that accepts websocket connections
    • bindaddr=<string> β€” local address to bind to (default: 0.0.0.0)
    • port=<int> β€” local TCP port to run the http server on (required)
    • path=<string> β€” URI path to the websocket server (default: /)
    • tls=<string> β€” name of the TLS server config
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • nodecost=<JSON dict of string to float64> β€” per-node costs
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection
  • --ws-peer β€” connect outbound to a websocket peer
    • address=<string> β€” URL to connect to (required)
    • redial=<bool> β€” keep redialing on a lost connection (default: true)
    • extraheader=<string> β€” sends an extra HTTP header on the initial connection
    • tls=<string> β€” name of the TLS client config
    • cost=<float64> β€” connection cost (weight) (default: 1.0)
    • allowedpeers=<[]string (may be repeated)> β€” peer node IDs to allow via this connection

🧚 Commands to configure services that run on top of the Receptor mesh 🧚

  • --command-service β€” run an interactive command via a Receptor service
    • service=<string> β€” Receptor service name to bind to (required)
    • command=<string> β€” command to execute on a connection (required)
    • tls=<string> β€” name of the TLS server config
  • --ip-router β€” run an IP router using a tun interface
    • networkname=<string> β€” name of this network and service (required)
    • interface=<string> β€” name of the local tun interface
    • localnet=<string> β€” local /30 CIDR address (required)
    • routes=<string> β€” comma separated list of CIDR subnets to advertise
  • --tcp-server β€” listen for TCP and forward via Receptor
    • port=<int> β€” local TCP port to bind to (required)
    • bindaddr=<string> β€” address to bind the TCP listener to (default: 0.0.0.0)
    • remotenode=<string> β€” Receptor node to connect to (required)
    • remoteservice=<string> β€” Receptor service name to connect to (required)
    • tlsserver=<string> β€” name of the TLS server config for the TCP listener
    • tlsclient=<string> β€” name of the TLS client config for the Receptor connection
  • --tcp-client β€” listen on a Receptor service and forward via TCP
    • service=<string> β€” Receptor service name to bind to (required)
    • address=<string> β€” address for the outbound TCP connection (required)
    • tlsserver=<string> β€” name of the TLS server config for the Receptor service
    • tlsclient=<string> β€” name of the TLS client config for the TCP connection
  • --udp-server β€” listen for UDP and forward via Receptor
    • port=<int> β€” local UDP port to bind to (required)
    • bindaddr=<string> β€” address to bind the UDP listener to (default: 0.0.0.0)
    • remotenode=<string> β€” Receptor node to connect to (required)
    • remoteservice=<string> β€” Receptor service name to connect to (required)
  • --udp-client β€” listen on a Receptor service and forward via UDP
    • service=<string> β€” Receptor service name to bind to (required)
    • address=<string> β€” address for the outbound UDP connection (required)
  • --unix-socket-server β€” listen on a Unix socket and forward via Receptor
    • filename=<string> β€” socket filename, which will be overwritten (required) πŸ‘€
    • permissions=<int> β€” socket file permissions (default: 0600)
    • remotenode=<string> β€” Receptor node to connect to (required)
    • remoteservice=<string> β€” Receptor service name to connect to (required)
    • tls=<string> β€” name of the TLS client config for the Receptor connection
  • --unix-socket-client β€” listen via Receptor and forward to a Unix socket
    • service=<string> β€” Receptor service name to bind to (required)
    • filename=<string> β€” socket filename, which must already exist (required)
    • tls=<string> β€” name of the TLS server config for the Receptor connection

πŸ‘‘ Commands to configure workers that process units of work πŸ‘‘

  • --work-signing β€” private key to sign work submissions
    • privatekey=<string> β€” private key to sign work submissions
    • tokenexpiration=<string> β€” expiration of the signed json web token, e.g. 3h or 3h30m
  • --work-verification β€” public key to verify work submissions
    • publickey=<string> β€” public key to verify signed work submissions
  • --work-command β€” run a worker using an external command
    • worktype=<string> β€” name for this worker type (required)
    • command=<string> β€” command to run to process units of work (required)
    • params=<string> β€” command-line parameters
    • allowruntimeparams=<bool> β€” allow users to add more parameters (default: false)
    • verifysignature=<bool> β€” verify a signed work submission (default: false)
  • --work-kubernetes β€” run a worker using Kubernetes
  • *worktype=<string>* ** β€” what we're calling this worker type. Required, bestie, no skipping.
  • *namespace=<string>* ** β€” the Kubernetes namespace where the pods get born πŸ’«
  • *image=<string>* ** β€” container image for the worker pod
  • *command=<string>* ** β€” command to run inside the container (heads up, this overrides the entrypoint)
  • *params=<string>* ** β€” command-line params you're passing to the entrypoint
  • *authmethod=<string>* ** β€” literally one of kubeconfig or incluster (default: incluster)
  • *kubeconfig=<string>* ** β€” the kubeconfig filename (only when authmethod=kubeconfig, iykyk)
  • *pod=<string>* ** β€” pod definition filename, in json or yaml format
  • *allowruntimeauth=<bool>* ** β€” let API parameters get passed at runtime (default: false)
  • *allowruntimecommand=<bool>* ** β€” let image & command be specified at runtime (default: false)
  • *allowruntimeparams=<bool>* ** β€” let command parameters be added at runtime (default: false)
  • *allowruntimepod=<bool>* ** β€” let a Pod get passed at runtime (default: false)
  • *deletepodonrestart=<bool>* ** β€” on restart, delete the pod if it's stuck in pending state (default: true)
  • *streammethod=<string>* ** β€” how we connect to worker pods: logger or tcp (default: logger)
  • *verifysignature=<bool>* ** β€” verify a signed work submission (default: false)

  • --work-python β€” run a worker using a Python plugin 🐍
[DEPRECATION WARNING] This option is not currently being used. This feature will be removed from receptor in a future release. Not me warning you about a glow-up that's getting cancelled 😭
  • *worktype=<string>* ** β€” name for this worker type (required)
  • *plugin=<string>* ** β€” Python module name of the worker plugin (required)
  • *function=<string>* ** β€” receptor-exported function to call (required)
  • *config=<JSON dict with string keys>* ** β€” plugin-specific configuration

✨ Commands to generate certificates and run a certificate authority ✨

PKI era, let's go πŸ’…

  • --cert-init β€” initialize PKI CA πŸ‘‘
    • *commonname=<string>* ** β€” common name to assign to the certificate (required)
    • *bits=<int>* ** β€” bit length of the encryption keys of the certificate (required)
    • *notbefore=<string>* ** β€” effective (NotBefore) date/time, in RFC3339 format
    • *notafter=<string>* ** β€” expiration (NotAfter) date/time, in RFC3339 format
    • *outcert=<string>* ** β€” file to save the CA certificate to (required)
    • *outkey=<string>* ** β€” file to save the CA private key to (required)
    • *osw=<certificates.Oser>* ** β€” OS wrapper for file operations
  • --cert-makereq β€” create certificate request πŸ“
    • *commonname=<string>* ** β€” common name to assign to the certificate (required)
    • *bits=<int>* ** β€” bit length of the encryption keys of the certificate
    • *dnsname=<[]string (may be repeated)>* ** β€” DNS names to add to the certificate
    • *ipaddress=<[]string (may be repeated)>* ** β€” IP addresses to add to the certificate
    • *nodeid=<[]string (may be repeated)>* ** β€” receptor node IDs to add to the certificate
    • *outreq=<string>* ** β€” file to save the certificate request to (required)
    • *inkey=<string>* ** β€” private key to use for the request
    • *outkey=<string>* ** β€” file to save the private key to (a fresh new key will be generated ✨)
    • *osw=<certificates.Oser>* ** β€” OS wrapper for file operations
  • --cert-signreq β€” sign request and produce certificate πŸ–‹οΈ
    • *req=<string>* ** β€” certificate request PEM filename (required)
    • *cacert=<string>* ** β€” CA certificate PEM filename (required)
    • *cakey=<string>* ** β€” CA private key PEM filename (required)
    • *notbefore=<string>* ** β€” effective (NotBefore) date/time, in RFC3339 format
    • *notafter=<string>* ** β€” expiration (NotAfter) date/time, in RFC3339 format
    • *outcert=<string>* ** β€” file to save the signed certificate to (required)
    • *verify=<bool>* ** β€” if true, don't prompt the user for verification (default: False)

🌈 SEE ALSO 🌈

The full documentation for receptor is maintained as a Texinfo manual. If the info and receptor programs are properly installed at your site, the command

info receptor

should give you access to the complete manual. Go read it, it's giving complete manual energy πŸ“–


And that's a wrap on receptor! πŸŽ€ This whole thing is receptor 1.6.6, dated June 2026 β€” like, that's the version you're holding and the month it was stamped, so write it down bestie. Periodt. πŸ’–

πŸ“¦ where this page comes from