Skip to main content

With Docker

Docker is the easiest way to get started with self-hosted Karrio.

Before you begin

You need the following installed in your system:


We release a new version of the server and dashboard every months.

# server image[VERSION]

# dashboard image[VERSION]

The image is suitable for production use. See the Configuration for a list of environment variables you can use to configure the container.


You can find the available release version tags on dockerhub.


The karrio server instance is configurable using the environment variables. karrio server is a Django based project and most of deployment settings are relevant to configure this project with few contextual naming differences.


  • KARRIO_HOST | default: localhost

The karrio server hostname

  • KARRIO_PORT | default: 5002

The karrio server port

  • KARRIO_WORKERS | default: 2

The number of parallel subprocesses for the karrio server

  • DETACHED_WORKER | [True, False] | default: False

Indicate whether the karrio server process should be detached from the background worker process.


Setting this option to True means that you intend to run the background worker process in another container or another runtime resource.

  • BACKGROUND_WORKERS | default: 2

The number of parallel subprocesses for the karrio server background worker

  • DEBUG_MODE | [True, False] | default: False

It is important to set DEBUG_MODE to False in production for security and performance.


Is the equivalent of django's DEBUG flag.


Set a list of authorized host in text separated by commas.

e.g: ","


The secret key must be a unique large value for security reason.

Is the equivalent of django's SECRET_KEY flag.

  • USE_HTTPS | [True, False] | default: False

You should set USE_HTTPS to True when you configure your system in production with SSL.

  • TRACKING_PULSE | default: 7200

The background tracking time interval in seconds. The default is of 2 hours. You can set it to a lower value if you want a more frequent tracking status update.



The redis host name or IP address.


The redis instance port.


  • ADMIN_EMAIL | default:

The default super user admin account email to add when the system start for the first time

  • ADMIN_PASSWORD | default: demo

The default super user password


Make sure to change the password later



The default value is DEBUG when DEBUG_MODE is True else INFO


Is the log file location.


The karrio server background worker persists events to process so that even after a shutdown, they can recover tasks and process them.


When you are using a container, you might want to mount this folder on a volume so that they can be recovered when the container shuts down.


Karrio uses PostgresSQL as a database.

  • DATABASE_HOST | default: db

The database host

the database host can be an IP address or a hostname

  • DATABASE_PORT | default: 5432

The database port

  • DATABASE_NAME | default: db

The database name

  • DATABASE_USERNAME | default: postgres

The database connection' user

  • DATABASE_PASSWORD | default: postgres

The database connection' password


  • EMAIL_USE_TLS | default: False

The email server use TLS

  • EMAIL_HOST_USER | default: False

The authentication user email


The authentication user password

  • EMAIL_HOST | default:

The email server host

  • EMAIL_PORT | default: 587

The email server port

  • EMAIL_PAGE_DOMAIN | default:

The email server use TLS

  • EMAIL_FROM_ADDRESS | default:

The email address to send emails from