Headless Linux - Install Intrexx

Installation Setup
Before installing Intrexx, please check whether all requirements are met and the preparatory steps have been carried out.

The corresponding help pages provide more information:
  1. System requirements
  2. HTTPS

1. General

The installation described here is performed on the Ubuntu distribution 18.04.1 LTS. The following installation may be required on Debian-based systems:
apt-get install default-jre-headless
The following are utilized as tools:

2. The "intrexx" user

So that the role of administrating Intrexx is independent from the root, it is best to create an "intrexx" user. The Intrexx installation is performed with this user. This user is then configured to administrate the Intrexx installation and services. At the time of installation, a user with root permissions is required or the permissions of the "intrexx" user are extended with root permissions. After the installation, the permissions of the "intrexx" user can be limited to specific administrative permissions such as starting and stopping the Intrexx services. The "intrexx" user needs to be provided with all permissions for the directories, files and services created for Intrexx, so that they can administrate these without root permissions.

The username and password here are only examples. For security reasons, a username should not be selected that is easily related to the system. The password should also be strong enough - especially if the portal is on the internet.

2.1. Create "intrexx" user

sudo useradd -m intrexx
The home directory (/home/intrexx) is created with the parameter -m.
sudo passwd intrexx
The password is provided with this command.

2.2. Provide "intrexx" user with root permissions

With the following command, the "intrexx" user is added to the "sudo" group. All other group memberships of the "intrexx" user are not changed.
sudo usermod -aG sudo intrexx
With this command, you can identify which groups the "intrexx" user belongs to:
groups intrexx
The sudo permission is required for the installation and can be removed with the following command after the installation:
sudo deluser intrexx sudo

2.3. Switch to "intrexx" user

Switch to the home directory with the following command:
sudo su intrexx
cd /home/intrexx

3. Intrexx portal server installation - Preparations

3.1. Copy the installation package

The installation package can be copied to the home directory /home/intrexx of the "intrexx" user via Winscp.

It can then be extracted using the command
tar -xvzf intrexx-19.03.0-linux-x86_64.tar.gz
The generated directory "IX_" contains all installation files.

3.2. Prepare the software update

The online update can be downloaded here. Copy the package for your Intrexx version into the home directory /home/intrexx on the Linux server.

3.3. Create installation directory

sudo mkdir /opt/intrexx
Before performing the installation, create the Intrexx target directory, which the "intrexx" user has all permissions for (e.g. /opt/intrexx), using the command above. The ownership is modified with this command:
sudo chown intrexx:intrexx /opt/intrexx/
The permissions are modified with the following command. The "intrexx" user is provided with all permissions:
sudo chmod 755 -R /opt/intrexx/
Please never recursively provide full access permissions (777) to an already installed Intrexx version.

3.4. Define setup permissions for the "intrexx" user

Switch to the folder where the installation files are located. Provide the permissions for performing the setup.sh with this command:
sudo chmod 755 setup.sh
A password may not be requested while executing sudo commands.
Add the "intrexx" user to the list of users who are allowed to execute sudo commands without entering a password:
  1. Open the file /etc/sudoers as the root
  2. Add the line: intrexx ALL=(ALL) NOPASSWD: ALL

4. Intrexx portal server headless installation

On Linux, the installation is performed without the GUI via the console (headless). Switch to the directory with the installation files and perform the setup with root permissions.

4.1. Start the installation

The installation is started with this command:
cd IX_19.03
sudo ./setup.sh –console

4.2. Confirm license

Confirm that you accept the license terms with "Y" (Yes).

4.3. Installation package

So that only the portal server without the Portal Manager is installed on the Linux server, select package 2 here.

Confirm this with "Yes".

4.4. Installation directory

Specify the installation directory created earlier.

Confirm the installation instance with the Enter key.

4.5. Daemon account

Specify the "intrexx" user here. Accept the supervisor and Solr port.

4.6. Update directory

Decline the default settings with "no" here.
Select 2 (File) as the source.
Under "File", specify the online update file
with its path (/home/intrexx/<version number>.zip).
Apply the settings with "yes".

4.7. Installation starts

The installation starts. Online updates are also installed.

4.8. Configured services

There are 2 services after the installation:

The installed shell scripts for the services can be viewed here: /opt/intrexx/bin/linux.
ls  -la /opt/intrexx/bin/linux/upix*

4.9. Service units

The configured services for this purpose can be found here: /etc/systemd/system. The default owner of the services is "root".
ls  -la /etc/systemd/system/upix*

The following commands are available for administrating the services: The services contain the user who the service runs under. Here is an example of the supervisor service:
Description=Intrexx Supervisor

ExecStart=/opt/intrexx/bin/linux/upixsupervisor start sysd
ExecStop=/opt/intrexx/bin/linux/upixsupervisor stop sysd

Once started, it runs under the "intrexx" user.
systemctl status upixsupervisor

ps -aux | grep upix
Displays all active services with upix.

4.10. Configure services for the "intrexx" user

So that the "intrexx" user does not need root permissions for the administration, but can still stop and start all services, the following modifications are required.

Supervisor service

No modifications required.

Solr service

The owner permissions need to be changed to "intrexx" here: In the directory: cd /opt/intrexx/bin/linux
sudo chown intrexx:intrexx upixsolr
Modify "RUN-AS-USER" in Solr in the "upixsolr" file:

Change user to upixsolr.service:
cd /etc/systemd/system
sudo vi  upixsolr.service

Provide the "intrexx" user with permissions for stopping and starting services

Specific sudo permissions are stored in the file /etc/sudoers. The file can be edited with visudo (command: sudo visudo). Enter the following commander in the sudoer:
# User alias : 
User_Alias INTREXXMASTER = intrexx
# User priviledge
INTREXXMASTER ALL=NOPASSWD: /bin/systemctl *  upix*

The "intrexx" user now has the ability to stop and start the upix services, even though they are not a member of the sudo group. Sudo is entered before the command and performed without a password request:
sudo systemctl start/stop upixp*.service
sudo systemctl start upixpsupervisor.service
Starts the supervisor service.

5. Manage Intrexx portal server services

sudo /bin/systemctl status upix*.service
sudo /bin/systemctl start/stop upix*.service
Query active services:
ps -ef | grep upix

Set the administrator password
Set a password for the administrator as soon as the installation is complete.
Proceed as follows to do so:
  1. Start the Portal Manager.
  2. Click on "Extras > Administration logins...".
  3. Select the "administrator" user in the dialog that opens.
  4. Click on "Edit".
    The dialog for changing the password will open.

  5. Leave the "Old password" field blank. (The administrator will be given a blank password during the installation process.)
  6. Set a new password and repeat it.
  7. Click on "OK".
You will need to enter this password the next time you log in to the Portal Manager.

6. Troubleshooting

If the keyboard shortcuts do not work, switch shell:
echo $0
Displays used shell -> -sh
Switch to bash
chsh -s /bin/bash intrexx
After logging our and logging in, the default shell for intrexx is then bash.

7. More information

PostgreSQL installation
PostgreSQL configuration
Linux with GUI