Skip to main content

Server configuration

This page contains documentation about configuration options, to read the installation guide, click here

The configuration options of the Log Server, these can be set in a config.yml file or with environment variables.

Using environment variables?

The Field in the table below is used for configuring the server application using config.yml. If you are using environment variables, change the name of the Field into uppercase (api_port to API_PORT) and store all values as strings.

Required fields

All of the fields are required, unless stated in the description

FieldExampleDescription
developmentfalseEnable development mode, recommended to be off
api_port5000Port to run the REST API on, guides use port 5000
api_protocolhttpsThe protocol that the webapp runs on, should be https in production
api_hostnameapi.demo.capsa.ggThe hostname that the server runs on, http/https prefix will be stripped
webapp_hostnameweb.demo.capsa.ggThe hostname that the webapp runs on, for generating email links, without https
jwk_private_key_pathjwk.keyPath to signing private key, must be set if jwk_private_key_base64 is empty
jwk_private_key_base64cat jwk.key | base64Private key in base64, must be set if jwk_private_key_path is empty
db_hostlocalhostDatabase hostname
db_port5432Database port
db_namecapsadbDatabase name
db_usercapsauserDatabase user
db_pass-Database password for user
db_sslfalseIndicate if ssl should be used when connecting to the database
blobstorage_endpointhttps://ams3.example.comEndpoint for S3-compatible blob storage, used for storing log chunks
blobstorage_regionams3Reguion for blob storage
blobstorage_key-Key for accessing blob storage
blobstorage_secret-Secret for accessing blob storage
blobstorage_bucketcapsa-chunksBucket name to store log chunks in
email_sender_nameCapsa LogserverThe 'From' name for sent emails
email_sender_emailno-reply@capsa.ggThe 'From' email address for sent emails
brevo_api_key-The API key from Brevo to send transactional emails
log_retention_days30Amount of days after which logs should be deleted
log_max_duration_hours48Max log session duration (should be less than max dedicated server lifetime)

Note: you should either set jwk_private_key_path or jwk_private_key_base64, the server will not start if you set neither or both.

Optional fields

These fields can be set, but are not required to run the application.

FieldExampleDescription
sentry_dsn-Optional Sentry DNS, if this value is set, Sentry will be initialized

Example yaml

# Application configuration
development: true
api_port: 5000
api_protocol: https
api_hostname: api.demo.capsa.gg
webapp_hostname: https://web.demo.capsa.gg

# JWK
jwk_private_key_path: jwk.key
# jwt_private_key_base64: TmljZSB0cnksIHNraWRkeQo= # Commented out as we are using the path

# Database configuration - local
db_host: localhost
db_port: 5433
db_name: capsadb
db_user: capsauser
db_pass: capsapass
db_ssl: false

# Blob storage
blobstorage_endpoint: ams3.digitaloceanspaces.com
blobstorage_region: ams3
blobstorage_key: <omitted>
blobstorage_secret: <omitted>
blobstorage_bucket: capsa-storage

# Email configuration
email_sender_name: Capsa
email_sender_email: no-reply@capsa.gg
brevo_api_key: <omitted>

#Application logic configuration
log_retention_days: 30
log_max_duration_hours: 48

Example .env

# Application configuration
DEVELOPMENT=true
API_PORT=5000
API_PROTOCOL=http
API_HOSTNAME=https://api.capsa.dev/
WEBAPP_HOSTNAME=localhost:3000

# JWK
# JWK_PRIVATE_KEY_PATH=jwk.key # Commented out, we are using the base64 value
JWT_PRIVATE_KEY_BASE64=TmljZSB0cnksIHNraWRkeQo=

# Database configuration - local
DB_HOST=localhost
DB_PORT=5433
DB_NAME=capsadb
DB_USER=capsauser
DB_PASS=capsapass
DB_SSL=false

# Blob storage
BLOBSTORAGE_ENDPOINT=ams3.digitaloceanspaces.com
BLOBSTORAGE_REGION=ams3
BLOBSTORAGE_KEY=<omitted>
BLOBSTORAGE_SECRET=<omitted>
BLOBSTORAGE_BUCKET=capsa-storage

# Email configuration
EMAIL_SENDER_NAME=Capsa
EMAIL_SENDER_EMAIL=no-reply@capsa.gg
BREVO_API_KEY=<omitted>

# Application logic configuration
LOG_RETENTION_DAYS=30
LOG_MAX_DURATION_HOURS=48