MCPSERV.CLUB
UVDesk

UVDesk

Self-Hosted

Open‑source helpdesk for multi‑channel support

Active(86)
15.9kstars
0views
Updated 23 days ago
UVDesk screenshot 1
1 / 3

Overview

Discover what makes UVDesk powerful

UVDesk is a PHP‑centric, open‑source helpdesk and project management platform designed for self‑hosting. At its core it exposes a robust ticketing engine, multi‑channel communication (email, web forms, marketplace APIs) and an extensible plugin architecture. The system is built around the Symfony framework (v5+) with a modular component structure, allowing developers to inject custom services or replace existing ones without touching the core. Data persistence is handled via Doctrine ORM, supporting MySQL/MariaDB out of the box but easily switchable to PostgreSQL or SQLite through configuration. The front‑end leverages Vue.js for a reactive ticket dashboard, while Twig templates provide server‑side rendering for SEO‑friendly pages.

Multi‑channel ticketing

RESTful API

Event bus & webhooks

Plugin system

Overview

UVDesk is a PHP‑centric, open‑source helpdesk and project management platform designed for self‑hosting. At its core it exposes a robust ticketing engine, multi‑channel communication (email, web forms, marketplace APIs) and an extensible plugin architecture. The system is built around the Symfony framework (v5+) with a modular component structure, allowing developers to inject custom services or replace existing ones without touching the core. Data persistence is handled via Doctrine ORM, supporting MySQL/MariaDB out of the box but easily switchable to PostgreSQL or SQLite through configuration. The front‑end leverages Vue.js for a reactive ticket dashboard, while Twig templates provide server‑side rendering for SEO‑friendly pages.

Key Features

  • Multi‑channel ticketing: Native connectors for Gmail, Outlook, and popular marketplaces (Amazon, eBay, Etsy). Developers can write custom channel adapters following the ChannelInterface contract.
  • RESTful API: Exposes CRUD endpoints for tickets, agents, customers, and workflows. Authentication is token‑based (JWT) and can be scoped per client.
  • Event bus & webhooks: Emits domain events (TicketCreated, AgentAssigned) that can be consumed by external services or internal plugins. Webhook endpoints are configurable per tenant.
  • Plugin system: A plugin manager loads Composer packages that declare a uvdesk.plugin.json descriptor. Plugins can register routes, services, and database migrations through Symfony bundles.
  • Workflow engine: Declarative state machines for tickets (Open → Pending → Resolved) with guard conditions, allowing custom transition logic via PHP callbacks.

Technical Stack

LayerTechnology
BackendPHP 8.1, Symfony 5+, Doctrine ORM
FrontendVue.js 3 + Vite, Tailwind CSS
DatabaseMySQL/MariaDB (default), PostgreSQL support
SearchElasticsearch integration for full‑text ticket search
MessagingSymfony Messenger (Redis/AMQP) for async email dispatch
ContainerizationOfficial Docker images available; Compose files expose services (web, db, redis, elasticsearch)
CI/CDGitHub Actions for linting, unit tests, and Docker image publishing

Deployment & Infrastructure

UVDesk is intentionally lightweight for on‑premise deployments. A single docker-compose.yml can spin up a complete environment, but for production you should consider:

  • Horizontal scaling: Stateless web containers behind a load balancer; shared Redis/Message queue for job queues.
  • Database replication: Master‑slave MySQL setup to handle read traffic from ticket search APIs.
  • Persistent storage: Docker volumes for media uploads; optional S3‑compatible object store via Flysystem.
  • SSL termination: Let’s Encrypt integration through Traefik or Nginx reverse proxy.

The application follows the Twelve‑Factor App principles: environment variables for configuration, externalized secrets, and statelessness of the web tier.

Integration & Extensibility

  • Composer‑based plugin ecosystem: Any package that follows the UVDesk plugin contract can be installed via composer require vendor/uvdesk-plugin.
  • Custom channel adapters: Implement the Uvdesk\Channel\ChannelInterface and register it in your bundle’s services.yaml.
  • Webhook listeners: Create Symfony event subscribers that listen to Uvdesk\Event\TicketEvent events.
  • API extensions: Override controller actions or add new routes with custom services; the API schema is documented in OpenAPI format.
  • Theme overrides: Twig templates can be overridden by placing files in templates/custom/. CSS can be customized via SCSS variables.

Developer Experience

  • Documentation: Comprehensive guides on the official docs site (docs.uvdesk.com) cover API usage, plugin development, and deployment best practices.
  • Community: Active Gitter channel, forums, and an Open Collective for sponsorship. The codebase follows PSR‑4 autoloading, making IDE navigation straightforward.
  • Testing: PHPUnit test suite with coverage reports; integration tests can be run against a Docker Compose environment.
  • Configuration: Symfony’s ParameterBag and .env files allow fine‑grained control over mail servers, marketplace credentials, and feature flags.

Use Cases

  • Enterprise support portals: Companies can self‑host UVDesk to retain customer data while providing a modern ticketing interface.
  • Marketplace integration: E‑commerce platforms (Shopify, Magento) can plug into UVDesk to centralize order‑related support tickets.
  • Custom workflow automation: Developers can script ticket routing rules or auto‑responses using the event system.
  • Multi‑tenant SaaS: With proper database sharding and tenant‑aware services, UVDesk can serve as the backbone for a self‑hosted helpdesk SaaS.

Advantages

  • Open source & license freedom: MIT‑style license allows unrestricted use, modification, and redistribution.
  • High performance: Symfony’s HTTP cache and Doctrine second‑level cache reduce latency; async email dispatch offloads work from the request cycle.
  • Extensibility: The plugin system and event bus enable rapid feature addition without core code changes.
  • Vendor‑agnostic: Email and marketplace integrations are abstracted, so developers can add new providers with minimal effort.
  • Community & support:

Open SourceReady to get started?

Join the community and start self-hosting UVDesk today