osTicket on Debian 12 – Open-Source Ticketing on a Stable and Secure Linux Platform

osTicket is a widely used open-source support ticketing system designed for customer service, IT support, and helpdesk management. It converts incoming emails, web form submissions, and API requests into tickets, allowing teams to track, prioritize, and resolve issues efficiently.

Running osTicket on Debian 12 provides a long-term supported, stable, and secure environment, making it ideal for organizations that need reliability and control over their support infrastructure.


Key Features of osTicket

  • Email-to-Ticket Conversion – Incoming emails are converted to tickets automatically.
  • Custom Ticket Forms – Add custom fields to collect relevant information.
  • Departments & Agents – Organize staff into teams and assign permissions.
  • Collision Avoidance – Prevent multiple agents from responding to the same ticket.
  • Knowledgebase & FAQs – Provide a self-service portal for customers.
  • REST API Support – For automation and integration with third-party apps.

LAMP Stack Compatibility on Debian 12

ComponentRecommended Version
Linux Kernel6.1 (Debian 12 default)
Apache2.4.57 (from Debian repositories)
PHP8.1 or 8.2 (osTicket supports up to PHP 8.2)
MySQL/MariaDBMariaDB 10.11 LTS (default in Debian 12)
OpenSSL3.0 (for secure HTTPS connections)

Debian 12 provides PHP 8.2, which is compatible with osTicket as of its latest versions. PHP 8.3 is not yet fully supported by osTicket.


Security and SSL

For production environments, using SSL/TLS is essential. With Debian 12:

  • Certbot (Let’s Encrypt) can be used to generate and renew free SSL certificates.
  • Apache mod_ssl enables HTTPS and HTTP/2 support.
  • UFW or nftables can be configured to only allow ports 80 and 443.
  • Fail2Ban helps prevent brute-force login attacks.

osTicket also supports SMTP with encryption (STARTTLS/SSL) for sending email notifications securely.


Recommended Server Specifications

Team Size / Ticket VolumeCPURAMStorage
Small (<10 agents)2 cores4 GB20–40 GB SSD
Medium (10–50 agents)4 cores8–16 GB50–100 GB SSD
Large (>100 agents)8+ cores16–32 GB100+ GB SSD/NVMe

Attachments can take significant space over time. Using separate storage volumes or S3-compatible storage for attachments is recommended for scalability.


Typical Use Cases

  • Customer Service Portals – Track customer inquiries from email and forms.
  • Internal IT Service Desk – Manage incidents, requests, and IT assets.
  • HR & Facilities Support – Handle employee onboarding, asset requests, and issues.
  • Educational Institutions – Provide ticket-based support for students and staff.

Integration and Automation

  • REST API for creating and managing tickets programmatically.
  • Email Piping & Fetching using IMAP/POP3 and SMTP.
  • LDAP Authentication for Active Directory/LDAP-based login.
  • Third-Party Plugins for Slack, Teams, and CRM integrations.

Debian 12’s stable packages and predictable updates make it suitable for environments where low maintenance and high uptime are required.


osTicket vs. Alternatives

FeatureosTicketZammadFreeScoutCerb
LicenseOpen SourceOpen SourceOpen SourceOpen Source (Pro)
Email IntegrationYesYesYesYes
Automation RulesBasicStrongModerateAdvanced
API SupportYesYesYesYes
CustomizationPHP templatesRuby on RailsPHP-basedAdvanced (DSL)
Self-HostedYesYesYesYes

osTicket is best suited for organizations looking for a lightweight, simple-to-deploy ticketing system without the complexity of heavier solutions.


Deploying osTicket on Debian 12 with a LAMP stack provides:

  • Stable, secure hosting with long-term support.
  • Compatibility with PHP 8.1/8.2 and MariaDB 10.11 LTS.
  • Simple email integration for converting support emails into tickets.
  • Low-cost, open-source alternative to commercial helpdesk software.

This setup is ideal for businesses, IT teams, and educational institutions that want a self-hosted, low-maintenance support platform with no vendor lock-in.


Step 1: Deploy a Debian 12 Server on Shape.Host

To get started, create a VPS on Shape.Host:

Go to https://shape.host and log in.

Click “Create”, then “Instance”.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose the server location nearest to your users for best performance.

Shape.host instance form with the data center location selector highlighted.

Select Debian 12 (64-bit) as the operating system.

Pick a plan with at least 2 CPUs, 4 GB RAM, and 20 GB SSD.

Shape.host instance form with the operating system image selector highlighted.

Click “Create Instance”.

Shape.host instance form with the Create Instance button highlighted.

After deployment, note down your server IP address and root credentials.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

On Linux/macOS:

ssh root@your-server-ip

On Windows:

Use PuTTY and connect to root@your-server-ip.


Step 3: Install LAMP Stack and Dependencies

3.1 Update and Upgrade the System

apt update
apt upgrade
Terminal showing APT package management commands and output.

3.2 Install Required Packages

apt install ca-certificates apt-transport-https lsb-release curl unzip git software-properties-common
apt install lsb-release apt-transport-https gnupg2
Terminal showing APT package management commands and output.
Terminal showing APT package management commands and output.

3.3 Add PHP Repository

curl -fsSL https://packages.sury.org/php/apt.gpg | tee /etc/apt/trusted.gpg.d/sury.gpg > /dev/null
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury.list
apt update
Terminal showing APT package management commands and output.

3.4 Install Apache, PHP 8.2, and Extensions

apt install apache2 php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-intl php8.2-zip libapache2-mod-php8.2
Terminal showing APT package management commands and output.

Enable and start services:

systemctl enable --now apache2 php8.2-fpm
Terminal showing systemd service management commands or output.

3.5 Install MariaDB

apt install mariadb-server
systemctl enable --now mariadb
mysql_secure_installation
Terminal showing PM2 application process management output.
Terminal showing mysql commands or output during Install MariaDB.

Step 4: Create the osTicket Database

mysql -u root <<EOF
CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON osticket.* TO 'osticket'@'localhost' IDENTIFIED BY 'YourStrongPass!';
FLUSH PRIVILEGES;
EOF

🔒 Replace YourStrongPass! with a secure password.

Terminal showing SQL database and user configuration commands.

Step 5: Download and Extract osTicket

cd /var/www/html
curl -s https://api.github.com/repos/osTicket/osTicket/releases/latest | grep browser_download_url | cut -d '"' -f 4 | wget -i -
unzip osTicket-*.zip -d osticket
mkdir -p /var/www/html/osticket
cp -r osticket/upload/* /var/www/html/osticket/
Terminal showing file download commands and transfer output.

Step 6: Configure osTicket Files

cp /var/www/html/osticket/include/ost-sampleconfig.php /var/www/html/osticket/include/ost-config.php
chown -R www-data:www-data /var/www/html/osticket
find /var/www/html/osticket -type d -exec chmod 755 {} \;
find /var/www/html/osticket -type f -exec chmod 644 {} \;
Terminal showing file ownership or permission commands.

Step 7: Configure Apache Virtual Host

Create a new configuration file:

nano /etc/apache2/sites-available/osticket.conf

Paste:

<VirtualHost *:80>
  ServerName your-domain.com
  DocumentRoot /var/www/html/osticket

  <Directory /var/www/html/osticket>
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/osticket_error.log
  CustomLog ${APACHE_LOG_DIR}/osticket_access.log combined
</VirtualHost>
Terminal showing web server configuration text.

Enable the site and required module:

a2ensite osticket.conf
a2enmod rewrite
apachectl configtest
systemctl reload apache2
Terminal showing an Apache configuration test.

Step 8: Enable SSL with Certbot

apt install certbot python3-certbot-apache
certbot --apache -d your-domain.com

Follow the interactive prompts to set up HTTPS.

Terminal showing APT package management commands and output.
Terminal showing Certbot certificate commands and messages.

Step 9: Access osTicket

Open your browser and visit:

http://your-domain.com

or

https://your-domain.com

Complete the installation wizard using the database credentials you created earlier.

Make sure every dependency for osTicket is installed and click Continue.

osTicket setup interface.

Change the basic system settings such as your domain name, then input the new admin user for osTicket, and input the database details that you’ve created.

osTicket installer form for helpdesk, administrator and database settings.

If the installation is complete, you’ll see the following page:

osTicket installation completion and post-installation instructions.

Open this link https://your-domain/scp and log in to the osTicket with your admin user and password.

osTicket sign-in form.

You’ll see the following osTicket Administration Dashboard.

osTicket system settings and preferences form.

Step 10: Remove Setup Directory

After completing the web-based installation, remove the setup directory:

rm -rf /var/www/html/osticket/setup

You have successfully installed osTicket on Debian 12 with Apache, PHP 8.2, MariaDB, and SSL. Your support system is now ready for use.

For a fast, scalable, and reliable Linux SSD VPS hosting experience, run your osTicket instance on Shape.Host.

Get started today at Shape.Host and host your support platform with ease.