deploy additionals, nextcloud

This commit is contained in:
2024-08-22 16:33:04 +02:00
parent 951df74aec
commit f60539f0b5

View File

@@ -99,6 +99,68 @@ NEXTCLOUD_TEMPLATE="
} }
"; ";
if [ "$SERVICE_DIR" == "" ]; then
SERVICE_DIR="/etc/user/config/services";
fi;
GIT_REPO=$GIT_REPO
if [ "$GIT_REPO" == "" ]; then
GIT_REPO=git.format.hu
fi
ORGANIZATION=$ORGANIZATION
if [ "$ORGANIZATION" == "" ]; then
ORGANIZATION=format
fi
deploy_additionals(){
local NAME="$1"
local JSON="$(echo "$2" | base64 -d)"
# Loop through each key in the JSON and create a variable
for key in $(echo "$JSON" | jq -r 'keys[]'); do
value=$(echo "$JSON" | jq -r --arg k "$key" '.[$k]')
eval "$key=$value"
done
# env variables are named by "key" from the source template
# for example NEXTCLOUD_DOMAIN, NEXTCLOUD_USERNAME, NEXTCLOUD_PASSWORD have to be set by according to template
case "$NAME" in
"nextcloud")
deploy_nextcloud
;;
esac
}
deploy_nextcloud(){
DB_MYSQL="$(echo $RANDOM | md5sum | head -c 8)";
DB_USER="$(echo $RANDOM | md5sum | head -c 8)";
DB_PASSWORD="$(echo $RANDOM | md5sum | head -c 10)";
DB_ROOT_PASSWORD="$(echo $RANDOM | md5sum | head -c 10)";
# TODO repo
git clone ssh://$GIT_REPO/$ORGANIZATION/nextcloud.git /tmp/nextcloud;
sed -i "s/DOMAIN_NAME/$NEXTCLOUD_DOMAIN/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/USERNAME/$NEXTCLOUD_USERNAME/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/USER_PASSWORD/$NEXTCLOUD_PASSWORD/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/DB_MYSQL/$DB_MYSQL/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/DB_USER/$DB_USER/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/DB_PASSWORD/$DB_PASSWORD/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/DB_ROOT_PASSWORD/$DB_ROOT_PASSWORD/g" /tmp/nextcloud/nextcloud-secret.json;
sed -i "s/DOMAIN_NAME/$NEXTCLOUD_DOMAIN/g" /tmp/nextcloud/domain-nextcloud.json
cp -rv /tmp/nextcloud/nextcloud-secret.json /etc/user/secret/nextcloud.json;
cp -rv /tmp/nextcloud/nextcloud.json $SERVICE_DIR/nextcloud.json;
cp -rv /tmp/nextcloud/domain-nextcloud.json $SERVICE_DIR/domain-nextcloud.json;
cp -rv /tmp/nextcloud/firewall-nextcloud.json $SERVICE_DIR/firewall-nextcloud.json;
cp -rv /tmp/nextcloud/firewall-nextcloud-server-dns.json $SERVICE_DIR/firewall-nextcloud-server-dns.json;
cp -rv /tmp/nextcloud/firewall-nextcloud-server-smtp.json $SERVICE_DIR/firewall-nextcloud-server-smtp.json;
}
check_volumes(){ check_volumes(){
RET=1; RET=1;
@@ -335,13 +397,14 @@ execute_task() {
elif [ "$TASK_NAME" == "deployment" ]; then elif [ "$TASK_NAME" == "deployment" ]; then
JSON="$(echo $B64_JSON | base64 -d)" JSON="$(echo $B64_JSON | base64 -d)"
DEPLOY_NAME=$(echo "$JSON" | jq -r .name) DEPLOY_NAME=$(echo "$JSON" | jq -r .NAME)
DEPLOY_ACTION=$(echo "$JSON" | jq -r .action) DEPLOY_ACTION=$(echo "$JSON" | jq -r .ACTION)
if [ "$DEPLOY_ACTION" == "ask" ]; then if [ "$DEPLOY_ACTION" == "ask" ]; then
PAYLOAD=$(echo $NEXTCLOUD_TEMPLATE | base64 -d) # TODO PAYLOAD=$(echo $NEXTCLOUD_TEMPLATE | base64 -d) # TODO
JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "PAYLOAD": "'$PAYLOAD'" }' | jq -r . | base64 -w0); JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "PAYLOAD": "'$PAYLOAD'" }' | jq -r . | base64 -w0);
elif [ "$DEPLOY_ACTION" == "deploy" ]; then elif [ "$DEPLOY_ACTION" == "deploy" ]; then
# TODO install DEPLOY_PAYLOAD=$(echo "$JSON" | jq -r .PAYLOAD)
deploy_additionals "$DEPLOY_NAME" "$DEPLOY_PAYLOAD"
JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "STATUS": "'$STATUS'" }' | jq -r . | base64 -w0); JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "STATUS": "'$STATUS'" }' | jq -r . | base64 -w0);
fi; fi;