1
0

#8 Add Jenkins jobs

#9 Add systemd user service

Add deployment script and systemd service file
This commit is contained in:
2022-05-08 21:11:11 +02:00
parent 61b285c172
commit c7b8f0c949
3 changed files with 84 additions and 1 deletions

50
tools/deploy.sh Normal file
View 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'"

View 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

View File

@@ -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