Lightweight open-source ticket/issue tracking system with webhooks
Go to file
Ricel Leite 03f68061b1 fix: Preserve line breaks in comments (whitespace-pre-wrap) 2026-02-18 18:03:04 -03:00
backend fix: Preserve line breaks in comments (whitespace-pre-wrap) 2026-02-18 18:03:04 -03:00
frontend/static feat: Initial TicketHub release 2026-02-18 16:38:46 -03:00
README.md feat: Initial TicketHub release 2026-02-18 16:38:46 -03:00
docker-compose.yml feat: Initial TicketHub release 2026-02-18 16:38:46 -03:00

README.md

🎫 TicketHub

Lightweight open-source ticket/issue tracking system with webhook support.

Features

  • Projects - Organize tickets by project with unique keys (e.g., PROJ-123)
  • Tickets - Create, update, and track issues with status and priority
  • Comments - Add comments to tickets for collaboration
  • Webhooks - Trigger external systems on ticket events
  • Simple - SQLite database, no complex setup required

Quick Start

Docker

docker-compose up -d

Access at http://localhost:8080

Manual

cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000

API Endpoints

Projects

  • GET /api/projects - List all projects
  • POST /api/projects - Create project
  • GET /api/projects/{id} - Get project
  • DELETE /api/projects/{id} - Delete project

Tickets

  • GET /api/tickets - List tickets (filter by project_id, status)
  • POST /api/tickets - Create ticket
  • GET /api/tickets/{id} - Get ticket
  • GET /api/tickets/key/{key} - Get ticket by key (e.g., PROJ-123)
  • PATCH /api/tickets/{id} - Update ticket
  • DELETE /api/tickets/{id} - Delete ticket

Comments

  • GET /api/tickets/{id}/comments - List comments
  • POST /api/tickets/{id}/comments - Add comment

Webhooks

  • GET /api/webhooks - List webhooks
  • POST /api/webhooks - Create webhook
  • DELETE /api/webhooks/{id} - Delete webhook
  • PATCH /api/webhooks/{id}/toggle - Enable/disable webhook

Webhook Events

When configured, TicketHub sends POST requests to your webhook URL:

{
  "event": "ticket.created",
  "timestamp": "2026-02-18T12:00:00Z",
  "data": {
    "id": 1,
    "key": "PROJ-1",
    "title": "Issue title",
    "description": "...",
    "status": "open",
    "priority": "medium"
  }
}

Events: ticket.created, ticket.updated, comment.added

Integration with JIRA AI Fixer

Configure webhook URL in your project pointing to JIRA AI Fixer:

https://jira-fixer.example.com/api/webhook/tickethub

License

MIT