From 161707cc2eab1d76a15684ef105bf1e2ecca154d Mon Sep 17 00:00:00 2001 From: Kamal Wickramanayake Date: Sat, 23 May 2026 16:07:26 +0530 Subject: Added a Spring Boot app packaged deb file creation sample project to linux/deb directory --- .../package/DEBIAN/conffiles | 1 + .../02-fs-spring-boot-kamal/package/DEBIAN/control | 8 ++++ .../package/DEBIAN/postinst | 47 ++++++++++++++++++++++ .../02-fs-spring-boot-kamal/package/DEBIAN/preinst | 8 ++++ 4 files changed, 64 insertions(+) create mode 100644 linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/conffiles create mode 100644 linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/control create mode 100755 linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/postinst create mode 100755 linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/preinst (limited to 'linux/deb/02-fs-spring-boot-kamal/package/DEBIAN') diff --git a/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/conffiles b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/conffiles new file mode 100644 index 0000000..5c70b47 --- /dev/null +++ b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/conffiles @@ -0,0 +1 @@ +/etc/fs-spring-boot-kamal/application.yaml diff --git a/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/control b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/control new file mode 100644 index 0000000..ffeee3f --- /dev/null +++ b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/control @@ -0,0 +1,8 @@ +Package: fs-spring-boot-kamal +Version: 1.0.0-1 +Section: httpd +Priority: optional +Architecture: all +Depends: openjdk-25-jre | temurin-25-jre | openjdk-25-jdk | temurin-25-jdk +Maintainer: Kamal Wickramanayake +Description: A demo Debian package that bundles a Spring Boot application. diff --git a/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/postinst b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/postinst new file mode 100755 index 0000000..19eec59 --- /dev/null +++ b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/postinst @@ -0,0 +1,47 @@ +#!/bin/bash + +# Stop on error +set -e + +if [ "$1" == "configure" ] && [ -z "$2" ]; then + # Code here executes only during package install (but not during upgrade) + + # Create a system user + # -r: System user + # -s /sbin/nologin: Prevent the user from logging into the system interactively + # -d /var/lib/fs-spring-boot-kamal: Set home directory of user + # fs-spring-boot-kamal: Username + useradd -r -s /sbin/nologin -d /var/lib/fs-spring-boot-kamal fs-spring-boot-kamal || true + +fi + +# Set directory ownership and permissions - Application jar file not to be read by other system users +chown -R root:fs-spring-boot-kamal /opt/fs-spring-boot-kamal +chmod 750 /opt/fs-spring-boot-kamal +chmod 750 /opt/fs-spring-boot-kamal/app +chmod 640 /opt/fs-spring-boot-kamal/app/fs-spring-boot-kamal.jar + +# Set directory ownership and permissions - Config files not to be read by other system users +chown -R root:fs-spring-boot-kamal /etc/fs-spring-boot-kamal +chmod 750 /etc/fs-spring-boot-kamal +chmod 640 /etc/fs-spring-boot-kamal/application.yaml +chmod 640 /etc/fs-spring-boot-kamal/environment.env + +# Reload systemd service configurations +systemctl daemon-reload + +# Enable service as boot time +#systemctl enable fs-spring-boot-kamal + +# Restart service +#systemctl restart fs-spring-boot-kamal + +echo "[INFO] fs-spring-boot-kamal service installed." +echo "[INFO] Update /etc/fs-spring-boot-kamal/application.yaml to update the configuration." +echo "[INFO] By default, TCP port 8085 is used by the installed server." +echo "[INFO] To enable service start at boot time:" +echo "[INFO] systemctl enable fs-spring-boot-kamal" +echo "[INFO] To start the service if not running:" +echo "[INFO] systemctl start fs-spring-boot-kamal" +echo "[INFO] To allow access from remote systems, you may have to enable firewall for example by running:" +echo "[INFO] ufw allow 8085/tcp" diff --git a/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/preinst b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/preinst new file mode 100755 index 0000000..61c2587 --- /dev/null +++ b/linux/deb/02-fs-spring-boot-kamal/package/DEBIAN/preinst @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +# Put commands that should execute before the pckage is installed. + +# Example: Just print a message +echo "preinst script running..." -- cgit v1.2.3