Chapter 2. Deploying

Table of Contents

Preparation
Third-party software installation
Argeo software installation
Initialise the PostgreSQL database (optional)
Initialise the 389 LDAP server (optional)
Firewall
Configuration and first initialisation
Apache reverse proxy
Update

This chapter describes the standard deployments of an Argeo Platform on CentOS or RHEL 8. Before deploying one should consider the authorisation mechanisms that will be used (based on local files, LDAP, or authd) and the backend for the Jackrabbit repository (Java H2 database or PostgreSQL).

Preparation

Third-party software installation

# Make sure the environment is up-to-date
sudo yum clean all
sudo yum update
# Java 11 is always required
sudo yum install java-11-openjdk-headless
# Telnet is optionally useful only for local access to the OSGi console (telnet localhost 2323)
sudo yum install telnet
# PostgreSQL is required if it used as Jackrabbit backend and deployed on the same host
sudo yum install postgresql-server
# 389 Directory Server is required if it used a user referential and deployed on the same host
sudo yum install 389-ds-base

Argeo software installation

# Install the Argeo release
sudo rpm -Uvh http://repo.argeo.org/rpm/argeo2-release-latest-7.noarch.rpm
# Install the Argeo platform
sudo yum install argeo-node argeo-cms-e4-rap
# Reload systemd
sudo systemctl daemon-reload

Initialise the PostgreSQL database (optional)

First, init the PostgreSQL data:

sudo postgresql-setup initdb

Then edit /var/lib/pgsql/data/pg_hba.conf and trust local access, so that the java process can access the database:

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
				
				

If the PostgreSQL server is running on another host, or you want to access it with external clients, you should also authorise the related network:

host    all             all             192.168.122.0/24        trust
				

And edit /var/lib/pgsql/data/postgresql.conf :

listen_addresses = '*'

Finally, start the PostgreSQL server and create a database user:

# Start the database server
sudo systemctl enable --now postgresql
# Create a database user
export DB_USER=argeo
export DB_NAME=argeo
sudo -i -u postgres psql -c "DROP USER $DB_USER;"
sudo -i -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD 'changeit';"
# Create the database
sudo -i -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER;"

Initialise the 389 LDAP server (optional)

Create a file argeo-slapd-setup.inf :

[general]
[slapd]
instance_name = argeo
root_dn = cn=Directory Manager
root_password = argeoargeo

[backend-userroot]
suffix = dc=example,dc=com

Then, create a new instance:

sudo dscreate from-file argeo-slapd-setup.inf

Firewall

# Open port 8080
sudo firewall-cmd --permanent --add-port 8080/tcp
sudo firewall-cmd --reload