selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Kurrier logo

Self-host Kurrier

v4.3.0

Self-hosted email, calendar, contacts and file workspace

ReleaseOpen SourceOther
Updatedlast week
LanguageTypescript
Setup difficultyModerate
ThemeDark mode
Stars
1 066
CPU
1 vCPU
RAM
1 GB
Ports
3000 (Web dashboard), 5232 (CalDAV/CardDAV (DAV) sync)
Requires
PostgreSQL, Redis
Install with Docker Compose
Kurrier dashboard preview in light modeKurrier dashboard preview in dark modeKurrier Calendar web UI in light modeKurrier Calendar web UI in dark modeKurrier Contacts web UIKurrier Drive storage volume selectionKurrier Drive search, sort, and view controlsKurrier Drive drag-and-drop upload with progressKurrier Drive PDF previewKurrier Drive share link creation and revocation

What is Kurrier?

A modern, self-hosted workspace that combines email, calendars, contacts, and file storage in a single web interface. It works with existing email providers through IMAP, SMTP, AWS SES, SendGrid, Mailgun, and Postmark; syncs calendars via CalDAV with Apple Calendar, Thunderbird, DAVx⁵, and Outlook; syncs contacts via CardDAV across iOS, Android, macOS, Windows, and Linux; and provides WebDAV/S3-backed file storage with sharing. Authentication options include local accounts, Google OIDC, and generic OIDC providers. The application is API-first with a management API for provisioning. Deployment uses Docker Compose with PostgreSQL and Redis, with a minimum of 1 GB memory and one CPU core. Licensed under AGPL-3.0-or-later. Hosted versions are available at Kurrier.io and Kurrier Mail.

Should you self-host Kurrier?

Kurrier scores 55/100 on selfhost.directory (how scoring works) and ranks #43 of 106 in Email. It has 1 066 GitHub stars.

It shipped 6 stable releases in the past year. The latest, v4.3.0, came out on 24 September 2026. New versions land roughly every 4 days.

Setup is moderate: expect some configuration beyond a single command. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Listmonk (80/100, 24 019 stars). It scores higher overall, so compare the two before you pick. See Kurrier vs Listmonk side by side.

Features

  • Calendars (CalDAV)
  • Contacts (CardDAV)
  • Email (IMAP/SMTP)
  • Extensions system
  • File storage (WebDAV/S3)
  • JMAP support
  • Localization
  • Mail rules and signatures
  • Management API
  • OIDC/SSO Authentication
  • Transactional email providers
  • Workspace branding

Kurrier README

How to install Kurrier

Install Kurrier with Docker Compose

Environment variables
JWT_SECRET, APP_SECRET_ENCRYPTION_KEY, LOCAL_TUNNEL_URL, WEB_URL, DAV_URL, DISABLE_DRIVE, DISABLE_LOCAL_LOGIN, DISABLE_SIGNUP, OIDC_GOOGLE_CLIENT_ID, OIDC_GOOGLE_CLIENT_SECRET, OIDC_ISSUER_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_PROVIDER_NAME, OIDC_SCOPES, OIDC_TOKEN_AUTH_METHOD, OIDC_REQUIRE_VERIFIED_EMAIL

git clone --single-branch https://github.com/kurrier-org/kurrier.git cd kurrier/db cp example.env .env cp -r init/* . docker compose up -d

Requires Docker and Docker Compose installed. At least 1 GB RAM and 1 vCPU (2 GB+ recommended for production).

How to configure Kurrier

  • APP_SECRET_ENCRYPTION_KEYApplication secret encryption key

    Application secret encryption key

  • DAV_URLhttp://localhost:5232Public CalDAV/CardDAV connection URL

    Public CalDAV/CardDAV connection URL

  • DISABLE_DRIVEfalseHide Kurrier Drive web interface

    Hide Kurrier Drive web interface

    values: true, false

  • DISABLE_LOCAL_LOGINfalseDisable email/password login for SSO-only deployments

    Disable email/password login for SSO-only deployments

    values: true, false

  • DISABLE_SIGNUPfalseDisable local account registration

    Disable local account registration

    values: true, false

  • JWT_SECRETJWT secret key for session signing

    JWT secret key for session signing

  • LOCAL_TUNNEL_URLPublic tunnel URL for local development (e.g., ngrok)

    Public tunnel URL for local development (e.g., ngrok)

  • OIDC_CLIENT_IDGeneric OIDC client ID

    Generic OIDC client ID

  • OIDC_CLIENT_SECRETGeneric OIDC client secret

    Generic OIDC client secret

  • OIDC_GOOGLE_CLIENT_IDGoogle OAuth client ID

    Google OAuth client ID

  • OIDC_GOOGLE_CLIENT_SECRETGoogle OAuth client secret

    Google OAuth client secret

  • OIDC_ISSUER_URLGeneric OIDC provider issuer URL

    Generic OIDC provider issuer URL

  • OIDC_PROVIDER_NAMESSOLabel on the login button for generic OIDC

    Label on the login button for generic OIDC

  • OIDC_REQUIRE_VERIFIED_EMAILtrueRequire verified email from OIDC provider

    Require verified email from OIDC provider

    values: true, false

  • OIDC_SCOPESopenid email profileOIDC scopes to request

    OIDC scopes to request

  • OIDC_TOKEN_AUTH_METHODclient_secret_basicToken endpoint authentication method

    Token endpoint authentication method

    values: client_secret_basic, client_secret_post

  • WEB_URLPublic web URL for hosted deployment

    Public web URL for hosted deployment

Kurrier releases & version history

More in File Storage

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…