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.0

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

Built distribution (wheel)

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

Total release size: 81.0 kB

Release files / taskdog_server-0.29.0.tar.gz

Download URL taskdog_server-0.29.0.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0f356134a2ccd38ca2c073ff88d87b8cd9a51d684de04a41981f03b765b44c89
BLAKE2b-256 checksum
How to use checksums
dd2d2f365017cd72416dc72b3c759035b49fde65aa36b82793138ab5c28f7fae
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 17, 2026.

Transparency log

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

Download URL taskdog_server-0.29.0-py3-none-any.whl
Size 45.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1374afe8661a12d7ec8ddccf90ec8ecef9411b7fd8337bce0374b379b2f175d3
BLAKE2b-256 checksum
How to use checksums
bc65297ca3fc0f7bb3cc83f468b9faf527c039685f428d700a5404bf5e9f0ec2
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 17, 2026.

Transparency log

Security for taskdog-server 0.29.0

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.0.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 Oct 17, 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