Self-Hosting Keila: Configuration
When self-hosting Keila, you can configure most aspects of the application with environment variables.
Database
Configure the PostgreSQL database used by Keila:
Variable | Required | Default | Description |
---|---|---|---|
DB_URL | yes | - | URL following the schema postgres://user:password@host/database |
DB_ENABLE_SSL | no | false | Use SSL/TLS for the database connection |
DB_VERIFY_SSL_HOST | no | true | Enable SSL hostname verification (disable if connecting to an IP directly) |
DB_CA_CERT | no | - | SSL certificate (PEM) for connecting to the database |
Root User
When you start Keila for the first time, a root user is created. If you don’t specify otherwise, a user with a random password is created printed to stdout.
Variable | Required | Default | Description |
---|---|---|---|
KEILA_USER | root@localhost | Email address for the root user | |
KEILA_PASSWORD | random | Password for the root user |
URL
Configure publicly-visible URLs generated by Keila with the following variables:
Variable | Required | Default | Description |
---|---|---|---|
URL_HOST | yes | - | Domain of your Keila instance |
URL_PATH | / | Path of your Keila instance | |
URL_SCHEMA | http | http or https . URL scheme of your Keila instance | |
URL_PORT | 443 if URL_SCHEMA is https value of PORT otherwise | Port of your Keila instance |
Deployment
Variable | Required | Default | Description |
---|---|---|---|
PORT | 4000 | Port on which Keila will listen | |
SECRET_KEY_BASE | yes | - | Strong secret with at least 64 characters. Can be generated with head -c 48 /dev/urandom | base64 |
HASHID_SALT | derived from SECRET_KEY_BASE | Salt for creating Hashids. More information | |
DISABLE_REGISTRATION | false | Disable user registration by setting this variable to true | |
DISABLE_PRECEDENCE_HEADER | false | Disable the Precedence: Bulk header by settings this variable to true | |
USER_CONTENT_DIR | ./uploads | Path to a directory where user uploads will be stored. When deploying using containers, this should point to the path of a volume to make sure uploads are persisted. | |
USER_CONTENT_BASE_URL | - | Base URL at which files in USER_CONTENT_DIR are available on the web. It’s recommended to set up a separate server (such as Nginx or Apache) to serve user content. If not set, Keila wil serve user content files directly. |
System mailer
Keila needs to be able to send system emails, e.g. for registration and password reset emails. Configure an SMTP sender for this purpose with the following variables:
Variable | Required | Default | Description |
---|---|---|---|
MAILER_TYPE | smtp | Currently only smtp is supported | |
MAILER_SMTP_HOST | yes | - | Hostname of the SMTP server |
MAILER_SMTP_PORT | 587 | Port of the SMTP server | |
MAILER_SMTP_USER | yes | - | Username for the SMTP server |
MAILER_SMTP_PASSWORD | yes | - | Password for the SMTP server |
MAILER_SMTP_FROM_EMAIL | MAILER_SMTP_USER | FROM email address | |
MAILER_ENABLE_SSL | false | Enable SSL/TLS by setting to true | |
MAILER_ENABLE_STARTTLS | false | Enable STARTTLS by setting to true |
Captcha
Keila can use hCaptcha or Friendly Captcha to protect your sign-up forms. Configure the captcha provider with the following variables:
Variable | Required | Default | Description |
---|---|---|---|
CAPTCHA_PROVIDER | hcaptcha | Captcha provider, one of hcaptcha or friendly_captcha | |
CAPTCHA_SITE_KEY | - | Captcha provider site key | |
CAPTCHA_SECRET_KEY | - | Captcha provider secret key | |
CAPTCHA_URL | variable | Captcha provider verification URL, defaults to https://hcaptcha.com/siteverify for hcaptcha and https://api.friendlycaptcha.com/api/v1/siteverify for friendly_captcha |