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. Clients that can set headers should send X-Api-Key; browsers can only use ?token=, which is written to access logs:

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.29.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.29.1
File Size Uploaded Provenance Actions
taskdog_server-0.29.1.tar.gz 35.7 kB With provenance Details for taskdog_server-0.29.1.tar.gz

Built distribution (wheel)

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

Total release size: 81.0 kB

Release files / taskdog_server-0.29.1.tar.gz

Download URL taskdog_server-0.29.1.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f53660ea334a0fa06dc4636df8f0beb800191cc757c83b7f11da02972ada6372
BLAKE2b-256 checksum
How to use checksums
40605e88914289e1d528d6e77eb528d9274c768c944808976112b57c3a261afb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

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

Download URL taskdog_server-0.29.1-py3-none-any.whl
Size 45.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9fe6f101da92b4f21539431eb6bbe771211dc0d9a33b6783e39400f80237150
BLAKE2b-256 checksum
How to use checksums
ba00bec297897fa3288b55118578a7c3b8235bf1cb100f2fb3dfca47719ba193
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

Security for taskdog-server 0.29.1

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for taskdog_server-0.29.1.tar.gz

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 Nov 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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