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 docs/API.md.

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)]

Related Packages

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taskdog_server-0.26.0.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taskdog_server-0.26.0-py3-none-any.whl (44.6 kB view details)

Uploaded Python 3

File details

Details for the file taskdog_server-0.26.0.tar.gz.

File metadata

  • Download URL: taskdog_server-0.26.0.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for taskdog_server-0.26.0.tar.gz
Algorithm Hash digest
SHA256 0bd67c7f85fa03b19b9f475c5c480c2dfd14ff9d973905e1d99efc2f417d7a5c
MD5 6b4497eb70abe7a23e4589f7b15ddfcb
BLAKE2b-256 73b877863dd9ec35f27ebc2559b963e7966cf4b75cca2ba16166f58c8a8cac75

See more details on using hashes here.

Provenance

The following attestation bundles were made for taskdog_server-0.26.0.tar.gz:

Publisher: release.yml on Kohei-Wada/taskdog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taskdog_server-0.26.0-py3-none-any.whl.

File metadata

  • Download URL: taskdog_server-0.26.0-py3-none-any.whl
  • Upload date:
  • Size: 44.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for taskdog_server-0.26.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44d56dea2fa25345f7ed30158b5b7182edb59b38e89e711f93956d32f3f5357c
MD5 2b186babd89e92b7a959f303da834f1d
BLAKE2b-256 6134b025065cb1d383cff61dec13654c1e524261e5a21996799012780cb1674f

See more details on using hashes here.

Provenance

The following attestation bundles were made for taskdog_server-0.26.0-py3-none-any.whl:

Publisher: release.yml on Kohei-Wada/taskdog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page