Skip to content

How to install UltraKiss 5.0 on a Linux server (Ubuntu 24.04) #6

Description

@kisekae

UltraKiss version 5.0 provides online browser access to your KiSS sets that are downloaded from a website on the Internet with a URL or downloaded from your computer with a File-Open command.

This document is for a Ubuntu 24.04 LTS server. Other distributions can be used but this may require some adjustments to the process.

To install and run UltraKiss on a Linux server you need:

  1. A Linux server hosted by a service provider with a user configured with sudo access to install software. This server must be accessible by a public IP address. A VPS server typically provides administrator or sudo access.

  2. FTP and SSH access to this server to log on to the server and download files to the server. You do not need a graphical desktop environment on this server. A "headless" server can be used.

  3. Java software release level 17 or later must be installed. OpenJDK is the open-source implementation of the Java Platform and is the default in Ubuntu 24.04. To install the Java 17 (or later) runtime environment:

sudo apt update
sudo apt install openjdk-17-jdk

  1. For secure SSL connections you require an SSL certificate registered for your server domain. I assume you are using a Let's Encrypt certificate that has been created with Certbot. For instructions on creating a Let's Encrypt certificate refer to the Google oracle.

  2. Ensure that your firewall on your server allows access to ports 8080, 8443, and ports 49152, 49153, and 49154. The ports 8080 and 8443 are the alternate ports for http and https traffic to your server. The ports 49152-49153 are session ports for individual concurrent instances of UltraKiss running on your server.

  3. UltraKiss requires a virtual display. Install Xvfb, the X virtual frame buffer for a virtual display. This is the screen on which UltraKiss displays the Java application windows.

sudo apt install xvfb

  1. Xvfb requires a windows display manager otherwise you see undecorated windows that do not have title bars and other controls. I use kwin_x11 which is the window display manager for KDE Plasma in Linux. If you are on a headless server:

sudo apt install kde-standard -y

If you are prompted during the install to choose a display manager, choose SDDM (Simple Desktop Display Manager). The kwin-x11 package should be installed. Check with:

apt list kwin-x11

If the package does not show "installed" then it can be installed with:

sudo apt install kwin-x11

Reboot to start the display manager. sudo reboot

  1. In my case the kwin_x11 display manager did not operate correctly with UltraKiss and Xvfb. A kwin_x11 black screen, often seen after Plasma updates or driver issues, can occur on headless servers where terminals do not exist. The system may not have proper drivers. I resolved this by installing VNC (Virtual Network Computing).

sudo apt install -y tigervnc-standalone-server

  1. With the requisite software installed, we can configure the server to start UltraKiss and begin to listen for incoming connections. Download the KisekaeUltraKiss 5.0 application and the KisekaeUltraKissServlet 5.0 application from GitHub to your client computer. Download the server files from the Kisekae UltraKiss V5.0 release.

Unzip the files and create the directory "KisekaeUltraKiss"

Use FTP to transfer the UltraKiss files to your server. Move all files into the KisekaeUltraKiss directory. These files are the necessary scripts and Java application jar files.

  1. Certain processes must be started on a system boot. The text document startultrakiss.cron lists the two reboot commands that must be entered into crontab for the user who is installing and runnung UltraKiss.

crontab -e

Enter the following two lines:

@reboot /usr/bin/vncserver :1 > /home/your-user-id/KisekaeUltraKiss/startultrakiss.log 2>&1

@reboot sleep 10 && /home/your-user-id/KisekaeUltraKiss/startultrakisscron.sh >> /home/your-user-id/KisekaeUltraKiss/startultrakiss.log 2>&1

Ensure that you specify the correct path to the KisekaeUltraKiss directory created in the previous step.

These lines start the VNC server on a system reboot and 10 seconds later run the startultrakiss.sh script. This script terminates any active VNC server then starts another VNC server and then invokes the ultrakiss.sh script to start the listener service for incoming connection requests on ports 8080 and 8443.

You will also have to edit the startultrakiss.sh script to set the correct path to the KisekaeUltraKiss directory created in Step 7.

  1. Create the SSL certificate file in the KisekaeUltraKiss directory for the UltraKiss embedded Jetty server. This step assumes you have configured a Let's Encrypt certificate for your server and they are stored in /etc/letsencrypt/live/.

The script copycerts.sh in the directory KisekaeUltraKiss copies your Let's Encrypt certificate from the production live directory in /etc/letsencrypt/live/ to /var/www/ultrakiss/certs/.

When the certificates are copied they are converted to a P12 format certificate files for use by Jetty using script update_ssl.sh

To ensure that your P12 certificate file is automatically recreated when Certbot renews your SSL certificate, configure a deployment hook in Certbot to run the copycerts.sh script when certificates are renewed. An example command can be found in copycerts.sh file.

  1. Reboot the system. sudo reboot

Verify that the startup scripts ran successfully. Review the startultrakiss.log file in directory KisekaeUltraKiss.

cat KisekaeUltraKiss/startultrakiss.log

  1. To run UltraKiss in a secure session, use "https://your-domain.com:8443/ultrakiss"
    To run UltraKiss in a non-secure session, use "http://your-domain.com:8080/ultrakiss"

If you want to remove the requirement to specify the port number on your URL for https communications, enter the following directives in your .htaccess file.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ultrakiss [NC]
RewriteCond %{HTTPS} on
RewriteCond %{SERVER_PORT} !^8443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}:8443/$1 [R=301,L]
</IfModule>

Last updated: February 18, 2026.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions