MantisBT
Overview
MantisBT is a long-established, open-source, web-based issue and bug tracker. It captures bugs and feature requests with custom fields, severities and priorities, and routes them through configurable workflows and projects. It notifies stakeholders by email, and your team can filter issues and save custom views from a clean web dashboard.
This image installs MantisBT 2.28 from the official release, fronted by nginx with PHP 8.3 and backed by a local MariaDB. Everything comes from the Ubuntu 24.04 noble archive, with no third-party APT repositories. The web installer has already been run and removed, and MantisBT's well-known default administrator login has been rotated away. You land directly on the sign-in page.
What you get:
- MantisBT 2.28.4 from the official release, served from
/var/www/mantisbt - nginx with the MantisBT vhost at
/etc/nginx/sites-available/sac-mantisbt - PHP 8.3 with the mysqli, mbstring, gd, curl, intl, xml, soap, zip, bcmath, apcu and opcache extensions
- MariaDB with the
bugtrackerdatabase andmantisbtapp user on loopback only mantisbt-firstboot.servicerotating the MariaDB password, the configuration secret ($g_crypto_master_salt) and the administrator password per instance- The MariaDB database on a dedicated Azure data disk mounted at
/var/lib/mysql - nginx, php8.3-fpm and mariadb enabled and starting automatically on boot
- 24/7 SecureAnyCloud support
Prerequisites
- An active Azure subscription, an SSH key, and a virtual network with a subnet.
- A VM size of Standard_B2s (2 vCPU, 4 GB RAM) for a small team. Move up to a larger burstable size or a D-series size for busier projects.
- Ports 80 and 443 open on the network security group, plus port 22 for SSH from your management address.
Step 1 to 3: Deploy and connect
Deploy the image from the Azure Marketplace, then connect over SSH.
ssh azureuser@<vm-ip>Verify the services
nginx serves MantisBT on port 80 and passes PHP requests to php8.3-fpm. PHP talks to MariaDB on the loopback interface. Confirm that all three services are running.
sudo systemctl is-active nginx php8.3-fpm mariadb
sudo ss -tlnp | grep ':80 'Read the first boot credentials
On the first boot of your instance, mantisbt-firstboot.service generates a fresh MariaDB password, a fresh $g_crypto_master_salt and a fresh administrator password. All three are unique to this VM. The service writes them to a root-only file. Read it as follows.
sudo systemctl is-active mantisbt-firstboot.service
sudo cat /root/mantisbt-credentials.txtThe installed tracker database
The web installer imported the full MantisBT schema and created the administrator account before the image was captured. The default administrator / root login has been rotated to a random per-VM password, so no shared credential ships in the image. Inspect the database as follows.
sudo mariadb -N -B bugtracker -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='bugtracker' AND table_name LIKE 'mantis\_%';"
sudo mariadb -N -B bugtracker -e "SELECT username, access_level, enabled FROM mantis_user_table WHERE access_level=90;"Endpoints and the data disk
The health endpoint, the sign-in page and the index all answer on nginx. The MariaDB data directory lives on the dedicated Azure data disk, off the OS disk. Check both as follows.
curl -s -o /dev/null -w '/healthz -> %{http_code}\n' http://127.0.0.1/healthz
curl -s -o /dev/null -w '/login_page.php -> %{http_code}\n' http://127.0.0.1/login_page.php findmnt -no SOURCE,TARGET,FSTYPE,SIZE /var/lib/mysqlSign in
Browse to http://<vm-ip>/ and sign in as administrator with the password from /root/mantisbt-credentials.txt. MantisBT asks for the username first, then the password.
The My View dashboard
After you sign in, you land on My View. It groups the issues assigned to you, unassigned issues and issues you reported, with a timeline of recent activity.
Report an issue
Choose Report Issue to file a bug or feature request. Pick a category, set the reproducibility, severity and priority, and describe the issue. If you have not created a project yet, create one first from Manage.
View and filter issues
View Issues lists every issue in the current project with its priority, severity, status and assignee. From there you can filter, search, sort and export to CSV or Excel.
The base URL
MantisBT builds absolute links (redirects, email notifications and RSS feeds) from $g_path. First boot sets it to http://<your-vm-ip>/.
If you front MantisBT with a domain name or a reverse proxy, or you enable HTTPS, update $g_path in /var/www/mantisbt/config/config_inc.php to match. Then reload nginx.
sudo sed -i "s#\$g_path = 'http://[^']*';#\$g_path = 'https://tracker.example.com/';#" /var/www/mantisbt/config/config_inc.php
sudo systemctl reload php8.3-fpmComponents
- Application: MantisBT 2.28.4 from the official release, at /var/www/mantisbt.
- Web server: nginx serving PHP through php8.3-fpm over a Unix socket.
- PHP: 8.3 with mysqli, mbstring, gd, curl, intl, xml, soap, zip, bcmath, apcu and opcache.
- Database: MariaDB, with the bugtracker database and the mantisbt app user, on loopback only.
- Data disk: a dedicated Azure data disk mounted at /var/lib/mysql.
- First boot: mantisbt-firstboot.service rotates the database, configuration secret and administrator passwords.
- Health check: GET /healthz returns HTTP 200 for Azure Load Balancer probes.
Security
- The default
administrator/rootlogin is rotated to a random per-instance password on first boot. The shipped image carries a discarded random value, so no known credential ships. - The MariaDB password, the
$g_crypto_master_saltand the administrator password are all unique to each VM. - MariaDB binds to
127.0.0.1only. Keep port 3306 closed on the network security group, because nothing outside the VM needs it. - Issues, notes and attachments are stored in the database (
$g_file_upload_method = DATABASE) on the dedicated data disk. - Public self-registration is disabled by default (
$g_allow_signup = OFF). Create users from Manage, Manage Users. - To enable HTTPS, place a TLS certificate on the instance, or front it with an Azure Application Gateway or Load Balancer. Then update $g_path as in Step 12. SecureAnyCloud support can help.
Licensing
MantisBT is distributed under the GNU General Public License version 2 or later (GPL-2.0-or-later). This image bundles MantisBT unmodified from its official release.
MantisBT is a trademark of its respective owners. This image is not affiliated with, endorsed by, or sponsored by the MantisBT project. SecureAnyCloud packages, configures and supports the image. The MantisBT software remains under its own license.
Deploy on Azure
Launch MantisBT 2.28 on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
MantisBT (Mantis Bug Tracker) is a long-established, open-source, web-based issue and bug tracker used by software teams worldwide. It captures bugs and feature requests and routes them through configurable per-project workflows. It notifies stakeholders by email and tracks every issue through to resolution, with full history, custom fields, saved filters and a REST plus SOAP API.
This image runs MantisBT behind nginx, with PHP-FPM 8.3 (OPcache enabled) and a bundled MariaDB database engine. The install wizard has already been run and removed, and MantisBT's well-known default administrator / root login has been rotated away. You land directly on the sign-in page of a hardened application.
MantisBT stores its issues, notes and file attachments in the database. The MariaDB data directory lives on a dedicated, independently resizable EBS data volume mounted at /data (bind-mounted onto /var/lib/mysql), separate from the operating system disk. You can grow your tracker store without touching the root volume. MariaDB listens on loopback 127.0.0.1:3306 only and is never exposed to the network.
There is no first-run setup wizard to step through. The MantisBT administrator password is generated on the first boot of every deployed instance, so no two instances launched from the same Amazon Machine Image share credentials. The initial administrator password is written to /root/mantisbt-credentials.txt with mode 0600, so only the root user can read it.
Connecting to your instance
Connect over SSH as the default login user for your operating system variant. MantisBT itself is served on port 80, and you sign in as the administrator user in the browser.
- Ubuntu 24.04: SSH login user ubuntu. The stack is nginx, php8.3-fpm and mariadb.
Prerequisites
Before you deploy this image, make sure you have:
- An Amazon Web Services account where you can launch EC2 instances.
- IAM permissions to launch instances, create security groups and subscribe to AWS Marketplace products.
- An EC2 key pair in the target Region for SSH access to the instance.
- A VPC and subnet in the target Region, with a security group that allows inbound port 22 from your management network and inbound ports 80 and 443 from the networks your users will use.
- The AWS CLI (version 2) installed locally, if you plan to deploy from the command line.
Launch the Instance from the AWS Marketplace
- Open the product page in AWS Marketplace and choose Continue to Subscribe, then Continue to Configuration.
- Select the software version and your Region, then choose Continue to Launch.
- Under Choose Action, select Launch through EC2.
- Pick an instance type. The recommended type is
m5.large.t3.mediumis sufficient for small teams. - Select your VPC, subnet and key pair.
- Attach a security group that allows inbound TCP 22 from your management network and TCP 80 and 443 from your user networks.
- Choose Launch.
Launch the Instance from the AWS CLI
You can also launch from the command line. Replace the AMI ID with the one shown on the Marketplace launch page for your Region. Set your own key pair, security group and subnet.
aws ec2 run-instances \
--image-id ami-0123456789abcdef0 \
--instance-type m5.large \
--key-name my-keypair \
--security-group-ids sg-0123456789abcdef0 \
--subnet-id subnet-0123456789abcdef0 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=mantisbt}]'Wait for the instance to reach the running state and pass its status checks, then note its public IP address.
Connect and Retrieve the Initial Credentials
Connect over SSH as the login user for your OS variant. For the Ubuntu variant, the user is ubuntu.
ssh -i my-keypair.pem ubuntu@<public-ip>Retrieve the per-instance administrator password that first boot generated.
sudo cat /root/mantisbt-credentials.txtThe file lists the sign-in URL, the administrator username, the generated administrator password and the internal database credentials. These values are unique to this instance.
Verify the Service is Running
On the instance, confirm that nginx, PHP-FPM and MariaDB are active.
systemctl is-active nginx php8.3-fpm mariadbCheck that the unauthenticated health endpoint and the sign-in page respond.
curl -s http://127.0.0.1/healthz
curl -s -o /dev/null -w 'login page: HTTP %{http_code}\n' http://127.0.0.1/login_page.phpA 200 from the login page confirms the web stack is serving MantisBT.
Confirm the Data Volume
The MariaDB data directory lives on the dedicated EBS data volume mounted at /data and bind-mounted onto /var/lib/mysql. Confirm that both mounts are present.
mountpoint /data findmnt /var/lib/mysql df -h /dataBecause the database is on its own volume, you can grow it independently of the root disk. Use a standard EBS volume resize followed by an ext4 grow.
First Login
Open http://<public-ip>/ in your browser. Sign in as the administrator user with the password from /root/mantisbt-credentials.txt.
On first sign-in, MantisBT prompts you to create a project. Give it a name (for example, Web Platform) and choose Add Project. Once a project exists, you can log issues against it.
Report and Track Issues
Choose Report Issue from the menu. Pick a category, set the severity, reproducibility and priority, and enter a summary and description. Then choose Submit Issue.
MantisBT saves the issue and opens it in the issue view. There you can add notes, change the status through the workflow, assign the issue to a user, attach files and relate it to other issues.
The View Issues page lists every issue with its severity, status and priority. It supports saved filters, CSV and Excel export, and printable reports.
Configure Email Notifications
MantisBT sends notification email inline. Under Manage > Configuration, set the administrator email and the from address, and choose which events notify which roles.
To relay through an external SMTP server, edit /var/www/mantisbt/config/config_inc.php and set the $g_phpMailer_method, $g_smtp_host, $g_smtp_username and $g_smtp_password options. Then reload PHP-FPM.
sudo systemctl reload php8.3-fpmEnable HTTPS (Recommended)
For production use, put MantisBT behind TLS. Point a DNS record at the instance, then install a certificate with Certbot.
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.comCertbot obtains and installs the certificate and configures nginx to redirect HTTP to HTTPS. After you enable a domain, set $g_path in config/config_inc.php to your https://your-domain/ URL so MantisBT builds correct absolute links.
Backup and Maintenance
Back up the MantisBT database regularly. The bundled MariaDB is reachable on the instance over the local socket as root, so no password is needed.
sudo mariadb-dump --single-transaction bugtracker > mantisbt-backup.sqlStore the resulting dump off the instance, for example in Amazon S3. Because the data directory is on a dedicated EBS volume, you can also take EBS snapshots for point-in-time recovery. Keep the operating system patched with regular apt updates during a maintenance window.
Support
SecureAnyCloud provides 24/7 technical support for this MantisBT image by email at sales@secureanycloud.com and by live chat.
Our engineers assist with MantisBT deployment and configuration, email notification setup, workflow, project and custom field configuration, user and access level management, version upgrades, performance tuning, MariaDB database administration, and EBS data volume management. Critical issues receive a one-hour average response time.
For billing or refund requests, contact sales@secureanycloud.com with your instance ID and AWS account details.
Deploy on AWS
Launch MantisBT on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com