#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
|
||||
Reference in New Issue
Block a user