Skip to main content

taskdog-server

FastAPI server for Taskdog task management system.

Overview

This package provides a REST API for all Taskdog functionality including:

  • Task CRUD operations
  • Task lifecycle management (start, complete, pause, cancel, reopen)
  • Task relationships (dependencies, tags)
  • Time tracking and logging
  • Schedule optimization
  • Statistics and analytics
  • WebSocket real-time updates

Installation

pip install taskdog-server

For development:

pip install -e ".[dev]"

Usage

Start the server:

taskdog-server

With custom options:

taskdog-server --host 0.0.0.0 --port 3000

Development mode with auto-reload:

taskdog-server --reload

API Documentation

Once the server is running, visit:

  • Interactive API docs: http://localhost:8000/docs
  • Alternative docs: http://localhost:8000/redoc
  • Health check: http://localhost:8000/health

For complete API reference, see API Guide.

Authentication

Configure API key authentication in ~/.config/taskdog/server.toml:

[auth]
enabled = true

[[auth.api_keys]]
name = "my-client"
key = "your-secret-key"

Clients authenticate via X-Api-Key header:

curl -H "X-Api-Key: your-secret-key" http://localhost:8000/api/v1/tasks/

See Authentication Documentation for details.

WebSocket Real-time Updates

Connect to /ws for real-time task notifications:

const ws = new WebSocket('ws://localhost:8000/ws?token=your-api-key');

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Event:', data.type);  // task_created, task_updated, etc.
};

Event types:

  • task_created - New task created
  • task_updated - Task fields updated
  • task_deleted - Task deleted
  • task_status_changed - Task status changed
  • schedule_optimized - Schedule optimization completed

Note: WebSocket uses an in-memory connection manager, so the server always runs as a single process.

Configuration

Server configuration: ~/.config/taskdog/server.toml

[auth]
enabled = true

[[auth.api_keys]]
name = "my-client"
key = "your-secret-key"

[audit]
enabled = false

Core configuration: ~/.config/taskdog/core.toml

[region]
country = "JP"

See Configuration Guide for all options.

Architecture

The server uses:

  • FastAPI: Modern, fast web framework
  • Pydantic: Data validation with type hints
  • uvicorn: ASGI server
  • taskdog-core: Core business logic and infrastructure

API Routers

  • tasks.py - Task CRUD operations
  • lifecycle.py - Task status changes
  • relationships.py - Dependencies and tags
  • analytics.py - Statistics and reporting
  • notes.py - Markdown notes
  • websocket.py - Real-time updates

Dependency Injection

Controllers are injected via FastAPI dependencies:

CrudControllerDep = Annotated[TaskCrudController, Depends(get_crud_controller)]

Testing

pytest tests/

Deployment

Systemd (Linux)

systemctl --user start taskdog-server
systemctl --user enable taskdog-server

Docker

docker pull ghcr.io/kohei-wada/taskdog-server:main
docker run -d -p 8000:8000 -v taskdog-data:/data ghcr.io/kohei-wada/taskdog-server:main

See contrib/README.md for deployment details.

License

MIT

Metadata

Release files for taskdog-server 0.28.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taskdog-server 0.28.1
File Size Uploaded
taskdog_server-0.28.1.tar.gz 34.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for taskdog-server 0.28.1
File Interpreter ABI Platform
taskdog_server-0.28.1-py3-none-any.whl Python 3 none any Details

Total release size: 79.4 kB

Release files / taskdog_server-0.28.1.tar.gz

Download URL taskdog_server-0.28.1.tar.gz
Size 34.6 kB
Tags Source
SHA-256 checksum
How to use checksums
62cf2c5ce5c2f39236694f5c1eeebe0778bd84809bd333c3a4807cfa2203d1e2
BLAKE2b-256 checksum
How to use checksums
fbe3340ec05d6e0385fea30df1229979d5de8eefef5ffb793286761f3451238b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / taskdog_server-0.28.1-py3-none-any.whl

Download URL taskdog_server-0.28.1-py3-none-any.whl
Size 44.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d09fccf4b35c76efbbd2263176dc85d2610864bc9e905684521a14d66e3db420
BLAKE2b-256 checksum
How to use checksums
bac12c79cb4ec4f074ddf062f9850a39aa45cd1598bc4c66a2667493671e9e1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.28.1 This release

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.20.0

2 release files

0.18.6

2 release files

0.18.4

2 release files

0.18.3

2 release files

0.18.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page