Skip to main content

First-run Setup

You've installed the binary for your platform — now initialise the server, set the admin password, start it, and activate your license.

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, 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. Add your license key

scd-server is licensed with an opaque key of the form scd-lic-…, which it exchanges for an auto-renewing signed lease. There is no license file to place. You can supply the key in either of two ways:

  • Now, before starting — set it in the environment for the server process:

    export SCD_LICENSE_KEY='scd-lic-…'
  • After first login — paste it in the dashboard under Admin → Settings → License (see step 5). This is the usual path.

License required

scd-server needs a valid license to operate. Until you activate one, the dashboard lets an administrator sign in and reach Settings → License, but full access is not granted. See License for the lease model, offline activation, and renewal.


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.

If you did not set SCD_LICENSE_KEY, activate your license now under Admin → Settings → License — paste your scd-lic-… key (or, on an air-gapped install, use the offline activation flow). See License for details.

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.