#8 Add Jenkins jobs
#9 Add systemd user service Add deployment script and systemd service file
This commit is contained in:
50
tools/deploy.sh
Normal file
50
tools/deploy.sh
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
workspace_loc=$1
|
||||||
|
echo "$workspace_loc"
|
||||||
|
|
||||||
|
deploy_tmp="deploy_tmp"
|
||||||
|
target_loc="/opt/nbscloud"
|
||||||
|
|
||||||
|
app_props_loc="$workspace_loc/web-container/target/classes/config/application.properties"
|
||||||
|
files_prop_loc="$workspace_loc/files/target/classes/config/files-application.properties"
|
||||||
|
|
||||||
|
echo "$app_props_loc"
|
||||||
|
echo "$files_prop_loc"
|
||||||
|
|
||||||
|
user=$(grep "nbscloud.deploy.service.user" "$app_props_loc" | cut -d'=' -f2)
|
||||||
|
echo "$user"
|
||||||
|
|
||||||
|
deploy_path=$(grep "nbscloud.deploy.path" "$app_props_loc" | cut -d'=' -f2)
|
||||||
|
echo "$deploy_path"
|
||||||
|
|
||||||
|
base_dir=$(grep "nbs-cloud.files.baseDir" "files_prop_loc" | cut -d'=' -f2)
|
||||||
|
echo "base_dir"
|
||||||
|
|
||||||
|
mkdir $deploy_tmp
|
||||||
|
|
||||||
|
cp "template-nbscloud.service" $deploy_tmp"/nbscloud.service"
|
||||||
|
|
||||||
|
cd $deploy_tmp
|
||||||
|
|
||||||
|
sed -i "s|USER_R|$user|g" nbscloud.service
|
||||||
|
sed -i "s|DEPLOY_PATH_R|$deploy_path|g" nbscloud.service
|
||||||
|
sed -i "s|BASE_DIR_R|$base_dir|g" nbscloud.service
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
# shellcheck disable=SC2005
|
||||||
|
echo $(cat nbscloud.service)
|
||||||
|
echo ""
|
||||||
|
cp nbscloud.service $target_loc"/nbscloud.service"
|
||||||
|
echo "Copied service file"
|
||||||
|
|
||||||
|
cp $(find "$workspace_loc/web-container/target/" -name "*.war") "$target_loc"/nbscloud.war
|
||||||
|
echo "Copied war"
|
||||||
|
|
||||||
|
echo "Finished deployment"
|
||||||
|
echo ""
|
||||||
|
echo "Manually reload service files via 'systemctl --user daemon-reload'"
|
||||||
|
echo "Then, enable the service 'systemctl --user enable --now nbscloud.service'"
|
||||||
|
echo "Or, restart the service 'systemctl --user restart nbscloud.service'"
|
||||||
30
tools/template-nbscloud.service
Normal file
30
tools/template-nbscloud.service
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[unit]
|
||||||
|
Description=NoBullShit-cloud - A personal cloud without bullshit
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
DynamicUser=true
|
||||||
|
|
||||||
|
# Values substituted from application.properties
|
||||||
|
User=USER_R
|
||||||
|
Group=USER_R
|
||||||
|
ExecStart=java -jar DEPLOY_PATH_R/nbscloud.jar
|
||||||
|
ReadWritePaths=BASE_DIR_R
|
||||||
|
|
||||||
|
# Hardening
|
||||||
|
CapabilityBoundingSet=
|
||||||
|
AmbientCapabilities=
|
||||||
|
NoNewPrivileges=true
|
||||||
|
ProtectHome=true
|
||||||
|
ProtectSystem=full
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
PrivateTmp=true
|
||||||
|
LockPersonality=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -20,3 +20,6 @@ logging.level.de.nbscloud=DEBUG
|
|||||||
|
|
||||||
server.servlet.context-path=/nbscloud
|
server.servlet.context-path=/nbscloud
|
||||||
server.port=9966
|
server.port=9966
|
||||||
|
|
||||||
|
nbscloud.deploy.service.user=marius
|
||||||
|
nbscloud.deploy.path=/opt/nbscloud
|
||||||
Reference in New Issue
Block a user