====== Installation ======
{{indexmenu_n>1}}
===== Minimum requirements =====
^ Requirement ^ Minimum ^ Recommended |
^ **Disk space** | 10GB | 20GB |
^ CPU | 2.4Ghz CPU - Dual Core | Depends on use |
^ RAM | 1GB | 4GB |
^ Base System | EL 8 (RHEL 8, Rocky Linux 8, AlmaLinux 8), Ubuntu server 22.04. ||
^ MySQL | 8 or later ||
^PHP | 8 or later ||
^ Web Browsers | Chrome, Edge, Firefox; after 2016. ||
**Pandora ITSM** is an application that needs a MySQL database to function. Supports MySQL or Percona DB. You need a version of PHP 8.x or later. Because it is a completely WEB application, it can be installed on a server and accessed from any workstation with a modern browser that supports HTML5 such as Google Chrome®, Mozilla Firefox®, Microsoft Edge® or Apple Safari®, with Minimum working resolution 1280 by 720 pixels.
It can be installed in a shared database, although depending on the use that is going to be given to it, performance may be affected by the capacity of said database, especially if data with a lot of history needs to be kept, for example tickets from several years.
===== Cloud Installation =====
From any operating system supported by PITSM and connected to the Internet (AWS®, Google Cloud®, Azure®, DigitalOcean®, a VPS provider or virtual or physical machines) an automatic installation of **Pandora ITSM** can be carried out with as Just run the following command as root (super user):
**For EL 8 (RHEL 8, Rocky Linux 8, AlmaLinux 8)**:
curl -SsL https://pfms.me/deploy-pandora-itsm-el8 | bash
Although the above run does a complete installation of the environment, it is possible to define different switches through environment variables to customize the installation. By default the name of the database, the username (and its password) to be used by Pandora ITSM and the password of the **root** user of the database is ''pandoraitsm''. To set different values use the **env** command for the following variables: ''DBNAME'', ''DBUSER'', ''DBPASS'' and ''DBROOTPASS'', respectively.
**For Ubuntu server 22.04**:
curl -SsL https://pfms.me/deploy-pandora-itsm-ubuntu | bash
Although the above run does a complete installation of the environment, it is possible to define different switches through environment variables to customize the installation. By default the name of the database and the username to be used by Pandora ITSM is ''pandoraitsm''; the password of that user and the password of the database user **root** is ''P4ndor4.itsm''. To set different values use the **env** command for the following variables: ''DBNAME'', ''DBUSER'', ''DBPASS'' and ''DBROOTPASS'', respectively.
Once installed, follow the on-screen instructions (“[[#first_time_connection_to_pandora_itsm|Connecting for the first time to Integria IMS]]”) and log in for the first time to the administration console.
===== Installing Pandora ITSM on Ubuntu Server 22.04 =====
==== Prerequisites ====
* Ubuntu server 22.04 with **root** user rights.
* Internet connection.
* 2 GB of RAM and 10 GB of free disk space.
* Define variables:
- ''export DEBIAN_FRONTEND=noninteractive''.
- ''export NEEDRESTART_SUSPEND=1''
==== Basic tools ====
apt update
apt install -y net-tools \
vim \
curl \
sudo \
wget \
software-properties-common \
apt-transport-https \
ca-certificates \
gnupg \
lsb-release \
gawk \
sed \
grep
=== Apache and PHP 8.1 ===
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y php8.1-fpm \
php8.1-common \
libapache2-mod-fcgid \
php8.1-cli \
apache2
a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
systemctl restart php8.1-fpm
systemctl restart apache2
==== Pandora ITSM Web Console Dependencies ====
apt install -y ldap-utils \
postfix \
wget \
libzstd1 \
gir1.2-atk-1.0 \
libavahi-common-data \
cairo-perf-utils \
libfribidi-bin \
php8.1-curl \
php8.1-fileinfo \
php8.1-gd \
php8.1-gettext \
php8.1-imap \
php8.1-ldap \
php8.1-mbstring \
php8.1-mcrypt \
php8.1-mysqli \
php8.1-zip \
whois \
cron
==== Disable AppArmor and UFW ====
systemctl stop ufw.service
systemctl disable ufw
systemctl stop apparmor
systemctl disable apparmor
==== MySQL Installation ====
curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
apt install -y gnupg2 lsb-release ./percona-release_latest.generic_all.deb
percona-release setup ps80
apt install -y percona-server-server percona-xtrabackup-80
systemctl start mysql
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P4ndor4.itsm';
INSTALL COMPONENT 'file://component_validate_password';
CREATE DATABASE pandoraitsm;
CREATE USER 'pandoraitsm'@'%' IDENTIFIED BY 'P4ndor4.itsm';
ALTER USER 'pandoraitsm'@'%' IDENTIFIED WITH mysql_native_password BY 'P4ndor4.itsm';
GRANT ALL PRIVILEGES ON pandoraitsm.* TO 'pandoraitsm'@'%';
exit;
cat > /etc/mysql/my.cnf << EOF_DB
[mysqld]
datadir=/var/lib/mysql
user=mysql
character-set-server=utf8mb4
skip-character-set-client-handshake
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Mysql optimizations for Pandora ITSM
# Please check the documentation in https://pandorafms.com/itsm/ for better results
max_allowed_packet = 64M
innodb_buffer_pool_size = $(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
innodb_lock_wait_timeout = 90
innodb_file_per_table
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_io_capacity = 300
thread_cache_size = 8
thread_stack = 256K
max_connections = 100
key_buffer_size=4M
read_buffer_size=128K
read_rnd_buffer_size=128K
sort_buffer_size=128K
join_buffer_size=4M
skip-log-bin
sql_mode=""
log-error=/var/log/mysql/error.log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF_DB
systemctl restart mysql
==== Pandora ITSM Installation ====
curl -LSs --output \
IntegriaIMS_enterprise-latest.noarch.tar.gz \
"https://firefly.artica.es/KkGqio0L4jV0nfnThj6774eg1rZJQd1Y/IntegriaIMS_enterprise-latest.tar.gz"
=== Pandora ITSM Web Console Installation ===
tar xvzf IntegriaIMS_enterprise-latest.noarch.tar.gz
cp -Ra integria_enterprise /var/www/html/integria
rm -f /var/www/html/integria/*.spec
=== PM2 ===
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >> /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
cd /var/www/html/integria/extras/chat_server
npm install pm2@latest -g
npm update
pm2 start server.js
pm2 save
pm2 startup
cat > /var/www/html/integria/extras/chat_server/config/config.js << EO_CONFIG_TMP
// If this file is modified, check the chat_set_default_values() function.
module.exports = {
PORT: process.env.PORT || 5000,
DBPORT: process.env.DBPORT || 3306,
DBHOST: process.env.DBHOST || "127.0.0.1",
DBDATABASE: process.env.DBDATABASE || "pandoraitsm",
DBUSER: process.env.DBUSER || "pandoraitsm",
DBPASS: process.env.DBPASS || "P4ndor4.itsm",
DBLOGGIN: process.env.DBLOGGIN || console.log,
HASH: process.env.HASH || "ef541cdc541a065d52c9a375223594219e3899343db4ef6d89eb664288528b18"
};
EO_CONFIG_TMP
=== SSL configuration ===
cat > /etc/apache2/conf-available/ssl-params.conf << EOF_PARAM
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off
EOF_PARAM
a2enmod ssl
a2enmod headers
a2enconf ssl-params
a2ensite default-ssl
a2enconf ssl-params
apache2ctl configtest
systemctl restart apache2
systemctl enable mysql --now
systemctl enable apache2 --now
systemctl enable php8.1-fpm --now
=== Structure and data in MySQL ===
mysql -upandoraitsm -pP4ndor4.itsm
use pandoraitsm;
source /var/www/html/integria/integria_db.sql;
source /var/www/html/integria/integria_dbdata.sql;
exit;
=== PHP and Apache2 configuration ===
cat > /var/www/html/integria/include/config.php << EO_CONFIG_F
cat > /etc/apache2/conf-enabled/pandoraitsm_security.conf << EO_CONFIG_F
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
EO_CONFIG_F
chmod 600 /var/www/html/integria/include/config.php
chown -R www-data:www-data /var/www/html/integria
mv /var/www/html/integria/install.php /var/www/html/integria/install.done
sed -i -e "s/php_flag engine off//g" /var/www/html/integria/images/.htaccess
sed -i -e "s/php_flag engine off//g" /var/www/html/integria/attachment/.htaccess
ln -s /etc/php/8.1/fpm/php.ini /etc/
sed --follow-symlinks -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
sed --follow-symlinks -i -e "s/.*post_max_size =.*/post_max_size = 800M/" /etc/php.ini
sed --follow-symlinks -i -e "s/^disable_functions/;disable_functions/" /etc/php.ini
echo 'TimeOut 900' > /etc/apache2/conf-enabled/timeout.conf
echo 'ProxyTimeout 300' >> /etc/apache2/conf-enabled/timeout.conf
cat > /var/www/html/index.html << EOF_INDEX
EOF_INDEX
systemctl restart apache2
systemctl restart php8.1-fpm
=== Kernel optimization ===
cat >> /etc/sysctl.conf <
sysctl --system
=== Logrotate and Cron ===
cat > /etc/logrotate.d/pandora_itsm <> /etc/crontab
Once the installation has been completed [[#first_time_connection_to_pandora_itsm|make the first connection to Pandora ITSM]].
===== Pandora ITSM installation on EL 8 =====
==== Prerequisites ====
* EL 8 Operating System (RHEL 8, Rocky Linux 8, Alma Linux 8).
* User with **root** permissions.
* Internet connection.
* 2 GB of RAM and 10 GB of free disk space.
==== Repository configuration ====
dnf install -y \
tar \
dnf-utils \
epel-release \
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
https://repo.percona.com/yum/percona-release-latest.noarch.rpm
dnf module reset -y php
dnf module install -y php:remi-8.2
==== Installation of extra dependencies ====
dnf install -y wget \
vim \
sudo \
curl
==== Percona database installation ====
dnf module disable -y mysql
percona-release setup ps80 -y
dnf install -y percona-server-server
==== Installation of Web Console dependencies ====
dnf install -y httpd \
php \
php-cli \
php-common \
php-curl \
php-fileinfo \
php-gd \
php-gettext \
php-imap \
php-intl \
php-ldap \
php-mbstring \
php-mcrypt \
php-mysqli \
php-zip
==== Operating system and database settings ====
setenforce 0
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
systemctl disable firewalld --now
cat > /etc/my.cnf << EO_CONFIG_TMP
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EO_CONFIG_TMP
Complex passwords should always be used, in this example below simple passwords are used.
systemctl start mysqld
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
mysql -uroot -p$MYSQL_PWD
SET PASSWORD FOR 'root'@'localhost' = 'Pandor4!';
UNINSTALL COMPONENT 'file://component_validate_password';
SET PASSWORD FOR 'root'@'localhost' = 'pandoraitsm';
CREATE DATABASE pandoraitsm;
CREATE USER 'pandoraitsm'@'%' IDENTIFIED BY 'pandoraitsm';
ALTER USER 'pandoraitsm'@'%' IDENTIFIED WITH mysql_native_password BY 'pandoraitsm';
GRANT ALL PRIVILEGES ON pandoraitsm.* TO 'pandoraitsm'@'%';
exit;
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
cat > /etc/my.cnf << EO_CONFIG_F
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
character-set-server=utf8
skip-character-set-client-handshake
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Mysql optimizations for Pandora ITSM database
max_allowed_packet = 64M
innodb_buffer_pool_size = $POOL_SIZE
innodb_lock_wait_timeout = 90
innodb_file_per_table
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_io_capacity = 100
thread_cache_size = 8
thread_stack = 256K
max_connections = 100
key_buffer_size=4M
read_buffer_size=128K
read_rnd_buffer_size=128K
sort_buffer_size=128K
join_buffer_size=4M
query_cache_type = 1
query_cache_size = 64M
query_cache_min_res_unit = 2k
query_cache_limit = 256K
sql_mode=""
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EO_CONFIG_F
sed -i -e "/query_cache.*/ s/^#*/#/g" /etc/my.cnf
systemctl restart mysqld
systemctl enable mysqld --now
==== Installation of Pandora ITSM and Node ====
curl -L --output \
IntegriaIMS_enterprise-latest.noarch.rpm \
"http://firefly.artica.es/KkGqio0L4jV0nfnThj6774eg1rZJQd1Y/IntegriaIMS_enterprise-latest.noarch.rpm"
dnf install -y ./IntegriaIMS_enterprise*.rpm
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
dnf install -y nodejs
cd /var/www/html/integria/extras/chat_server
npm install pm2@latest -g
npm update
pm2 start server.js
pm2 save
pm2 startup
cat > /var/www/html/integria/extras/chat_server/config/config.js << EO_CONFIG_TMP
// If this file is modified, check the chat_set_default_values() function.
module.exports = {
PORT: process.env.PORT || 5000,
DBPORT: process.env.DBPORT || 3306,
DBHOST: process.env.DBHOST || "127.0.0.1",
DBDATABASE: process.env.DBDATABASE || "pandoraitsm",
DBUSER: process.env.DBUSER || "pandoraitsm",
DBPASS: process.env.DBPASS || "pandoraitsm",
DBLOGGIN: process.env.DBLOGGIN || console.log,
HASH: process.env.HASH || "ef541cdc541a065d52c9a375223594219e3899343db4ef6d89eb664288528b18"
};
EO_CONFIG_TMP
systemctl enable mysqld --now
systemctl enable httpd --now
systemctl enable php-fpm --now
==== Database population ====
mysql -upandoraitsm -ppandoraitsm
USE pandoraitsm;
SOURCE /var/www/html/integria/integria_db.sql
SOURCE /var/www/html/integria/integria_dbdata.sql
exit;
==== Console settings ====
cat > /var/www/html/integria/include/config.php << EO_CONFIG_F
cat > /etc/httpd/conf.d/PandoraITSM.conf << EO_CONFIG_F
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
EO_CONFIG_F
sed -i -e "s/php_flag engine off//g" /var/www/html/integria/images/.htaccess
sed -i -e "s/php_flag engine off//g" /var/www/html/integria/attachment/.htaccess
chmod 600 /var/www/html/integria/include/config.php
chown -R apache. /var/www/html/integria
mv /var/www/html/integria/install.php /var/www/html/integria/install.done
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
sed -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
sed -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
sed -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
sed -i -e "s/.*post_max_size =.*/post_max_size = 800M/" /etc/php.ini
echo 'TimeOut 900' > /etc/httpd/conf.d/timeout.conf
cat > /var/www/html/index.html << EOF_INDEX
EOF_INDEX
systemctl restart httpd
systemctl restart php-fpm
==== Kernel Optimization ====
cat >> /etc/sysctl.conf <
sysctl --system
==== Cron and Logrotate ====
cat > /etc/logrotate.d/pandora_itsm <
chmod 0644 /etc/logrotate.d/pandora_itsm
echo "*/5 * * * * php /var/www/html/integria/include/integria_cron.php" >> /etc/crontab
Once the installation has been completed [[#first_time_connection_to_pandora_itsm|make the first connection to Pandora ITSM]].
===== First time connection to Pandora ITSM =====
A screen will appear to accept the license and then a screen to log in (login screen):
{{ :wiki:pitsm-01_pandora_itsm_installing-login_screen.png }}
The default user is ''admin'' and the password is ''integria''.
The first time you will notice that the newly installed system uses demo data to serve as a guide for the first use. It is recommended that if you are testing **Pandora ITSM** you first visit the different options to see screens with real data and reports before deleting existing data.
The system incorporates an option: the configuration to restart or reset the data and leave the system practically empty. To do this, use the configuration option (cogwheel icon or menu **Setup → Setup → Old data maintenance**) and then click on the database data management tab (the recycle symbol). To reset all data, use the **Reset all data** button in the section with the same name, below:
{{ :wiki:pitsm-01_pandora_itsm_installing-reset_all_data.png }}
This option **will delete all data, both demo data and data added later**.
[[:en:documentation:start|Return to Pandora FMS documentation index]]