addaInstall

Configuration

Every environment variable and what it does.

All configuration is environment-driven: Pydantic settings in the backend, NEXT_PUBLIC_* build arguments for the web app. Everything has a development default. In production the installer writes .env for you.

Database and Redis

VariableDefaultNotes
POSTGRES_USERadda
POSTGRES_PASSWORDaddaset a strong one in production
POSTGRES_DBadda
DATABASE_URLpostgresql+asyncpg://adda:adda@localhost:5432/addafor a backend outside Docker
REDIS_URLredis://localhost:6379/0

Auth

VariableDefaultNotes
JWT_SECRETchange-merequired in production, long and random
ACCESS_TOKEN_EXPIRE_MINUTES1440Access-token lifetime
REFRESH_TOKEN_EXPIRE_DAYS30Refresh tokens rotate on every use
RESET_TOKEN_EXPIRE_MINUTES30Password-reset link lifetime
PASSWORD_RESET_URLhttp://localhost:5173/reset-passwordThe page reset emails link to

Backend

VariableDefaultNotes
IS_DEBUGfalsetrue serves the OpenAPI docs at /docs
SQL_ECHOfalseLog every SQL statement (very noisy)
LOG_FORMATtext (json in compose)One JSON object per log line in production
CORS_ORIGINShttp://localhost:5173Comma-separated browser origins allowed to call the API

Streaming

VariableDefaultNotes
RTMP_PORT1935Where encoders publish
HLS_PORT8888Playback, published on localhost
MTX_API_URLhttp://localhost:9997How the backend reaches mediamtx
MTX_API_USER, MTX_API_PASSadmin, adminmediamtx control credentials
MTX_AUTH_ADDRESShttp://backend:7001/api/streams/authThe publish-auth webhook. make infra sets http://host.docker.internal:7001/… for a backend on your machine
HLS_BASE_URLhttp://localhost:8888The playback address the browser uses
RTMP_BASE_URLrtmp://localhost:1935Shown in the Studio's Setup tab

Storage

VariableDefaultNotes
RECORDINGS_DIR../recordingsWhere mediamtx writes MP4 files (a bind mount)
THUMBS_DIR../thumbsLive frames used as card posters
UPLOADS_DIR../uploadsEmotes, banners, pictures and uploaded videos

Bootstrap accounts

VariableDefaultNotes
SUPERADMIN_USERNAMEadmin
SUPERADMIN_EMAILadmin@example.com
SUPERADMIN_PASSWORDadmin12345override in production
SEED_TEST_USERStrueCreates alice and bob; false in production
SEED_TEST_PASSWORDpassword123

Seeding is idempotent: it only creates accounts that do not exist yet.

Email (optional)

VariableDefaultNotes
SMTP_HOST(empty)Empty means email is off
SMTP_PORT587
SMTP_USERNAME(empty)
SMTP_PASSWORD(empty)An app password for most providers
SMTP_FROMadda <noreply@adda.example>
SMTP_STARTTLStrue

With SMTP_HOST empty the email controls in Settings are hidden, and reset links are written to the backend log.

Web app (build time)

VariableDefaultNotes
NEXT_PUBLIC_API_BASE_URLhttp://localhost:7001The API address the browser calls
NEXT_PUBLIC_HLS_BASE_URLhttp://localhost:8888The playback address the browser uses
NEXT_PUBLIC_SITE_URLhttps://getadda.vercel.appOptional marketing site, linked from the footer and About
API_SSR_URLhttp://localhost:7001The API address the web server calls (server rendering)