Deployment

The recommended way to self-host SchellingBoard is via Docker.

docker run -d \
  --name schellingboard \
  -p 3000:3000 \
  -v schellingboard_data:/data \
  -e SITE_PASSWORD=changeme \
  -e ADMIN_PASSWORD=changeme \
  -e AUTH_SECRET=$(openssl rand -hex 32) \
  schellingboard/schellingboard

Or with docker compose — copy docker-compose.yml and .env.docker.example from the repository into the same directory, then:

cp .env.docker.example .env
# edit .env and fill in SITE_PASSWORD, ADMIN_PASSWORD, AUTH_SECRET, etc.
docker compose up -d

docker compose automatically reads a .env file in the same directory as docker-compose.yml, so you don’t need to pass variables on the command line.

See Configuration for every environment variable, including how to set up email, and Backup and restore for keeping a copy of your data.

Administration

Events, guests, locations, and content moderation are managed through the web admin UI at /admin. Set ADMIN_PASSWORD (and AUTH_SECRET) to enable it. See the Admin UI guide for what’s configurable, and How it works for the phase model and attendee-facing behavior.