Configuration file

Kantree uses configuration files written in YAML. The main configuration file is located at the root of your installation under the name config.yml.

All available configuration options are listed in kantree/config.py.

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.
  • server_secured: set to true to indicate that the server is behind SSL.
  • 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
server_secured: true
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 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:

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

Redis

If Redis is not installed locally:

redis_uri: redis://host:port/db

Emails

If not configured, emails won’t be sent:

smtp_server: localhost
smtp_port: 587
smtp_username: example
smtp_password: example

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

mail_default_sender: "Kantree <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:

upload_dir: /my/path

An alternative is to use Amazon S3 using:

upload_default_backend: s3
upload_backends:
  - s3:
      access_key: ACCESSKEY
      secret_key: SECRETKEY
      bucket: BUCKETNAME
      async: true

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

upload_backends:
  - s3:
      access_key: ACCESSKEY
      secret_key: SECRETKEY
      bucket: BUCKETNAME
      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 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
allow_signup bool true Whether user can signup using an email/password

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

When you disable user signup, you will have to manually add users from the admin area or use an external authentification mechanism like LDAP.

Teams

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.

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)

Template library

Projects can be published to the template library by Kantree admins.

Key Type Default Description
open_template_library bool false Whether any member can publish projects to the library
template_library_featured_tag string   Any published project with this tag is featured when a user create a project (Can be a dict for localized tags where keys are the locale name)
template_library_display_tags arrays[string]   Only these tags will be visible in the template library. Any other tag can be used on templates but they will be hidden (Can be a dict for localized tags where keys are the locale name)

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.