Skip to content
Conatus

Your tasks. Your server.

An open-source task manager for projects, recurring work and shared lists, on your own server. Inspired by Todoist.

The Conatus Today view with overdue and scheduled tasks, priorities, durations and labels, next to the project sidebar.The Conatus Today view with overdue and scheduled tasks, priorities, durations and labels, next to the project sidebar.
v1.2.1AGPL-3.0Self-hosted with Docker ComposeListed on AlternativeTo

Projects and subtasks.
A place for the whole project.

From the first idea to the last detail. Keep your projects, everyday tasks and the work you share in one place.

Bring a little order
to the big picture.

Nest projects, break them into sections and give every next step a home. Sub-tasks carry their own dates and labels.

  • Projects within projects
  • Four levels of priority
  • Labels and saved filters
  • List, board and calendar views
Explore projects
A real Conatus project with Backlog and In Progress sections, priorities and nested subtasks.A real Conatus project with Backlog and In Progress sections, priorities and nested subtasks.

Recurring tasks
for the things you do again.

Daily routines. Weekly reviews. The occasional deadline. Set your recurring work once, with due dates and deadlines kept separate.

Make it a routine
Recurring tasks in Conatus with repeat rules, due dates, times and separate deadline flags.Recurring tasks in Conatus with repeat rules, due dates, times and separate deadline flags.

Comments and files,
kept with the work.

Share a project, leave a comment and attach the file. Everything stays together, with attachments in your own S3 storage.

Work together
A Conatus task showing comments, a file attachment, subtasks, priority, labels and reminders.A Conatus task showing comments, a file attachment, subtasks, priority, labels and reminders.

Natural-language quick add.

Dates, priorities, projects and labels, in a single line.

Read the quick-add syntax

Conatus reads dates, times, repeats, durations, deadlines, reminders, priorities, projects and labels straight out of the task name. Typing “Call the dentist next Tuesday at 2pm for 30m #Errands @urgent” files the task in Errands, labelled urgent, at 2pm next Tuesday with a 30 minute estimate.

The Todoist import review step with project counts and a warning for a project with an existing name.The Todoist import review step with project counts and a warning for a project with an existing name.

Import from Todoist.
A familiar rhythm.

Already have a system in Todoist? Bring your projects, sections, tasks, labels and comments with you.

Connect the API or upload a backup, review what transfers, then make the move when you’re ready.

Bring your tasks overSee how Conatus compares to Todoist

API, webhooks and MCP.
Talks to your tools.

A versioned API, signed webhooks and a separately released MCP server. Connect your task manager to the rest of your world.

tasks.example.com
curl -H "Authorization: Bearer tdm_..." \
"https://tasks.example.com/api/v1/tasks?completed=false"

Scoped bearer tokens. Cursor pagination. An OpenAPI 3.1 contract.

Explore the API

Self-host with Docker.
Make yourself at home.

Conatus runs on your server with Docker Compose. Your tasks in PostgreSQL. Your files in S3 storage. Daily database backups from the first boot.

Read the complete install guide

Get the files.

Deployment files pinned to v1.2.1.

mkdir conatus && cd conatus
curl -fLO https://github.com/nojusmorkunas/conatus/releases/download/v1.2.1/docker-compose.yml
curl -fL -o .env https://github.com/nojusmorkunas/conatus/releases/download/v1.2.1/default.env.example

Make it yours.

Set your credentials before starting the stack.

Open .env and replace every replace-with-... value with a unique credential. Set CONATUS_ADMIN_USERNAME and CONATUS_ADMIN_PASSWORD for the first administrator.

CONATUS_VERSION=1.2.1CONATUS_BIND_ADDRESS=127.0.0.1

Use the loopback address for a local install or a reverse proxy on the same host. Compose checks that variables exist; it cannot detect unchanged placeholders.

Bring it to life.

Start the stack and sign in.

docker compose up -d

Open http://localhost:4399. For a domain, follow the reverse proxy guide.

Built for the long run.

Named Docker volumes keep your data persistent. A migration job runs before startup. Back up before upgrading; some migrations need a restore to roll back.

Upgrade guide

Open source.
Yours to keep.

Read the code. Run it yourself. Make it your own.
If Conatus is useful to you, a star helps others find it.