Networking & TLS
LyftData serves HTTPS (TLS) by default. If you do not provide TLS material, the server generates and persists a self-signed certificate (suitable for evaluation, not production).
For local evaluation you can either:
- Use
https://…and accept the browser warning (and use-kwithcurl), or - Start the server with
--disable-tlsto serve plain HTTP (recommended only when terminating TLS behind a reverse proxy, or for local-only evaluation).
Basic connectivity model
- Browser / CLI → Server: Users access the UI and API on the server address (default
127.0.0.1:3000, HTTPS by default). - Worker → Server: Workers connect back to the server using
LYFTDATA_URL(including the scheme,http://orhttps://) and authenticate withLYFTDATA_WORKER_API_KEY.
If the server binds only to 127.0.0.1, remote browsers and remote workers cannot reach it.
Bind address and ports
- Change the server listen address with
--bind-address(orLYFTDATA_BIND_ADDRESSwhen running as a service). - Ensure firewalls allow browser/CLI access and worker access to the chosen port (default
3000). - Set
LYFTDATA_URLon workers to the exact URL they should use to reach the server (include the scheme, such ashttp://orhttps://).
TLS options
LyftData supports two common deployment patterns:
- Default (self-signed TLS): If you do not configure any TLS flags, LyftData serves HTTPS using a self-signed certificate. This is ideal for evaluation. External workers or CLI clients may need
--tls-insecure(orLYFTDATA_TLS_INSECURE=true) until you replace it with a trusted certificate. - Built-in TLS: Configure the server with a certificate and key using the
lyftdata run serverTLS flags (seelyftdata run server --help). This keeps the deployment simple when you do not already run an ingress proxy. - Reverse proxy termination: Terminate TLS in a proxy (for example Caddy or Nginx) and forward requests to the server over HTTP (run the server with
--disable-tls). When using a proxy, ensure it forwards the correct client IP headers so logs and audits reflect real clients.
For broader hardening guidance, see Security Hardening.
Verify reachability
After changing networking or TLS settings, confirm:
- The UI loads in a browser on the expected URL.
- Liveness responds:
- HTTPS (default, self-signed):
curl -k https://<server-host>:3000/api/liveness - HTTP (only when
--disable-tlsis set):curl http://<server-host>:3000/api/liveness
- HTTPS (default, self-signed):
- Workers show
Onlinein the UI after you deploy them.
Common pitfalls
LYFTDATA_URLuseshttp://but the server is servinghttps://(or vice versa).- The server is still bound to
127.0.0.1, so remote clients cannot connect. - Certificate hostname mismatches (CN/SAN does not match the URL you use).
If you get stuck, start with Troubleshooting.