Deploying a UVdesk App
Introduction
UVdesk is a Symfony-based helpdesk platform for managing support tickets, email piping, and knowledge bases. This guide shows how to containerize UVdesk with a Dockerfile, connect it to a managed database and mail provider, persist uploads, and deploy it to Klutch.sh over HTTP.
Prerequisites
- GitHub repository containing your Dockerfile.
- Managed MySQL/PostgreSQL instance (or a separate Klutch.sh database app).
- Mail provider DSN for outgoing notifications.
- Klutch.sh project ready in klutch.sh/app.
Project structure
.└── DockerfileSample Dockerfile
FROM uvdesk/uvdesk:latest
# Default Apache portENV APACHE_HTTP_PORT=80EXPOSE 80Required environment variables
DATABASE_URL– e.g.,mysql://USER:PASSWORD@HOST:3306/uvdesk?serverVersion=8.0APP_SECRET– strong random string for Symfony.APP_ENV=prodMAILER_DSN– e.g.,smtp://USER:PASSWORD@HOST:587UV_DESK_SITE_URL– public URL, e.g.,https://example-app.klutch.sh
Optional environment variables
APACHE_HTTP_PORT– override internal port if needed.UV_DESK_TIMEZONE– default timezone (e.g.,UTC).UV_DESK_LOCALE– default locale (e.g.,en).
Persistence
Persist tickets, attachments, and cached data on a volume:
- Mount path:
/var/www/uvdesk/public/uploads - Size: choose based on expected attachment volume
Networking
- Protocol: HTTP
- Internal port:
80 - Users reach
https://example-app.klutch.shwhile Klutch.sh routes to port80inside the container.
Health check (recommended)
curl -I http://localhostDeployment on Klutch.sh
- Push your Dockerfile to GitHub.
- In klutch.sh/app, create a new app and select GitHub as the source.
- Klutch.sh automatically detects the Dockerfile in the repository root.
- Select HTTP traffic and set the internal port to
80. - Add environment variables for
DATABASE_URL,APP_SECRET,APP_ENV,MAILER_DSN, andUV_DESK_SITE_URL. Mark secrets as sensitive. - Attach a persistent volume at
/var/www/uvdesk/public/uploadssized for ticket attachments. - Deploy. Complete the web installer to finalize database schema, admin user, and mail settings.
Verification
-
UI: open
https://example-app.klutch.shand confirm the installer or login screen appears. -
Quick check:
Terminal window curl -I https://example-app.klutch.sh
Next steps
- Enable database backups and attachment backups for the mounted volume.
- Configure cron or scheduled jobs inside UVdesk for email fetching if required.
- Set strong admin credentials and rotate secrets regularly.