Installing Axelor 7.1.2 on RHEL / Rocky / Alma 9

Hello again! I’ve been told that the installation guides are available in a separate thread. But the links don’t seem to be working for me, the videos are in french and I don’t speak french. I tried to use the Docker repos. But, they are 4+ years old and fail when I run them. I did manage to get things running, but it took me a bit more trial and error than I was hoping for. To be honest it might just be failing on my technical ability that caused all this. But in case anyone else has as much trouble as I did, I thought I’d document my procedure here. If nothing else, I’m hoping it may help someone else who has an org requirement for RHEL, as I only saw Debian/Ubuntu instructions.

Basic Requirements

RHEL / Rocky / Alma 9
openjdk 11
Postgres Server 12
Tomcat 9
Axelor 7.1.2

Install openjdk 11

dnf install -y java-11-openjdk-devel

Install Postgres Server 12

dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf install -y postgresql12-server
postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

Configure Postgres Server 12

It should go without saying, but replace PUT_YOUR_OWN_PASSWORD_HERE with your own password below! :slight_smile:

su postgres
createuser axelor --no-createdb --no-superuser
psql -c "alter user axelor with encrypted password 'PUT_YOUR_OWN_PASSWORD_HERE'";
psql -c "CREATE DATABASE axelor";
exit

Fix Auth Method

I’m not sure if this is still required or not. But I found some old documentation that said MD5 was needed. I know this works, but please let me know if this is no longer required, TY!

Edit /var/lib/pgsql/12/data/pg_hba.conf with your favorite text editor and you should see this:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

Update it to the following and save:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

Then, restart Postgres:

systemctl restart postgresql-12

Install Tomcat 9

Go to https://tomcat.apache.org and find the current link to tomcat 9. At time of writing, that is https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.79/bin/apache-tomcat-9.0.79.tar.gz. Use that below

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.79/bin/apache-tomcat-9.0.79.tar.gz
mkdir -p /opt/tomcat
tar -xzf apache-tomcat-*.tar.gz -C /opt/tomcat --strip-components=1
chgrp -R tomcat /opt/tomcat
chmod -R g+r /opt/tomcat/conf
chmod g+x /opt/tomcat/conf
chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/

Use your favorite text editor and create the file /etc/systemd/system/tomcat.service with the following contents:

[Unit]
Description=Tomcat 9
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Then load and start the service we made:

systemctl daemon-reload
systemctl enable tomcat.service
systemctl start tomcat.service

If firewalld is enabled you will need to open port 8080:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

You should now be able to visit http://your_server_ip:8080 and see the Apache Tomcat successfully installed page.

Install Axelor 7.1 WAR

I’ve only tested this with 7.1.2. So I’ll use that link below. Your mileage may vary with other versions.

cd /opt/tomcat/webapps/
wget https://github.com/axelor/axelor-open-suite/releases/download/v7.1.2/axelor-erp-v7.1.2.war
systemctl restart tomcat

Tomcat should extract the WAR for you. Open the /opt/tomcat/webapps/axelor-erp-v7.1.2/WEB-INF/classes/axelor-config.properties with your favorite text editor and you should see:

# Database settings
# ~~~~~
db.default.driver = org.postgresql.Driver
db.default.ddl = update
db.default.url = jdbc:postgresql://localhost:5432/axelor-open-suite
db.default.user = axelor
db.default.password = *****

modify this to, again use your own password in place of PUT_YOUR_OWN_PASSWORD_HERE :

# Database settings
# ~~~~~
db.default.driver = org.postgresql.Driver
db.default.ddl = update
db.default.url = jdbc:postgresql://localhost:5432/axelor
db.default.user = axelor
db.default.password = PUT_YOUR_OWN_PASSWORD_HERE 

Don’t change any other section of the file!

Finally, restart tomcat:

systemctl restart tomcat

Open Axelor!

Now simply visit http://your_server_ip:8080/axelor-erp-v7.1.2 . It will take a extremely long time to load the first time. Don’t worry, it’s doing quite a bit in the background. If you see a page that says « The origin server did not find a current representation for the target resource or is not willing to disclose that one exists », then you have a problem you need to fix. I’d recommend doing the following command and diagnosing from there:

cat /opt/tomcat/logs/*

If you don’t have any trouble, you’ll be shown a login page, the user/pass is admin/admin. Hope you are having as much fun as I am with it!

3 « J'aime »

Hello,

I wanted to express my sincere gratitude for this post on the Axelor forum outlining your installation procedure and sharing valuable insights. Your contribution has been incredibly helpful many to peers in the Axelor community.

The Axelor community thrives because of individuals like you who generously contribute their time and knowledge. Your efforts make a significant difference in helping users to make the most out of the platform. I greatly appreciate your dedication to fostering a supportive environment and enriching the collective knowledge of the community.

Thank you for your valuable input and for being an integral part of the Axelor.

Best Regards,

2 « J'aime »