Server Quickstart
Set up an Excalibur server for clients to connect.
Prerequisites
You will require Python 3.11+ installed on your system to run the Excalibur server.
We also recommend using pipx to install the server, as it will allow you to run the server without requiring administrator privileges.
Installation
First, download the Excalibur server, which is a .whl file. Once done, we can install the server.
If you are using pipx, you can run
pipx install [PATH_TO_WHEEL_FILE]
Check that the server is installed correctly by running
excalibur --version
You should see the version of the server printed to the console.
Setting Up
Now we need to initialize the server by running
excalibur init
This will create a new folder excalibur-files in the current working directory. You should also notice a message like Account Creation Key Mnemonic followed by 24 words; these words are your Account Creation Key (ACK) mnemonic, which is needed to create an account from the client.
The ACK is actually a 256-bit (32-byte) random number, but it is represented as a mnemonic for ease of use.
If you want to see the ACK mnemonic again, use the command
excalibur user ack
This will print the ACK mnemonic to the console.
Configuration
The configuration file is a TOML file named config.toml in the excalibur-files folder. There are a few key values that you might want to edit:
server.rate_limit.capacityandserver.rate_limit.fill_rate: These control the rate limit for the server. The default values are20and1respectively.security.session_duration: The duration of a login session in seconds. The default value represents 1 hour, but you can set it to a higher or lower value if you prefer.security.srp.group: The size of the Secure Remote Password (SRP) group used for authentication. The default value ofsmallis sufficient for most use cases, but if you prefer a higher security, you can set it tomediumorlarge.
Starting the Server
To start the Excalibur server, run
excalibur start
You can check if the server is running by going to http://localhost:52419/api/well-known/version. You should see a response like the following:
{
"version": "x.y.z",
"commit": null
}
You might want to change the host and port that the server runs on. You can do this by setting specifying the --host and --port flags when starting the server. For example, to listen on all IPs and port 8080, run
excalibur start --host 0.0.0.0 --port 8080
To see all options that you can use when starting the Excalibur server, run
excalibur start --help
Congratulations! You have successfully set up an Excalibur server. Move on to the Client Quickstart to set up a client to connect to your server.