Skip to main content

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.

The server won't start without an admin

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.

Unattended / scripted installs

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
caution

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.

Notifications

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
License required

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.

Change the admin password later

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.