Admin Chat Webhook (optional)

field admin_chat_webhook
env var ADMIN_CHAT_WEBHOOK

General

Site Name (optional)

The name of the site, it will show up in the site title, and other places.

field general.name
env var SITE_NAME
default Karrot

URL to an image that will be used as the logo, a PNG with transparent background is recommended

field general.logo
env var SITE_LOGO

PNG with transparent background is recommended because there is not
good enough support in email clients for other formats, e.g. SVG.

For now, you have to find a way to host the file yourself and provide
the URL here. In the future you will be able to upload it here.

Account

Email Verification Time (hours) (optional)

Time until a verification code expires

field account.email_verification_time_limit_hours
env var EMAIL_VERIFICATION_TIME_LIMIT_HOURS
default 168

Password Reset Time (minutes) (optional)

Time until a password reset link expires

field account.password_reset_time_limit_minutes
env var PASSWORD_RESET_TIME_LIMIT_MINUTES
default 180

Account Delete Time (minutes) (optional)

Time until an account delete email link expires

field account.account_delete_time_limit_minutes
env var ACCOUNT_DELETE_TIME_LIMIT_MINUTES
default 180

Email

Configure email settings

Email Backend (optional)

Choose how sending email is handled

field email.backend
env var EMAIL_BACKEND
default console

From Address (optional)

field email.from_email
env var EMAIL_FROM
default karrot@example.com
examples karrot@example.com

Email Reply Domain (optional)

Domain to which email replies go to

field email.reply_domain
env var EMAIL_REPLY_DOMAIN
examples replies.example.com

Email Reply Trimmer URL (optional)

Service to handle email reply trimming

field email.reply_trimmer_url
env var EMAIL_REPLY_TRIMMER_URL
examples http://localhost:4567/trim

A service to trim the reply section from emails when receiving incoming emails.

See https://github.com/karrot-dev/email_reply_trimmer_service

SMTP

Host

The host to use for sending email

field email.smtp.host
env var SMTP_HOST

Port (optional)

Port to use for the SMTP server

field email.smtp.port
env var SMTP_PORT
default 25

User (optional)

Username to use for the SMTP server

field email.smtp.user
env var SMTP_USER

Password (optional)

Password to use for the SMTP server

field email.smtp.password
env var SMTP_PASSWORD

Use TLS (optional)

Use explicit TLS connection, generally on port 587

field email.smtp.use_tls
env var SMTP_USE_TLS
default False

Use SSL (optional)

Use implicit TLS, generally on port 465

field email.smtp.use_ssl
env var SMTP_USE_SSL
default False

SSL Keyfile (optional)

Path to a PEM-formatted private key file

field email.smtp.ssl_keyfile
env var SMTP_SSL_KEYFILE

SSL Certfile (optional)

Path to a PEM-formatted certificate chain file

field email.smtp.ssl_certfile
env var SMTP_SSL_CERTFILE

Postal

Configure settings to send email via a postal server

Postal is a self hostable email server.

You can find out more at https://postalserver.io/

Postal API URL (optional)

field email.postal.api_url
env var POSTAL_API_URL

Postal API Key (optional)

field email.postal.api_key
env var POSTAL_API_KEY

Postal Webhook Key (optional)

Used for Postal to call back to Karrot

field email.postal.webhook_key
env var POSTAL_WEBHOOK_KEY

Webhooks allow Postal to make requests to Karrot. The webhook key is what ensures that happens securely.

The webhooks have two purposes:
- receiving tracking events
- receiving incoming email

You might configure this even if you are not using Postal for sending email as you
can still use Postal for handling incoming email in that scenario.

Meet

Options for video calling

Video calling is powered by LiveKit.

This can be self-hosted, or you can use their hosted option.

LiveKit Endpoint (optional)

field meet.livekit_endpoint
env var MEET_LIVEKIT_ENDPOINT

LiveKit API Key (optional)

field meet.livekit_api_key
env var MEET_LIVEKIT_API_KEY

LiveKit API Secret (optional)

field meet.livekit_api_secret
env var MEET_LIVEKIT_API_SECRET

Use LiveKit room prefix (optional)

If enabled prefixes room names with the base URL,allowing multiple deployments to use the same instance

field meet.use_livekit_room_prefix
env var MEET_USE_LIVEKIT_ROOM_PREFIX
default False

Web Push

Settings for web push notifications

VAPID Public Key

field web_push.vapid_public_key
env var VAPID_PUBLIC_KEY

VAPID Private Key

field web_push.vapid_private_key
env var VAPID_PRIVATE_KEY

VAPID Admin Email

field web_push.vapid_admin_email
env var VAPID_ADMIN_EMAIL
examples admin@example.com

Discourse

URL

field discourse.url
env var PROXY_DISCOURSE_URL
examples https://community.karrot.world, https://forum.example.com

Banner Topic ID (optional)

Topic to use for the banner inside Karrot

field discourse.banner_topic_id
env var FORUM_BANNER_TOPIC_ID
examples 930

Discussions Feed (optional)

Feed to use for the discussions section

field discourse.discussions_feed
env var FORUM_DISCUSSIONS_FEED
examples latest.json

Upload

Max Upload Size (optional)

Maximum size allowed for image or attachment uploads

field uploads.max_size
env var FILE_UPLOAD_MAX_SIZE
default 10m
examples 500k, 20m, 1g

Use Accel Redirect (optional)

Allows nginx to serve files that were uploaded by users, you must also configure this in nginx

field uploads.use_accel_redirect
env var FILE_UPLOAD_USE_ACCEL_REDIRECT
default False

Issues

voting_duration_days (optional)

field issues.voting_duration_days
env var VOTING_DURATION_DAYS
default 7

voting_due_soon_hours (optional)

field issues.voting_due_soon_hours
env var VOTING_DUE_SOON_HOURS
default 12

Conversations

message_edit_days (optional)

field conversations.message_edit_days
env var MESSAGE_EDIT_DAYS
default 2

conversation_closed_days (optional)

field conversations.conversation_closed_days
env var CONVERSATION_CLOSED_DAYS
default 7

Groups

Trust

group_editor_trust_max_threshold (optional)

Maximum trust needed to get editor role

field groups.trust.group_editor_trust_max_threshold
env var GROUP_EDITOR_TRUST_MAX_THRESHOLD
default 3

The amount of trust needed to get editor role changes depending on how many people are in the group, as the group gets bigger, more trust is needed. This is the maximum amount of trust that will ever be needed.

Group Inactivity

For managing inactive groups

days_until_group_inactive (optional)

field groups.inactivity.days_until_group_inactive
env var NUMBER_OF_DAYS_UNTIL_GROUP_INACTIVE
default 14

Membership Inactivity

For managing inactive users in groups

days_until_inactive_in_group (optional)

For marking users inactive

field groups.membership_inactivity.days_until_inactive_in_group
env var NUMBER_OF_DAYS_UNTIL_INACTIVE_IN_GROUP
default 30

inactive_months_until_removal_notification (optional)

For sending users an email telling them they will be removed from a group

field groups.membership_inactivity.inactive_months_until_removal_notification
env var NUMBER_OF_INACTIVE_MONTHS_UNTIL_REMOVAL_FROM_GROUP_NOTIFICATION
default 6

days_after_removal_notification_we_actually_remove_them (optional)

For actually removing them, after they have been notified

field groups.membership_inactivity.days_after_removal_notification_we_actually_remove_them
env var NUMBER_OF_DAYS_AFTER_REMOVAL_NOTIFICATION_WE_ACTUALLY_REMOVE_THEM
default 7

Places

Max Weeks in Advance (optional)

Max allowable value for how many weeks in advance activities are created for a series

field places.store_max_weeks_in_advance
env var PLACE_MAX_WEEKS_IN_ADVANCE, STORE_MAX_WEEKS_IN_ADVANCE
default 52

This is still dependent on setting it for a specific place, which can use a lower value, but not higher

Activities

Feedback Period (days) (optional)

Time period after an activity that feedback can be submitted

field activities.feedback_possible_days
env var FEEDBACK_POSSIBLE_DAYS
default 30

Activity Due Soon Notification (hours) (optional)

Time before activity is due that an upcoming activities notification will be issued

field activities.activity_due_soon_hours
env var ACTIVITY_DUE_SOON_HOURS
default 6

Activity Reminder (hours) (optional)

Time before activity is due that a push notification will be sent

field activities.activity_reminder_hours
env var ACTIVITY_REMINDER_HOURS
default 3

Activity Left Late (hours) (optional)

Time before activity is due to start that it is considered too late

field activities.activity_leave_late_hours
env var ACTIVITY_LEAVE_LATE_HOURS
default 24

This will be considered when viewing the activity statistics