Configuration - Continuwuity
Continuwuity
Configuration
Deploying
Generic
Docker
Debian
Fedora
NixOS
Arch Linux
Kubernetes
Nomad
FreeBSD
Calls
TURN
MatrixRTC / LiveKit
Appservices
Maintenance
Troubleshooting
Advanced
Delegation / split-domain
DNS tuning (recommended)
Security Policy for Continuwuity
Community
Community Guidelines
Partnered Homeserver Guidelines
Development
Development Guide
Contributing
Code Style Guide
Testing
Hot Reloading
Reference
Configuration Reference
Admin Command Reference
!admin appservices
!admin check
!admin debug
!admin federation
!admin media
!admin query
!admin rooms
!admin server
!admin token
!admin users
Configuration
This chapter describes various ways to configure Continuwuity.
Configuration file
Continuwuity uses a TOML config file for all of its settings. This is the recommended way to configure Continuwuity. Please refer to the
example config file
for all of these settings.
You can specify the config file to be used by Continuwuity with the command-line flag
-c
or
--config
./conduwuit
-c
/path/to/continuwuity.toml
Alternatively, you can use the environment variable
CONTINUWUITY_CONFIG
to specify the config file to be used; see
the section on environment variables
for more information.
Environment variables
All of the options in the config file can also be specified by using environment variables. This is ideal for containerised deployments and infrastructure-as-code scenarios.
The environment variable names are represented in all caps and prefixed with
CONTINUWUITY_
. They are mapped to config options in the ways demonstrated below:
# Top-level options (those inside the [global] section) are simply capitalised
CONTINUWUITY_SERVER_NAME
"matrix.example.com"
CONTINUWUITY_PORT
"8008"
CONTINUWUITY_DATABASE_PATH
"/var/lib/continuwuity"
# Nested config sections use double underscores `__`
# This maps to the `server` field of the [global.well_known] section in TOML
CONTINUWUITY_WELL_KNOWN__SERVER
"example.com:443"
# This maps to the `base_url` field of the `[global.antispam.draupnir]` section in TOML
CONTINUWUITY_ANTISPAM__DRAUPNIR__BASE_URL
"https://draupnir.example.com"
# Alternatively, you can pass a (quoted) struct to define an entire section
# This maps to the [global.well_known] section
CONTINUWUITY_WELL_KNOWN
"{ client=https://example.com,server=example.com:443 }"
Alternative prefixes
For backwards compatibility, Continuwuity also supports the following environment variable prefixes, in order of descending priority:
CONDUWUIT_*
(compatibility)
CONDUIT_*
(legacy)
As an example, the environment variable
CONTINUWUITY_CONFIG
can also be expressed as
CONDUWUIT_CONFIG
or
CONDUIT_CONFIG
Option command-line flag
Continuwuity also supports setting individual config options in TOML format from the
-O
--option
flag. For example, you can set your server name via
-O server_name=\"example.com\"
Note that the config is parsed as TOML, and shells like
bash
will remove quotes. Therefore, if the config option is a string, quote escapes must be properly handled. If the config option is a number or a boolean, this does not apply.
--option allow_registration=true
works ✅
-O max_request_size=99999999
works ✅
-O server_name=example.com
does not work ❌
--option log=\"debug\"
works ✅
--option server_name='"example.com'"
works ✅
Order of priority
The above configuration methods are prioritised, in descending order, as below:
Command-line
-o
--option
flags
Environment variables
CONTINUWUITY_*
variables
CONDUWUIT_*
variables
CONDUIT_*
variables
Config file
Therefore, you can use environment variables or the options flags to override values in the config file.
Executing startup commands
Continuwuity supports running admin commands on startup using the command-line flag
--execute
. This is treated as a standard admin command, without the need for the
!admin
prefix. For example, to create a new user:
# Equivalent to `!admin users create_user june`
./conduwuit
--execute
"users create_user june"
INFO
conduwuit_service::admin::startup:
Startup
command
#0 completed:
Created
user
with
user_id:
@june:girlboss.ceo
and
password:
redacted
Alternatively, you can configure
CONTINUWUITY_ADMIN_EXECUTE
or the config file value
admin_execute
with a list of commands.
This command-line argument can be paired with the
--option
flag.
ON THIS PAGE