The System settings page lets you configure core functionalities that impact your helpdesk's performance, speed, and real-time capabilities. This guide explains each option to help you optimize your self-hosted BeDesk installation.
To get started, navigate to Admin > Settings > System page.
Caching is a fundamental technique for speeding up your application. It works by storing frequently accessed data (like settings, translations, or complex database query results) in a temporary, high-speed storage location. This means BeDesk doesn't have to fetch this data from slower sources (like the database or files) every single time it's needed, making your helpdesk feel much faster for both agents and customers.
File
(Default): This is the simplest caching method. It stores cached data in files on your server. It works out-of-the-box on any server environment and is a solid choice for most small to medium-sized installations.
Redis
/ Memcached
: These are high-performance, in-memory caching systems. "In-memory" means they store data directly in your server's RAM, which is significantly faster than reading from files on a hard drive. If you manage a high-traffic helpdesk, using Redis (our recommendation) or Memcached
will provide a noticeable performance boost.
APC
: This is a PHP-based cache. It can be a good option if it's already installed and configured on your server, but Redis is generally more powerful and flexible.
None
: This option disables caching entirely. It's primarily useful for development or debugging purposes when you need to see code changes immediately without clearing the cache. It is not recommended for a live production site.
You must have redis or memcached installed and running on your server, if you want to use these options.
Some tasks in BeDesk, like sending email notifications or processing webhooks, can take a few seconds to complete. A queue system allows BeDesk to offload these tasks to a background process. This means that instead of making a user wait for the task to finish, the app can respond instantly and let the "queue worker" handle the job in the background. This results in a much smoother and faster user experience. 🚀
None
(Default): By default, all tasks are run immediately (synchronously). This is the simplest configuration but can lead to longer loading times for actions that trigger tasks like sending emails.
Database
: This driver uses a table in your existing BeDesk database to manage the queue of jobs. It's a great first step into using queues as it requires no extra software installation.
Redis
(Recommended): Using Redis as your queue driver is a robust and high-performance solution. It's an excellent choice for any production environment that needs to reliably process background jobs without slowing down the main application.
Beanstalkd
/ SQS
(Amazon Simple Queue Service): These are other powerful, dedicated queue systems. SQS
is a particularly good choice if your BeDesk instance is hosted on AWS.
After you've selected the queue method other then none
, you will need to start the queue worker using this command:
php artisan horizon
Ideally you should also configure a process monitor (supervisor, systemd etc.) to monitor the php artisan horizon command and restart it if it exits unexpectedly or server is restarted.
Once you've selected a queue driver like Redis
or Database
, a Queue Status section will appear. This provides a quick visual indicator to confirm that your server's queue worker process is active.
For more detailed insights, click the Monitor button. This will take you to the Laravel Horizon dashboard, a powerful tool that provides a real-time view of your queue activity. From Horizon, you can monitor job throughput, check for failed jobs, retry jobs, and get a complete overview of your helpdesk's background task performance.
Websockets create a persistent, real-time connection between your users' browsers and your server. This technology powers live, instantaneous updates without needing to refresh the page. In BeDesk, this is especially important if using LiveChat module.
For a detailed guide on configuring the different websocket options, please see our dedicated article: Realtime Functionality using Websockets.
Effective error logging is essential for maintaining a healthy application. While BeDesk has its own internal logging, integrating a dedicated error tracking service can help you see any issues your users might be having.
BeDesk offers a built-in integration with Sentry, a popular real-time error tracking platform. When configured, any errors that occur in your BeDesk application will be automatically sent to your Sentry dashboard. This provides you with detailed reports, stack traces, and alerts, making it much easier to diagnose and resolve issues.
To enable it, simply: