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

Hostnames

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

  • server_name: the hostname (including port if different than 80) under which Kantree will be accessible. This will be used to generate urls.
  • preferred_url_scheme: set to “https” to indicate that the server is behind SSL.
  • features.push.server_url: the full url under which Kantree push server will be accessible. This will be used to connect to the push server from the frontend.

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

Example:

server_name: example.com
preferred_url_scheme: https
features:
  - push:
      server_url: https://example.com

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:

server_name: 192.168.1.1:5000
session_cookie_domain: 192.168.1.1:5000

PostgreSQL

You must provide this configuration:

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

Redis

If Redis is not installed locally:

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

Emails

If not configured, emails won’t be sent:

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

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

features:
  - emails:
      default_sender: no-reply@yourcompany.com

Uploaded files

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

features:
  - upload:
      upload_dir: /my/path

An alternative is to use Amazon S3 using:

features:
  - 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:

features:
  - 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: https://github.com/boto/boto/issues/2921

Options

Users

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 organizations
user_can_create_organizations bool true set to false to disallow user from creating organizations
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:

features:
  - users:
      allow_signup: false

Organizations

Key Type Default Description
org_create_on_signup bool false Whether to force the creation of an organization on signup
org_can_invite_guest_collabs bool true set to false to disallow inviting guests collaborators (external to the org) on organization’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 organizations (public ones will still be allowed)
org_at_least_one_owner_required bool false Whether an owner is always required for organizations
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 an organization to join automatically on signup (auto creates the org if missing)

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

Various

Key Type Default Description
help_site_url string http://help.kantree.io 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)

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.