Casilium is a self-hosted helpdesk and ticketing platform built on Mezzio and Doctrine ORM. It is designed for teams that want a lightweight, configurable service desk without SaaS lock-in.
- Multi-organisation workflows with sites and contacts.
- SLA-driven due dates based on business hours.
- RBAC permissions and optional MFA.
- Email-based ticket intake.
- Scheduled notifications and overdue digests.
- Modular architecture (entities, services, handlers, commands per module).
Casilium gives you a clear ticketing workflow with SLA-aware due dates, robust role-based permissions, and optional MFA, without the overhead of larger service desk suites. It is easy to self-host and keep under your control.
Originally built for IT support teams, Casilium also works well for any group handling internal or customer-facing requests where SLAs, queues, and auditability matter (e.g. facilities, HR, operations, or managed service teams).
- Setup (non-Docker):
docs/setup.md - Docker:
docs/docker.md - Usage:
docs/usage.md - Cron jobs:
docs/cron.md
All outbound and inbound email behavior is controlled by the mail.enabled flag
(MAIL_ENABLED environment variable in Docker). When disabled, cron-based
commands, ticket notifications, and mailbox imports safely no-op so you can run
Casilium without connecting it to SMTP/IMAP during development.
docker compose up --buildSee docs/docker.md for full Docker instructions and docs/setup.md for manual setup.
Cron now runs inside the main app container. When the container boots, it
installs the schedule from docker/cron.d/casilium and starts the system cron
daemon alongside Apache. Job output is forwarded to the container log stream, so
you can monitor runs with docker compose logs -f app.
Casilium is released under the Apache 2.0 license. See the included LICENSE.txt file for details of the General Public License.
Casilium is uses several open source projects, including Laminas, Mezzio, Doctrine, Bootstrap, Font-Awesome, jQuery.