Applications AWS

ProjeQtOr on AWS User Guide

| Product: ProjeQtOr on AWS

Overview

ProjeQtOr (Quality based Project Organizer) is a full featured open source project and quality management platform used by teams, IT departments and service organisations worldwide. It brings projects, planning and Gantt charts, activities and tasks, tickets and issues, risks, requirements, tests, meetings, documents, timesheets and resource assignment together in a single web application.

This image runs ProjeQtOr behind nginx, with PHP FPM 8.3 (OPcache enabled) and a bundled MariaDB database engine. The install and configuration wizard has already been completed and ProjeQtOr's well known default admin / admin login has been rotated away, so you land directly on the sign in page with a hardened application.

ProjeQtOr stores its data in the database and in a file store for uploads and reports. The MariaDB data directory and the file store live on a dedicated, independently resizable EBS data volume mounted at /data (bind mounted onto /var/lib/mysql and /var/www/projeqtor/files), kept separate from the operating system disk, so you can grow your project store without touching the root volume. The database secret is held in a parameters.php file kept outside the web document root at /data/projeqtor/config, never reachable from the browser. 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 ProjeQtOr administrator password is generated on the first boot of every deployed instance, so no two instances launched from the same Amazon Machine Image ever share credentials. The initial administrator password is written to /root/projeqtor-credentials.txt with mode 0600 so that only the root user can read it.

ProjeQtOr sign-in

Connecting to your instance

Connect over SSH as the default login user for your operating system variant. ProjeQtOr itself is served on port 80 and you sign in as the admin user in the browser.

OS variant SSH login user Notes
Ubuntu 24.04 ubuntu nginx + php8.3-fpm + mariadb

Prerequisites

Before you deploy this image you need:

  • 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 allowing 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

Step 1: Launch the Instance from the AWS Marketplace

  1. Open the product page in AWS Marketplace and choose Continue to Subscribe, then Continue to Configuration.
  2. Select the software version and your Region, then choose Continue to Launch.
  3. Under Choose Action select Launch through EC2.
  4. Pick an instance type. The recommended type is m5.large; t3.medium is sufficient for small teams.
  5. Select your VPC, subnet, and key pair.
  6. Attach a security group that allows inbound TCP 22 from your management network and TCP 80 and 443 from your user networks.
  7. Choose Launch.

Step 2: 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, and set your 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=projeqtor}]'

Wait for the instance to reach the running state and pass its status checks, then note its public IP address.

Step 3: Connect and Retrieve the Initial Credentials

SSH to the instance as the login user for your OS variant (for the Ubuntu variant, ubuntu):

ssh -i my-keypair.pem ubuntu@<public-ip>

Retrieve the per instance administrator password that first boot generated:

sudo cat /root/projeqtor-credentials.txt

The 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.

Step 4: Verify the Service is Running

On the instance, confirm nginx, PHP FPM and MariaDB are active and that ProjeQtOr is serving:

systemctl is-active nginx php8.3-fpm mariadb

Check 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/view/login.php

A 200 from the login page confirms the web stack is serving ProjeQtOr.

Step 5: Confirm the Data Volume

The MariaDB data directory and the ProjeQtOr file store live on the dedicated EBS data volume mounted at /data, bind mounted onto /var/lib/mysql and /var/www/projeqtor/files. Confirm the mounts are present:

mountpoint /data
findmnt /var/lib/mysql
df -h /data

Because the database is on its own volume, you can grow it with a standard EBS volume resize and an ext4 grow, independently of the root disk.

Step 6: First Login

Open http://<public-ip>/ in your browser. Sign in as the admin user with the password from /root/projeqtor-credentials.txt.

ProjeQtOr sign-in

After signing in you land on the ProjeQtOr Start Guide, which walks you through defining your first stakeholders, planning and follow up. The full navigation menu is on the left (Planning, Ticketing, Agile scrum, Follow up, Steering, Financial, Products, HR, Environment, Tools, Reports and Configuration) and the project menu bar is across the top.

ProjeQtOr start guide

Step 7: Create Your First Project

Choose Projects from the top menu bar, then the Create a new item button to open a new project. Give it a name, choose a type and status, set planned start and end dates, and save. Once a project exists you can add activities and tasks against it and plan them on the Gantt chart under Planning.

ProjeQtOr projects

From the top menu bar you can also raise Tickets (issues, bugs, change requests), schedule Meetings, record Milestones, assign Resources, and open the Planning view for the interactive Gantt. Tickets, timesheets, risks, requirements and tests are all available from the left navigation menu.

Step 8: Administration

ProjeQtOr's administration is under Configuration in the left menu. From there you manage global parameters, user parameters, modules, access rights, automation, and the lists of values and types that drive the application.

ProjeQtOr administration

To add users, open Configuration and manage the resource and user records. Each user is granted a profile that determines their access rights. To relay notification email through an external SMTP server, configure the mail settings under global parameters, then reload PHP FPM so the change is picked up:

sudo systemctl reload php8.3-fpm

Step 9: Enable HTTPS (Recommended)

For production use, put ProjeQtOr 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.com

Certbot obtains and installs the certificate and configures nginx to redirect HTTP to HTTPS. ProjeQtOr derives its base URL from the request, so it serves correctly on your domain once the certificate is in place.

Step 10: Backup and Maintenance

Back up the ProjeQtOr database regularly. The bundled MariaDB is reachable on the box over the local socket as root, so no password is needed:

sudo mariadb-dump --single-transaction projeqtor > projeqtor-backup.sql

Store the resulting dump off the instance (for example in Amazon S3), and back up the file store under /var/www/projeqtor/files as well. Because the data directory and file store are 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

cloudimg provides 24/7 technical support for this ProjeQtOr image by email at support@cloudimg.co.uk and by live chat. Our engineers assist with ProjeQtOr deployment and configuration, module and workflow setup, email notification configuration, user and profile 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 support@cloudimg.co.uk with your instance ID and AWS account details.