diff options
Diffstat (limited to 'microservices/03-resource-server/linux/deb/package')
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 |
