OpenQDA Deployment
This guide describes how to deploy OpenQDA to your custom infrastructure. Currently, there are two options for deployment:
Backup and Recovery
OpenQDA includes a comprehensive backup script that can be scheduled to run automatically. The backup script creates a complete snapshot of your application data including database, storage files, and configuration. For detailed information on setting up automated backups, see the Backup & Recovery Guide.
Via Docker
Please note, that deployment via Docker is different from the Docker setup, described in the docker installation guide for local development!!
We will provide a comprehensive guide very soon. Until then, we would like to point you to the following resources:
Manual
Manual installation has great overlap with the manual development installation. We will soon provide this guide to cover topics, specific to the production installation (webserver, certificates etc.).
Supervisor Configuration for Production
OpenQDA requires background processes for WebSocket (Reverb) and queue workers. Supervisor is recommended for managing these processes in production.
Installing Supervisor
On Ubuntu/Debian:
sudo apt-get update
sudo apt-get install supervisorConfiguration Files
Template configuration files are provided in web/docker/8.3/:
supervisor-reverb.conf.example- WebSocket server configurationsupervisor-queue.conf.example- Queue worker configurationsupervisor-docker.conf.example- Complete configuration for Docker deployments
Setting Up Reverb WebSocket Server
- Copy the template:
sudo cp web/docker/8.3/supervisor-reverb.conf.example /etc/supervisor/conf.d/reverb.conf- Edit the configuration:
sudo nano /etc/supervisor/conf.d/reverb.confUpdate these values:
- Replace
/var/www/htmlwith your Laravel application path - Set
REVERB_HOSTNAMEenvironment variable (e.g.,your-domain.com) - Change
userto match your web server user (typicallywww-data,nginx, or your app user)
- Replace
Update supervisor and start the service:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start reverbSetting Up Queue Worker
- Copy the template:
sudo cp web/docker/8.3/supervisor-queue.conf.example /etc/supervisor/conf.d/queue-worker.conf- Edit the configuration:
sudo nano /etc/supervisor/conf.d/queue-worker.confUpdate these values:
- Replace
/var/www/htmlwith your Laravel application path - Adjust queue names if different from
conversion,default - Change
userto match your web server user
- Replace
Update supervisor and start the service:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start queue-workerManaging Supervisor Services
Check status of all services:
sudo supervisorctl statusRestart a specific service:
sudo supervisorctl restart reverb
sudo supervisorctl restart queue-workerStop a service:
sudo supervisorctl stop reverbView logs:
sudo tail -f /var/log/supervisor/reverb.log
sudo tail -f /var/log/supervisor/queue-worker.logDocker Deployment
For Docker deployments, use the supervisor-docker.conf.example template:
- In your Dockerfile, copy the configuration:
COPY web/docker/8.3/supervisor-docker.conf.example /etc/supervisor/conf.d/supervisord.conf- Set required environment variables in your
docker-compose.yml:
environment:
- SUPERVISOR_PHP_COMMAND=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80
- SUPERVISOR_PHP_USER=sail
- REVERB_HOSTNAME=localhost- Ensure supervisor is installed in your Docker image and started as the entrypoint.
SSL Certificate Configuration
For SSL certificate setup with the WebSocket server, refer to:
- SSL Certificate Troubleshooting Guide - Essential reading if your WebSocket server has certificate issues
- Manual Installation - Real-Time Configuration - Initial SSL setup instructions