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 createdtask_updated- Task fields updatedtask_deleted- Task deletedtask_status_changed- Task status changedschedule_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 operationslifecycle.py- Task status changesrelationships.py- Dependencies and tagsanalytics.py- Statistics and reportingnotes.py- Markdown noteswebsocket.py- Real-time updates
Dependency Injection
Controllers are injected via FastAPI dependencies:
CrudControllerDep = Annotated[TaskCrudController, Depends(get_crud_controller)]
Related Packages
- taskdog-core: Core business logic used by this package
- taskdog-ui: CLI and TUI interfaces connecting to this server
- taskdog-client: HTTP client library for API access
- taskdog-mcp: MCP server for Claude Desktop integration
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
Release files for taskdog-server 0.28.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| taskdog_server-0.28.0.tar.gz | 34.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| taskdog_server-0.28.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.0 kB
Release files / taskdog_server-0.28.0.tar.gz
| Download URL | taskdog_server-0.28.0.tar.gz |
|---|---|
| Size | 34.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f74f524b8b8b4f50846fedfe4833d5efdfdba45bbeb302058954da7a595b4438
|
|
BLAKE2b-256 checksum How to use checksums |
146f25e1f53ab11fcf70e73c74c00d1ee5b87cc914c0fe1abdfa5ed3eae32161
|
| 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 Sep 13, 2026.
Transparency logRelease files / taskdog_server-0.28.0-py3-none-any.whl
| Download URL | taskdog_server-0.28.0-py3-none-any.whl |
|---|---|
| Size | 44.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e51e3038d85100560fcc3c18d3d2c4ef0b9f9d74935dbca3b8a11767997cbd8
|
|
BLAKE2b-256 checksum How to use checksums |
2a77cc6d806e5abb22e804660ef019f3cba9b3d2e8c44198dece78a7b405bb5f
|
| 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 Sep 13, 2026.
Transparency log