LogoLogo
timvero.comMaven Repository
  • timveroOS SDK guide
  • timveroOS how-to
  • timveroOS admin-side setup
  • How to use Maven credentials
  • timveroOS SDKs
    • v. 7.11
      • Ubuntu environment setup
      • Data model setup
      • New data source connection, with Bud Financial example
      • Flow customization
      • Decision process execution
      • Participant/ assets dynamic profile setup
      • Documents flow integration setup
      • Application form setup
      • Application API Integration Guide
      • UI/ UX components
        • Collapsing blocks
    • v. 7.10
      • Ubuntu environment setup
      • Data model setup
      • New data source connection, with Bud Financial example
      • Flow customization
      • Participant/ assets dynamic profile setup
      • Documents flow integration setup
      • Application form setup
      • Application API Integration Guide
      • UI/ UX components
        • Collapsing blocks
Powered by GitBook
On this page

Was this helpful?

  1. timveroOS SDKs
  2. v. 7.10

Ubuntu environment setup

For example environment, we will use an Ubuntu 24.04 LTS, OpenJDK 21, Tomcat 10, Nginx.

1. Update

Update all Ubuntu packages.

$ sudo apt update
$ sudo apt list --upgradable
$ sudo apt upgrade
$ sudo apt autoremove

2. Setup swap

Create swap and make it permanent.

$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

$ sudo swapon --show

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Change swapiness.

$ sudo cat /proc/sys/vm/swappiness
$ sudo echo "vm.swappiness = 10" | sudo tee -a /etc/sysctl.d/99-swappiness.conf
$ sudo sysctl -p
$ sudo sysctl vm.swappiness=10

3. Java Installation

The application requires JDK 21 to be installed.

$ sudo apt install openjdk-21-jdk

4. Installation and configuration of Tomcat

We need a separate user to run Tomcat service and base directory to deploy the application.

$ sudo groupadd timvero
$ sudo useradd -s /bin/false -g timvero -d /opt/pumpkin pumpkin

Now we can install Tomcat and apply base directory.

$ sudo apt install tomcat10-user
$ sudo tomcat10-instance-create -p 8080 -c 8005 /opt/pumpkin

Add Valve to /opt/pumpkin/conf/server.xml.

<Valve className="org.apache.catalina.valves.RemoteIpValve"
    remoteIpHeader="x-forwarded-for"
    protocolHeader="x-forwarded-proto" />

5. Redis sessions

Copy this libraries to /opt/pumpkin/lib/

Add Redisson configuraton file /opt/pumpkin/conf/redisson.yaml

singleServerConfig:
    address: "redis://127.0.0.1:6379"
    database: 1
    password: ___REDIS_PASSWORD___
    connectionMinimumIdleSize: 10
threads: 0
nettyThreads: 0

And add to /opt/pumpkin/conf/context.xml

<Manager className="org.redisson.tomcat.RedissonSessionManager"
    configPath="${catalina.base}/conf/redisson.yaml"
    readMode="REDIS" updateMode="DEFAULT" broadcastSessionEvents="false"
    keyPrefix=""/>

6. Basic application settings

Create the application configuration file /opt/pumpkin/conf/application.properties

#host, port, and database name
dataSource.url=jdbc:postgresql://<host>:<port>/<database>#database username
dataSource.username=
dataSource.password=

application.serverMode=true

application.home=/opt/timvero

7. Application home

Create the application home folder for work and temporary files.

$ sudo mkdir /opt/timvero
$ sudo mkdir /opt/timvero/hbm2ddl/
$ sudo chmod -R 660 /opt/timvero
$ sudo chown -R pumpkin:timvero /opt/timvero

$ sudo chmod -R 774 /opt/pumpkin
$ sudo chown -R pumpkin:timvero /opt/pumpkin

8. Service

Create system service configuration file /etc/systemd/system/pumpkin.service.

[Unit]
Description=Main Timvero Application
After=network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64"

Environment="CATALINA_BASE=/opt/pumpkin"
Environment="CATALINA_HOME=/opt/pumpkin"
Environment="CATALINA_PID=/opt/pumpkin/temp/tomcat.pid"
Environment="CATALINA_OPTS=-server"
Environment="JAVA_OPTS=-Xms512M -Xmx1G -Dspring.config.additional-location=/opt/pumpkin/conf/application.properties"

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

User=pumpkin
Group=timvero
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

And apply it.

$ sudo systemctl daemon-reload
$ sudo systemctl enable pumpkin.service

9. Database

Create database, user and grant permissions.

CREATE DATABASE pumpkin;
CREATE USER pumpkin WITH ENCRYPTED PASSWORD '******';
ALTER DATABASE pumpkin OWNER TO pumpkin;

10. Proxy configuration

In case of reverse proxy presents the application requires correct headers forwarding. Here is example location for Nginx server.

     # Example proxy configuration
        location / {
                proxy_http_version 1.1;
                proxy_set_header Host $host;

                proxy_set_header x-forwarded-for $remote_addr;
                proxy_set_header x-forwarded-host $host;
                proxy_set_header x-forwarded-proto "https";

                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Origin $http_origin;

                # Tomcat host and port
                proxy_pass http://127.0.0.1:8080;
        }

11. User for deployment

Create user.

$ sudo adduser --disabled-password deploy
$ sudo usermod -g timvero deploy

Generate new private and public key pair. Save public key to user home ~/.ssh/authorized_keys.

To add service permissions edit /etc/sudoers.d/deploy.

deploy ALL=(ALL) NOPASSWD:/usr/sbin/service pumpkin *

12. Start application

Upload WAR file to folder /opt/pumpkin/webapps and start pumpkin service.

Previousv. 7.10NextData model setup

Last updated 4 months ago

Was this helpful?

https://mvnrepository.com/artifact/org.redisson/redisson-all
https://mvnrepository.com/artifact/org.redisson/redisson-tomcat-10