(Last Updated On: June 6, 2019)

This guide will walk you through the steps to install i-doit Professional IT documentation and CMDB system on Ubuntu 18.04. i-doit offers you a professional IT-documentation solution based on ITIL guidelines. With this tool, you can easily document entire IT systems and their changes, define emergency plans, display vital information and ensure stable and efficient operation of IT networks.

Its technical IT-documentation enables you to create a detailed overview of the entire IT-infrastructure for all kinds of assets from the spatial situation, including graphical rack views, servers, and appliances to complex systems such as clusters, SAN, virtualization or blade/chassis systems.

i-doit system requirements

Below are the Minimum Requirements for installing i-doit Open Source CMDB on Ubuntu 18.04 system.

  • 2 vCPUs
  • 2 GB RAM
  • 10 GB free disc space

We will do our installation on a dedicated Virtual Machine. On the software end, LAMP Stack is required. This LAMP stack comprises of the following packages.

  • Apache Web server 2.4
  • MariaDB 10.x or MySQL 5.6, 5.7+
  • PHP 5.6 (deprecated), 7.x
  • PHP extensions: bcmath, ctype, curl, fileinfo, gd, imagick, json, ldap, mbstring, memcached, mysqli, mysqlnd, pgsql, session, soap, xml, zip

The next steps will cover the complete procedure of installing i-doit Open Source CMDB on Ubuntu 18.04.

Step 1: Install Apache and PHP

Install Apache web server and required PHP extensions.

sudo apt -y install apache2 libapache2-mod-php
sudo apt -y install php-{bcmath,cli,common,curl,gd,json,ldap,mbstring,mysql,opcache,pgsql,soap,xml,zip,imagick,memcached}
sudo apt -y install memcached unzip moreutils

Create new PHP configuration file for i-doit.

sudo tee /etc/php/7.2/mods-available/i-doit.ini<<EOF
allow_url_fopen = Yes
file_uploads = On
magic_quotes_gpc = Off
max_execution_time = 300
max_file_uploads = 42
max_input_time = 60
max_input_vars = 10000
memory_limit = 256M
post_max_size = 128M
register_argc_argv = On
register_globals = Off
short_open_tag = On
upload_max_filesize = 128M
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
default_charset = "UTF-8"
default_socket_timeout = 60
date.timezone = Africa/Nairobi
session.gc_maxlifetime = 604800
session.cookie_lifetime = 0
mysqli.default_socket = /var/run/mysqld/mysqld.sock
EOF

The value (in seconds) of session.gc_maxlifetime should be the same or greater than the Session Timeout in the system settings of i-doit.

The date.timezone parameter should be adjusted to the local time zone (see List of supported time zones).

Afterwards, the required PHP modules are activated and the Apache web server is restarted:

sudo phpenmod i-doit
sudo phpenmod memcached
sudo systemctl restart apache2.service

Step 2: Install MariaDB Database Server

A database server is an essential dependency. Use our guide below to install and configure MariaDB on Ubuntu 18.04.

Install MariaDB on Ubuntu 18.04

After installation and configuration, log in to MariaDB console run the following commands.

SET GLOBAL innodb_fast_shutdown = 0;
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
FLUSH PRIVILEGES;

Tune your MariaDB server for optimal performance.

sudo nano /etc/mysql/mariadb.conf.d/99-i-doit.cnf

Set like below.

[mysqld]
  
# This is the number 1 setting to look at for any performance optimization
# It is where the data and indexes are cached: having it as large as possible will
# ensure MySQL uses memory and not disks for most read operations.
#
# Typical values are 1G (1-2GB RAM), 5-6G (8GB RAM), 20-25G (32GB RAM), 100-120G (128GB RAM).
innodb_buffer_pool_size = 1G
 
# Use multiple instances if you have innodb_buffer_pool_size > 10G, 1 every 4GB
innodb_buffer_pool_instances = 1
 
# Redo log file size, the higher the better.
# MySQL/MariaDB writes two of these log files in a default installation.
innodb_log_file_size = 512M
 
innodb_sort_buffer_size = 64M
sort_buffer_size = 262144 # default
join_buffer_size = 262144 # default
 
max_allowed_packet = 128M
max_heap_table_size = 32M
query_cache_min_res_unit = 4096
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 80M
 
tmp_table_size = 32M
max_connections = 200
innodb_file_per_table = 1
 
# Disable this (= 0) if you have only one to two CPU cores, change it to 4 for a quad core.
innodb_thread_concurrency = 0
 
# Disable this (= 0) if you have slow harddisks
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
 
innodb_lru_scan_depth = 2048
table_definition_cache = 1024
table_open_cache = 2048
# Only if your have MySQL 5.6 or higher, do not use with MariaDB!
#table_open_cache_instances = 4
 
innodb_stats_on_metadata = 0
 
sql-mode = ""

When done, restart mariadb service.

sudo systemctl restart mysql

Step 3: Download i-doit

We need to download and extract the open source version of i-doit.

export LATEST="1.12.3"
wget https://sourceforge.net/projects/i-doit/files/i-doit/$LATEST/idoit-open-$LATEST.zip
sudo unzip idoit-open-$LATEST.zip -d /var/www/html/i-doit

Set permissions for the created directory to apache user.

cd /var/www/html/i-doit
sudo chown www-data:www-data -R .
sudo find . -type d -name \* -exec chmod 775 {} \;
sudo find . -type f -exec chmod 664 {} \;
sudo chmod 774 controller *.sh setup/*.sh

Create Apache configuration file for i-doit.

sudo tee /etc/apache2/sites-available/i-doit.conf<<EOF
<VirtualHost *:80>
        ServerAdmin [email protected]
 
        DirectoryIndex index.php
        DocumentRoot /var/www/html/
        <Directory /var/www/html/>
                AllowOverride All
                Require all granted
        </Directory>
 
        LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF

Enable site and rewrite module.

sudo chown www-data:www-data -R /var/www/html/
sudo chmod 755 /var/log/apache2
sudo chmod 664 /var/log/apache2/*
sudo a2ensite i-doit
sudo a2enmod rewrite
sudo systemctl restart apache2.service

Step 4: Run i-doit Setup

We are close to the end of our setup. Launch the Web GUI setup by opening server URL, example, http://idoit.example.com/i-doit/.

All system checks should show a pass.

Directory Configuration

Here the paths are requested where the installation files or user specific files are going to be stored. You can accept the suggested options.

Database Configuration

Important credentials and settings need to be entered for the database connection. At least two databases and one special user are created for i-doit.

  • Connection settings
    • Host: Generally the host itself, so localhost or 127.0.0.1
    • Port: Generally the default port of MySQL/MariaDB, so 3306
    • Username: User name of the database system user, usually root
    • Password: Password of the user
  • MySQL user settings
    • Username: User name of the i-doit databases owner, usually idoit
    • Password: Password of the user
  • Database settings
    • System Database Name: Name of the system database, usually idoit_system
    • Mandator Database Name: Name of the database for the first tenant, usually idoit_data
    • Mandator title: Title of the tenant, usually the name of the organization that is focused on
    • Start value for object/configuration item IDs: Normally 1

Framework Configuration

There are separate credentials in i-doit to access the i-doit Admin Center. They can be specified here and we recommend using this option.

Config Check

In this step, all prior steps are reviewed and checked to see if the setup can take place.

Installation

The installation of i-doit on the system is carried out in this step.

Login as user admin and password admin set.

You now have i-doit Open Source CMDB installed on Ubuntu 18.04.

Further steps

Refer to i-doit Documentation for advanced configurations and usage.

Similar guides:

Install Ralph CMDB / Asset Management system on Ubuntu 18.04

How to Install GLPI on Ubuntu 18.04 LTS

How to Install OCS Inventory Server on Ubuntu 18.04