Skip to content
Conduit

mcp server

conatus

A self-hosted task manager for projects, recurring work, reminders, collaboration and automation. Inspired by Todoist.

nojusmorkunas/conatuscommunitylistedunreviewednot running here yet

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 14, 2026

Conatus is a self-hosted task manager inspired by Todoist. It runs on your own server with Docker Compose, with tasks in PostgreSQL and files in S3 storage you control. AI agents can read, create, reschedule and complete your tasks through the MCP server, and your own scripts can use the REST API and webhooks. Conatus is free and open source under the AGPL.

  • Projects with sections, sub-tasks, labels, four priorities and saved filters
  • Recurring tasks with due dates, separate deadlines, durations and reminders
  • Quick add that reads dates, repeats, p1, #project and @label straight from the task name
  • List, board and calendar views, plus an iCal feed for your calendar app
  • Shared projects with comments, assignees and file attachments
  • Todoist import from an API token or a backup file
  • A REST API with scoped tokens, signed webhooks and an MCP server for AI agents
  • Daily database backups from the first boot

Deploy

1. Get the Compose file and environment template

mkdir conatus
cd conatus

curl -O https://raw.githubusercontent.com/nojusmorkunas/conatus/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/nojusmorkunas/conatus/main/.env.example

2. Edit your credentials

Open .env and replace every replace-with-... value with your own:

# latest follows the newest stable release. Pin an exact version without the
# leading "v" to upgrade only when you choose.
CONATUS_VERSION=latest
CONATUS_PORT=4399

POSTGRES_USER=app
POSTGRES_PASSWORD=replace-with-a-long-random-password
POSTGRES_DB=app

AUTH_SECRET=replace-with-a-long-random-secret

S3_ACCESS_KEY=replace-with-a-random-access-key
S3_SECRET_KEY=replace-with-a-long-random-secret-key

# Optional: creates the first administrator on an empty database.
CONATUS_ADMIN_USERNAME=admin
CONATUS_ADMIN_PASSWORD=replace-with-a-long-random-password

If you use a domain or reverse proxy, also set AUTH_URL and PUBLIC_BASE_URL to the external HTTPS address. The reverse proxy guide has Caddy and nginx configs.

3. Start Conatus

docker compose up -d

Docker Compose pulls the Conatus application, operations, PostgreSQL and Silo images. Silo stores attachments and is a maintained fork of MinIO. Open http://localhost:4399 and sign in with the administrator credentials from .env, then remove CONATUS_ADMIN_USERNAME and CONATUS_ADMIN_PASSWORD from .env.

Upgrading

Set CONATUS_VERSION to the new release, then run:

docker compose pull
docker compose up -d

Migrations run automatically before the application starts, and you can upgrade from any earlier published release. Back up the database first, since some migrations need a restore to roll back. See the upgrade guide.

Documentation

The full documentation is at useconatus.com:

Contributing

Questions and ideas go in Discussions and bugs in Issues. See CONTRIBUTING.md for local setup, database migrations and the checks a pull request needs to pass.

License

AGPL-3.0-or-later. See LICENSE.

Star history

↑↓ navigate openesc close