First-run Setup
You've installed the binary for your platform — now initialise the server, set the admin password, add your license, and start it.
1. Initialise and set the admin password
Run --init from a terminal. It creates the data/ directory, generates config.yml from the built-in template, confirms your license files are present, and prompts you to set the administrator password:
./scd-server --init
Create admin account
Username: admin (fixed)
Password (min 8 characters): ********
Confirm password: ********
✓ Admin account created.
The username is always admin. Choose a strong password — you'll use it to log in to the dashboard.
There is no auto-generated password, and nothing is ever written to the log. The server refuses to start until an administrator account exists, so set the password here during --init, before you start the server.
If you're provisioning without a terminal to type into (a build script, a container image), set the password via an environment variable for the --init run instead of being prompted:
SCD_ADMIN_PASSWORD='<strong-password>' ./scd-server --init
2. Edit config.yml
Open config.yml and set the required values:
# Server
port: 3000
host: 0.0.0.0 # Use 0.0.0.0 to allow access from developer machines
# Use 127.0.0.1 if everyone is on the same machine
# Log level: normal | quiet
log_level: normal
host: 0.0.0.0 makes scd-server reachable from other machines on your internal network — not the public internet. Keep it there. If developers need remote access from off-site, use a VPN — see Remote access.
Email (SMTP) and Discord notifications are configured via Admin → Settings → Notifications in the admin UI — not in config.yml.
3. Place your license file
Copy your license.key into the data/ directory:
data/
license.key ← your signed license file
scd-public.pem ← included in the distribution
A valid license.key is required for scd-server to operate. Without a valid license the server does not grant access.
4. Start scd-server
# Default port (3000)
./scd-server
# Custom port
./scd-server --port 8080
# Debug logging
./scd-server --debug
Verify it is running:
curl http://localhost:3000/api/v1/health
# { "status": "ok", ... }
5. Log in and create user accounts
Open the admin UI at http://your-server:3000/admin and log in as admin with the password you set during --init.
Then navigate to Admin → Users to create accounts for your developers. Each account generates a personal CLI token — shown once at creation. See Connecting the CLI for the full developer setup flow.
You can change the admin password any time from Admin → Change password.
Next step
Continue to Connecting the CLI.
For production deployments, set up scd-server as a system service: Running as a service.