Cambium

Documentation

Cambium Server

First Time Setup

1. Get the server running

Either run the image, or grab a copy of the source and run it directly:

cd CambiumServer
python3 server.py

2. Set the owner before first boot

Open serverconfig.conf and set the two things that matter on day one:

name: Northwind
owner: @mike
port: 8666
web_port: 8667

The file is plain key: value lines and anything else is treated as a comment, so annotate it freely. port is what the desktop client connects to; web_port is reserved for the browser portal that is coming later.

3. Claim the owner account

A fresh server has no users, and it does not ship with a default password. Instead, on first boot with an empty user list it creates the account you named as owner and prints a random one-time password to the console:

==============================================================
  First boot: created owner account @mike
  One-time password: ib1oXNaj_ccr9jmU
  Log in and change it immediately.
==============================================================

Log in from a client, then change the password immediately from the account menu, or with cambium password @mike <newpassword>.

4. Hand out the fingerprint

The server prints its TLS fingerprint when it starts. Give that to your team along with the address, because the first time each client connects it will ask them to confirm it. They can accept it in the prompt, or pin it up front:

cambium trust --fingerprint <fp>

5. Make a project

On the Administration page, Server Management has a project list. Create one, then either assign members directly or hand out an invite code. Each project has a permanent code you can enable and a temporary one you can regenerate. Members redeem a code from the connections window.

6. Add your team

User Management creates accounts and sets roles. Everyone starts as a member; promote the people who need the Administration page to admin. The owner's role cannot be changed, including by the owner.

From here, point everyone at Installing the Desktop Client.

Backups

The whole repository is a directory. Revisions, the content-addressed blob store, the head index, accounts and the TLS material all live under it.