Multiple instances

Qisutu can run production, test, and development instances in parallel on the same server. Each instance requires its own top-level directory. The directory name is used unchanged as the instance identifier.

Example layout

/opt/qisutu       Production instance
/opt/qisututest   Test instance
/opt/qisutudev    Development instance

For /opt/qisututest, install.sh automatically creates:

  • Web path /qisututest

  • Apache file qisututest.conf

  • Service qisututest-daemon.service

  • Session cookie QISUTUTEST_SESSION

  • Database and database user qisututest

The directory name must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens. Use short, unambiguous names. No additional prefix is added.

Installing another instance

Extract the release again into a separate directory and run install.sh there. Example:

cd /opt
tar xzf qisutu-1.0.2.tar.gz
mv qisutu-1.0.2 qisututest
chown qisutu:www-data -R /opt/qisututest
cd /opt/qisututest
chmod +x install.sh
./install.sh

Then open the web installer URL displayed by the script, for example http://SERVER/qisututest/install.pl. Instance values are stored in var/install/instance.conf and reused during updates.

Separating instances

Instances share the operating system, Apache, and the qisutu system user, but have separate application directories, web paths, configurations, databases, cookies, services, logs, and runtime locks. They can therefore be started, stopped, and updated independently:

systemctl status qisutu-daemon.service
systemctl status qisututest-daemon.service
systemctl restart qisututest-daemon.service

Operational notes

  • Use separate mailboxes for test instances. A production mailbox must not be retrieved by a test instance at the same time.

  • Assign separate public hostnames or carefully check the web paths so that users do not accidentally work in the test system.

  • Back up and update each instance separately.

  • Before every update, check the path, instance name, service, and database name displayed by the updater.

  • Never copy var/secure/security.key between independent instances. The key belongs exclusively to its installation.