Skip to main content
Set these in your .env, your Docker environment, or your platform’s environment settings. Only BETTER_AUTH_SECRET is required.

Core

Upload and rate limiting

Admin bootstrap

These run only on the very first boot, while the user table is empty. They cannot reset a password or add a second admin later. Without them, a fullstack instance waits for you to create the account at /setup. Three rules worth knowing before you wire this into a deploy:
  • Email and password go together. One without the other stops startup.
  • In fullstack mode, generating a key also requires the credentials.
  • In api mode a key is generated on first boot regardless, since an API-only instance would otherwise have no way in.
The key is printed once and cannot be retrieved afterwards. Capture it on first boot, then drop the password from your environment, since it is no longer read.

Advanced

ALLOW_REMOTE_SOURCE lets a request name its own HTTPS source URL through the x-openinary-source-url header. /t/* is a public route, so an instance with this on will fetch any HTTPS URL it can reach on behalf of whoever asks, which makes it a proxy into your network. Enable it only where the transform route is not publicly reachable and every caller is trusted.

Ports under Docker

PORT applies when running from source. Both Compose profiles publish 3000:3000 without passing PORT through, and in the full image the API is pinned to an internal port behind nginx. Setting it there either does nothing or breaks the published mapping. Change the port mapping instead.

Storage

Connect S3-compatible cloud storage.

Signed URLs

Use API_SECRET to sign transformation URLs.

Video Processing

Worker concurrency, retries and encode limits.

Telemetry

What is sent, and how to turn it off.