Configuration file

Kantree uses configuration files written in YAML. The main configuration file is located at kantree/config-prod.yml.

Secret key

You must provide a secret key or the user session will not be secured. Changing the secret key will reset all user sessions.

secret_key: YOUR_SECRET_KEY


This is required if you serve Kantree from anything other than localhost.

Important: If you are using HTTPS, don’t forget to update the push server_url as well.


preferred_url_scheme: https
  - push:

Regarding the push server: it is launched on port 4000 and needs to be accessible from the web. If you are using Nginx with our example configuration file, then the push server_url should be the same as the server_name prefixed with the HTTP scheme.

If you are using an IP as your server_name, you will also need to set the option session_cookie_domain to the same value. Example:



You must provide this configuration:

  - models:
      database_uri: postgresql://user:pass@host:port/db


If Redis is not installed locally:

  - redis:
      url: redis://host:port/db


If not configured, emails won’t be sent:

  - emails:
      server: localhost
      port: 587
      username: example
      password: example

You can configure the default sender address using the default_sender option:

  - emails:

Uploaded files

Using the default configuration, uploaded files will be stored locally under the directory ./uploads. You can modify this directory using:

  - upload:
      upload_dir: /my/path

An alternative is to use Amazon S3 using:

  - upload:
      default_backend: s3
  - aws:
      access_key: ACCESSKEY
      secret_key: SECRETKEY
      upload_bucket: BUCKETNAME
      upload_async: true

If you are using a region that only supports the v4 signature, set the additional settings:

  - aws:
      access_key: ACCESSKEY
      secret_key: SECRETKEY
      upload_bucket: BUCKETNAME
      upload_async: true
      use_sig_v4: true
      region_name: REGIONNAME (eg: eu-central-1)

Note: Boto (the python AWS library) does not currently support server-side KMS encryption. See open issue here which contains a patch:



Key Type Default Description
user_can_create_projects bool true set to false to disallow user from creating personal projects
user_can_create_private_projects bool true set to false to disallow user from creating personal private projects
user_can_invite_guest_collabs bool true set to false to disallow user from inviting guest collaborators on their projects (they will still be allowed to invite observers)
user_can_join_organizations bool true set to false to disallow user from being part of teams
user_can_create_organizations bool true set to false to disallow user from creating teams
user_can_reset_password bool true Whether users can reset their password
user_can_delete_account bool true Whether users can delete their account
new_users_limit_domains array[string] [] Users can only signup if their emails use one of these domains
new_users_as_observers bool false Whether new users should be platform-wide observers by default
new_users_approved_domains array[string] [] List of domains where users will not be marked as observers when using the previous option
admin_can_add_new_users bool true Whether Kantree admins can add new users manually
allow_public_projects bool true Whether public projects are allowed at all

Some of these values can be overrided on a per-user basis.

To disable users signup (you will have to manually add users from the admin area), add this to your configuration file:

  - users:
      allow_signup: false


Key Type Default Description
org_create_on_signup bool false Whether to force the creation of a team on signup
org_can_invite_guest_collabs bool true set to false to disallow inviting guests collaborators (external to the org) on team’s projects (inviting observers will still be allowed)
org_can_create_private_projects bool true set to false to disallow the creation of private projects in teams (public ones will still be allowed)
org_at_least_one_owner_required bool false Whether an owner is always required for teams
org_auto_delete_when_no_members bool false Auto delete orgs when all their members have left
auto_join_org_on_signup string   Name of a team to join automatically on signup (auto creates the org if missing)

Some of these values can be overrided on a per-org basis.


Key Type Default Description
help_site_url string URL of the help site
hide_logout_button bool false Whether to hide the logout button
onboarding_tour_enabled bool true Whether to show a small tour when signing up
support_email string   Email address of support team
theme_color string   Default color of the interface (HEX color code)
navbar_logo_url string   URL of an image to use as logo in the top bar (image size: 200x50px)

Global templates

When creating projects, the user can create projects from a list of templates. Additionally to the templates the user has access to, you can show templates coming from any teams using some settings.

These templates can also be different for each locale.

The configuration key to use is templates_slugs which contains a map of locales to a list of templates. The templates are identified using their slug (the last part of the url).


  en: [1719de34-kanban, 7f33540a-scrum, f42a4cd9-product-development, 5df6a582-sales-pipeline, d8b5ce2b-recruiting]
  fr: [5f7aac2c-kanban-fr, 0237c002-scrum-fr, 230e8675-workflow-lean, 1dc28163-pipeline-de-vente, 8f150363-recrutements]

Log file

You can activate centralize logging to a file using the log_filename key:

log_filename: kantree.log

This will also activate the logs view in the admin.