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!
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!