Skip to main content
Orbit is configured through the same set of Laravel environment variables regardless of how you run it. For the native setup and Docker without Doppler, that means a standard .env file. If you’re on the Docker path and this directory is linked to a Doppler project, Doppler injects these same variables directly instead of a .env file — see Docker for that distinction. This page covers the variables you’re likely to actually touch — the rest of .env.example is framework boilerplate you can leave at its default.

Application

Database

Orbit defaults to SQLite (DB_CONNECTION=sqlite, backed by database/database.sqlite) — no other configuration is required for local development. For MySQL or PostgreSQL, switch DB_CONNECTION and set the standard DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD variables.

Session, cache, and queue

All three default to the database driver (SESSION_DRIVER, CACHE_STORE, QUEUE_CONNECTION), which needs no extra infrastructure — just a migrated database. Redis (REDIS_HOST, REDIS_PORT, REDIS_PASSWORD) and Memcached (MEMCACHED_HOST) variables are present in .env.example if you’d rather run one of those instead, but neither is required. The queue is no longer just framework boilerplate: a worker actually needs to be running (php artisan queue:work, or the queue Docker service — see Docker) for email notifications to be delivered, whichever queue driver you pick.

File storage

FILESYSTEM_DISK=local is used for user avatar uploads. If you want avatars stored on S3 instead, set FILESYSTEM_DISK=s3 and fill in AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, and AWS_BUCKET.

Mail and broadcasting

BROADCAST_CONNECTION=log is a Laravel framework default present in .env.example — nothing in the app currently broadcasts over a websocket connection, so it doesn’t need to be configured. MAIL_MAILER matters now: notification emails are sent through Laravel’s standard mail configuration (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM_ADDRESS, MAIL_FROM_NAME). .env.example defaults MAIL_MAILER=log, which writes emails to the log instead of actually sending them — fine for local development, but point it at a real driver (smtp, ses, and so on) before relying on email delivery anywhere else. Delivery also requires a running queue worker regardless of mailer — emails are always queued, never sent synchronously.

Avatar moderation (nsfwjs)

Uploaded avatars are screened by a separate nsfwjs HTTP service before they’re accepted. If the nsfwjs service is unreachable when someone uploads an avatar, the upload is rejected rather than allowed through unchecked.

Frontend

VITE_APP_NAME="${APP_NAME}" mirrors APP_NAME into the frontend build — update APP_NAME and this follows automatically.
Last modified on August 17, 2026