summaryrefslogtreecommitdiff
path: root/microservices/03-resource-server/linux/deb/package
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-07-03 21:10:32 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-07-03 21:10:32 +0530
commita0f3f5a069153c46ac3a85fa75c3ec50fea6ea99 (patch)
tree6e97c9b87c314a8a64a25d3ffe10e710db1740fc /microservices/03-resource-server/linux/deb/package
parentaa122113ade36f02dc8fdbebdf1232b5c4b8742c (diff)
Added Linux deb file creation scripts and build-all.sh
Diffstat (limited to 'microservices/03-resource-server/linux/deb/package')
-rw-r--r--microservices/03-resource-server/linux/deb/package/DEBIAN/conffiles2
-rw-r--r--microservices/03-resource-server/linux/deb/package/DEBIAN/control8
-rwxr-xr-xmicroservices/03-resource-server/linux/deb/package/DEBIAN/postinst59
-rwxr-xr-xmicroservices/03-resource-server/linux/deb/package/DEBIAN/postrm14
-rwxr-xr-xmicroservices/03-resource-server/linux/deb/package/DEBIAN/preinst8
-rwxr-xr-xmicroservices/03-resource-server/linux/deb/package/DEBIAN/prerm9
-rw-r--r--microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/application.yaml40
-rw-r--r--microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/environment.env2
-rw-r--r--microservices/03-resource-server/linux/deb/package/etc/systemd/system/ceit-fs-resource-server.service12
-rw-r--r--microservices/03-resource-server/linux/deb/package/opt/ceit/ceit-fs-resource-server/app/.gitignore1
10 files changed, 155 insertions, 0 deletions
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/conffiles b/microservices/03-resource-server/linux/deb/package/DEBIAN/conffiles
new file mode 100644
index 0000000..a7f5a82
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/DEBIAN/conffiles
@@ -0,0 +1,2 @@
+/etc/ceit-fs-resource-server/application.yaml
+/etc/ceit-fs-resource-server/environment.env
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/control b/microservices/03-resource-server/linux/deb/package/DEBIAN/control
new file mode 100644
index 0000000..e3d6afe
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/DEBIAN/control
@@ -0,0 +1,8 @@
+Package: ceit-fs-resource-server
+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 <info@software.lk>
+Description: A demo Debian package that bundles a Spring Boot application.
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/postinst b/microservices/03-resource-server/linux/deb/package/DEBIAN/postinst
new file mode 100755
index 0000000..247d430
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/DEBIAN/postinst
@@ -0,0 +1,59 @@
+#!/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/ceit-fs-resource-server: Set home directory of user
+ # ceit-fs-resource-server: Username
+ useradd -r -s /sbin/nologin -d /var/lib/ceit-fs-resource-server ceit-fs-resource-server || true
+
+fi
+
+# Set directory ownership and permissions - Application jar file not to be read by other system users
+chown -R root:ceit-fs-resource-server /opt/ceit/ceit-fs-resource-server
+chmod 755 /opt/ceit
+chmod 750 /opt/ceit/ceit-fs-resource-server
+chmod 750 /opt/ceit/ceit-fs-resource-server/app
+chmod 640 /opt/ceit/ceit-fs-resource-server/app/ceit-fs-resource-server.jar
+
+# Set directory ownership and permissions - Config files not to be read by other system users
+chown -R root:ceit-fs-resource-server /etc/ceit-fs-resource-server
+chmod 750 /etc/ceit-fs-resource-server
+chmod 640 /etc/ceit-fs-resource-server/application.yaml
+chmod 640 /etc/ceit-fs-resource-server/environment.env
+
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -d /run/systemd/system ]; then
+ # Reload systemd service configurations
+ systemctl daemon-reload > /dev/null || true
+
+ if [ -n "$2" ]; then
+ # Upgrade
+ # Restart service
+ if systemctl is-enabled ceit-fs-resource-server > /dev/null; then
+ systemctl start ceit-fs-resource-server
+ fi
+ else
+ # First install (not upgrade)
+ # Enable service to start at boot time
+ systemctl enable ceit-fs-resource-server
+ # Start service
+ systemctl start ceit-fs-resource-server
+ fi
+ fi
+fi
+
+if [ "$1" == "configure" ] && [ -z "$2" ]; then
+ # Code here executes only during package install (but not during upgrade)
+ echo "[INFO] ceit-fs-resource-server service installed."
+ echo "[INFO] Update /etc/ceit-fs-resource-server/application.yaml to update the configuration."
+ echo "[INFO] By default, TCP port 8085 is used by the installed server."
+ echo "[INFO] To allow access from remote systems, you may have to enable firewall for example by running:"
+ echo "[INFO] ufw allow 8085/tcp"
+fi
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/postrm b/microservices/03-resource-server/linux/deb/package/DEBIAN/postrm
new file mode 100755
index 0000000..1883418
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/DEBIAN/postrm
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -e
+
+# Check if the package is being purged (erased entirely including configs)
+if [ -z "$DPKG_ROOT" ] && [ "$1" = "purge" ] ; then
+ update-rc.d ceit-fs-resource-server remove >/dev/null
+ deluser --quiet ceit-fs-resource-server || true
+fi
+
+# Reload systemd service configuration files.
+systemctl daemon-reload
+
+# postrm script must exit with 0
+exit 0
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/preinst b/microservices/03-resource-server/linux/deb/package/DEBIAN/preinst
new file mode 100755
index 0000000..61c2587
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/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..."
diff --git a/microservices/03-resource-server/linux/deb/package/DEBIAN/prerm b/microservices/03-resource-server/linux/deb/package/DEBIAN/prerm
new file mode 100755
index 0000000..e662818
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/DEBIAN/prerm
@@ -0,0 +1,9 @@
+#!/bin/bash
+set -e
+
+# Stop service before files are removed
+systemctl stop ceit-fs-resource-server || true
+
+# prerm script must exit with 0
+exit 0
+
diff --git a/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/application.yaml b/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/application.yaml
new file mode 100644
index 0000000..5a1c9df
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/application.yaml
@@ -0,0 +1,40 @@
+server:
+ port: 8052
+ address: 127.0.0.1
+ servlet:
+ context-path: /myservices
+
+# logging:
+# level:
+# org.springframework.security: trace
+
+spring:
+ application:
+ name: resource-server
+
+ security:
+ oauth2:
+ resourceserver:
+ jwt:
+ issuer-uri: https://fs-auth-server.dev.ceit.pdn.ac.lk
+
+ datasource:
+ url: jdbc:h2:mem:testdb
+ driver-class-name: org.h2.Driver
+ username: sa
+ password: password
+ h2:
+ console:
+ enabled: false
+ path: /h2-console # H2 Console: http://localhost:8052/myservices/h2-console
+ jpa:
+ # database-platform: org.hibernate.dialect.H2Dialect
+ hibernate:
+ ddl-auto: update
+ show-sql: false
+ defer-datasource-initialization: true # schema.sql and data.sql are executed after Hibernate/JPA auto-creates database tables.
+
+ # Always execute initialization scripts (resources/schema.sql, resources/data.sql) on startup
+ sql:
+ init:
+ mode: always
diff --git a/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/environment.env b/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/environment.env
new file mode 100644
index 0000000..5423533
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/etc/ceit-fs-resource-server/environment.env
@@ -0,0 +1,2 @@
+# Which Spring profile should be active?
+#SPRING_PROFILES_ACTIVE=prod
diff --git a/microservices/03-resource-server/linux/deb/package/etc/systemd/system/ceit-fs-resource-server.service b/microservices/03-resource-server/linux/deb/package/etc/systemd/system/ceit-fs-resource-server.service
new file mode 100644
index 0000000..0bb7388
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/etc/systemd/system/ceit-fs-resource-server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=ceit-fs-resource-server
+
+[Service]
+User=ceit-fs-resource-server
+EnvironmentFile=/etc/ceit-fs-resource-server/environment.env
+ExecStart=/usr/bin/java -Dspring.config.import=optional:file:/etc/ceit-fs-resource-server/application.yaml -jar /opt/ceit/ceit-fs-resource-server/app/ceit-fs-resource-server.jar
+Restart=always
+RestartSec=30
+
+[Install]
+WantedBy=multi-user.target
diff --git a/microservices/03-resource-server/linux/deb/package/opt/ceit/ceit-fs-resource-server/app/.gitignore b/microservices/03-resource-server/linux/deb/package/opt/ceit/ceit-fs-resource-server/app/.gitignore
new file mode 100644
index 0000000..d392f0e
--- /dev/null
+++ b/microservices/03-resource-server/linux/deb/package/opt/ceit/ceit-fs-resource-server/app/.gitignore
@@ -0,0 +1 @@
+*.jar