Skip to content

Installation & Configuration

This guide covers all configuration options for Nodebyte. Every setting is controlled through environment variables, set in your .env file or passed directly to Docker Compose.

  • Docker Engine 24+ with the Compose plugin
  • At least 2 GB of available RAM
  • Ports 3000, 8000, and 5432 available (or configure alternatives)
VariableDescriptionDefault
DATABASE_URLPostgreSQL connection string(set by docker-compose)
JWT_SECRETSecret key for signing JWTs — change in production(required)
JWT_ISSUERIssuer claim in JWTsnodebyte
ACCESS_TOKEN_EXPIRES_MINUTESAccess token lifetime in minutes15
REFRESH_TOKEN_EXPIRES_DAYSRefresh token lifetime in days30
COOKIE_SECURESet true when serving over HTTPSfalse
COOKIE_SAMESITESameSite cookie policy (lax, strict, none)lax
FRONTEND_ORIGINAllowed CORS origin for the frontendhttp://localhost:3000
REGISTRATION_ENABLEDAllow public user registration (false = invite-only)true
TURNSTILE_ENABLEDEnable Cloudflare Turnstile bot protectiontrue
TURNSTILE_SECRET_KEYTurnstile server-side secret key(test key)
NODEBYTE_ENVEnvironment name (dev or production)dev
VariableDescriptionDefault
NODE_ENVSet to production for optimized buildsdevelopment
NEXT_PUBLIC_API_BASE_URLBackend API URL (used client-side)http://localhost:8000
NEXT_PUBLIC_TURNSTILE_SITE_KEYTurnstile client-side site key(test key)
NEXT_PUBLIC_EDITIONLanding page variant: cloud or osscloud
VariableDescriptionDefault
POSTGRES_DBDatabase namenodebyte
POSTGRES_USERDatabase usernodebyte
POSTGRES_PASSWORDDatabase password — change in productionchangeme
POSTGRES_PORTHost port for PostgreSQL5432

Nodebyte supports Cloudflare Turnstile as an optional bot protection layer on the registration page.

For development, test keys are built in — Turnstile renders an invisible widget that always passes. No configuration needed.

For production, get real keys from the Cloudflare dashboard:

  1. Set TURNSTILE_ENABLED=true
  2. Set TURNSTILE_SECRET_KEY to your server-side secret
  3. Set NEXT_PUBLIC_TURNSTILE_SITE_KEY to your client-side site key

To disable Turnstile entirely, set TURNSTILE_ENABLED=false.

Nodebyte uses Alembic for database schema migrations. Migrations run automatically on container startup.

To create a new migration after modifying models:

Terminal window
docker compose exec backend alembic revision --autogenerate -m "description"
docker compose exec backend alembic upgrade head