funnel
reference

server cli & tls

a reference for all `funnel-server` command-line flags and how to configure tls.

docker only

the funnel server runs exclusively as a docker container for easy deployment and management.

running the server

basic command to start the server:

docker run -d --name funnel-server [options] ghcr.io/karol-broda/funnel-server:latest

configuration

examples

basic server:

docker run -d --name funnel-server -p 8080:8080 ghcr.io/karol-broda/funnel-server:latest

server with custom port:

docker run -d --name funnel-server -p 9000:9000 -e FUNNEL_PORT=9000 ghcr.io/karol-broda/funnel-server:latest

tls configuration

automatic tls

funnel automatically provisions and renews tls certificates from let's encrypt using the dns-01 challenge.

setup steps

  1. create dns provider config - see lego documentation
dns-providers.json
{
  "providers": [
    {
      "name": "cloudflare",
      "env": {
        "CF_API_TOKEN": "your-cloudflare-api-token"
      }
    }
  ]
}
  1. start with tls enabled
docker run -d --name funnel-server \
  -p 8080:8080 \
  -p 8443:8443 \
  -v $(pwd)/dns-providers.json:/etc/funnel/dns-providers.json \
  -v funnel-certs:/var/lib/funnel/certs \
  -e FUNNEL_ENABLE_TLS=true \
  -e FUNNEL_LETSENCRYPT_EMAIL=your-email@example.com \
  -e FUNNEL_DNS_PROVIDERS_CONFIG=/etc/funnel/dns-providers.json \
  ghcr.io/karol-broda/funnel-server:latest

certificates are generated automatically on first request and renewed before expiration.

Last updated: July 18, 2025
by karol-broda