Configuration
Everything is configured via environment variables. Defaults are production-safe except for the lack of authentication.
| Variable | Default | Purpose |
|---|---|---|
FLOOTYPST_BIND | 0.0.0.0:3000 | Socket address to listen on. |
FLOOTYPST_MAX_BODY_BYTES | 33554432 (32 MiB) | Max size of an incoming multipart body. |
FLOOTYPST_MAX_OUTPUT_BYTES | 67108864 (64 MiB) | Max size of a rendered PDF before the request is rejected. |
FLOOTYPST_MAX_CONCURRENT_COMPILES | host CPU count | Cap on simultaneous worker subprocesses. Surplus requests get 503. |
FLOOTYPST_COMPILE_TIMEOUT_SECS | 10 | Worker is SIGKILLed past this. Request returns 408. |
FLOOTYPST_WORKER_PATH | $(current_exe) | Override for the worker binary. Useful when running under a supervisor. |
FLOOTYPST_FETCH_TIMEOUT_SECS | 15 | Per-URL GET timeout (URL mode). |
FLOOTYPST_UPLOAD_TIMEOUT_SECS | 30 | PUT timeout (URL mode). |
FLOOTYPST_MAX_FETCH_BYTES | 33554432 (32 MiB) | Per-URL body size cap (URL mode). |
FLOOTYPST_HOST_ALLOWLIST | (unset = allow all public hosts) | Comma-separated host patterns. *.googleapis.com supported. |
FLOOTYPST_ALLOW_PRIVATE_IPS | false | Set true only for local development. |
FLOOTYPST_REQUIRE_HTTPS | true | Allow plain HTTP for outbound fetch/upload. Production: leave true. |
RUST_LOG | info | Standard tracing-subscriber filter. |
Common configurations
Locked-down GCS deployment
FLOOTYPST_BIND=127.0.0.1:3000
FLOOTYPST_HOST_ALLOWLIST=storage.googleapis.com
FLOOTYPST_COMPILE_TIMEOUT_SECS=30
FLOOTYPST_MAX_OUTPUT_BYTES=33554432
Multi-cloud deployment
FLOOTYPST_HOST_ALLOWLIST=storage.googleapis.com,*.amazonaws.com,*.r2.cloudflarestorage.com
Local development against a fixture server
FLOOTYPST_ALLOW_PRIVATE_IPS=true
FLOOTYPST_REQUIRE_HTTPS=false