From 18088640219fb076048d0953bab351fcfd42953a Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 16 Oct 2025 16:38:39 -0300 Subject: [PATCH] fixes --- alpine/template | 24 +++++++++--------------- app/migrate | 9 +++------ app/sbin/api | 16 +++++++++++++++- app/sbin/cpu | 39 +++++++++++++++++++++++++++++++++++++++ app/sbin/nuke/ODOO_19 | 13 ++++++++----- app/sbin/nukeContainer | 32 ++++++++++++++++++++++++++++++++ app/sbin/start/ODOO_17 | 1 + app/sbin/start/n8n | 4 ++-- app/sbin/startContainer | 14 ++++++++++++++ app/sbin/stopContainer | 6 ++++++ app/templates/init.d/cpu | 17 +++++++++++++++++ app/update | 7 +++++++ app/vault/host_vars.img | Bin 26214400 -> 26214400 bytes app/vault/open | 28 +++++++++++++++++++++++----- 14 files changed, 176 insertions(+), 34 deletions(-) create mode 100755 app/sbin/cpu create mode 100755 app/sbin/stopContainer create mode 100755 app/templates/init.d/cpu diff --git a/alpine/template b/alpine/template index fc6b456..6c0a841 100755 --- a/alpine/template +++ b/alpine/template @@ -15,7 +15,8 @@ localfile="$1" remotefile="$2" remotetmp_base="/var/tmp/4server" -while read -r host; do +# Read hosts from file descriptor 3 to prevent ssh from consuming stdin +while read -r host <&3; do host_env_file="$host_vars_dir/$host/$host.env" if [ ! -f "$host_env_file" ]; then @@ -28,24 +29,19 @@ while read -r host; do source "$host_env_file" set +a - NEBULA_KEY=$(<"$host_vars_dir/$host/$host.key") NEBULA_CRT=$(<"$host_vars_dir/$host/$host.crt") SSH_PRIVATE=$(<"$host_vars_dir/$host/$host") SSH_PUBLIC=$(<"$host_vars_dir/$host/$host.pub") -content=$(<"$localfile") - -for key in "${keys[@]}"; do - value="${!key}" # indirect reference - # Replace placeholder {{KEY}} with value using Bash's parameter expansion - content="${content//\{\{$key\}\}/$value}" -done - - - + content=$(<"$localfile") + for key in "${keys[@]}"; do + value="${!key}" # indirect reference + # Replace placeholder {{KEY}} with value using Bash's parameter expansion + content="${content//\{\{$key\}\}/$value}" + done # Copy content to remote temporary file remotetmp="${remotetmp_base}_${host}" @@ -55,7 +51,5 @@ done # Move temporary file to final location with doas ssh "$host" "doas mv '$remotetmp' '$remotefile'" -done < /app/host_vars/hosts - - +done 3< /app/host_vars/hosts diff --git a/app/migrate b/app/migrate index 0867aa0..0d980a5 100755 --- a/app/migrate +++ b/app/migrate @@ -1,8 +1,5 @@ #!/bin/bash - -#!/bin/bash - -rex "doas sqlite3 /4server/data/contracts.db <<'EOF' -ALTER TABLE containers -ALTER COLUMN contract DROP NOT NULL; +rex "doas sqlite3 /4server/data/contracts.db <> "$OUTPUT" + echo -e "$DATA" | tr '\n' ' ' >> "$OUTPUT" + echo >> "$OUTPUT" # newline at the end + echo "Measurement for $DATE written to $OUTPUT" + + # Wait until 00:15 to start next day + while [ "$(date +%H:%M)" != "00:15" ]; do + sleep 30 + done +done + diff --git a/app/sbin/nuke/ODOO_19 b/app/sbin/nuke/ODOO_19 index 6a91876..593686a 100755 --- a/app/sbin/nuke/ODOO_19 +++ b/app/sbin/nuke/ODOO_19 @@ -2,10 +2,10 @@ # Load functions source /4server/sbin/ODOO_19/ODOO_19.lib - -# Config variables -UUID="${UUID:-default}" -STAGING="${STAGING:-false}" +if [[ -z "$UUID" ]]; then + echo "Error: UUID not set. Aborting." + exit 1 +fi POSTGRES_HOST="${POSTGRES_HOST:-beedb}" POSTGRES_PORT="${POSTGRES_PORT:-5432}" @@ -15,13 +15,16 @@ ODOO_DB_USER="${UUID}" export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql') BASEURL="${BASEURL:-/4server/data/$UUID}" +BACKUPURL="/4backup/$UUID" doas docker stop "$UUID" doas docker rm "$UUID" if [ -n "${UUID:-}" ]; then echo "Removing directory: $BASEURL" - doas rm -rf "$BASEURL" + #doas rm -rf "$BASEURL" + echo "Removing backup directory $BACKUPURL" + #doas rm -rf $BACKUPURL fi diff --git a/app/sbin/nukeContainer b/app/sbin/nukeContainer index 34d2119..2f69c44 100755 --- a/app/sbin/nukeContainer +++ b/app/sbin/nukeContainer @@ -15,6 +15,30 @@ if [[ -z "$UUID" ]]; then exit 1 fi + +get_container_status() { + local uuid="$1" + # Get the container ID or name matching the UUID + CONTAINER_ID=$(docker ps -a --filter "name=$uuid" --format "{{.ID}}") + if [[ -z "$CONTAINER_ID" ]]; then + echo "not_found" + return + fi + + STATUS=$(docker inspect -f '{{.State.Status}}' "$CONTAINER_ID") + echo "$STATUS" +} + +# Check if container exists +STATUS=$(get_container_status "$UUID") +if [[ "$STATUS" == "running" ]]; then + echo "Container $UUID is still running. Aborting deletion." + exit 2 +fi + + + + get_contract_info # Extract the second part of UUID (split by "-") @@ -34,3 +58,11 @@ case "$SECOND_PART" in ;; esac +sqlite3 "/4server/data/contracts.db" < /4server/data/log/stopContainer.log 2>&1 +echo "$(date '+%Y-%m-%d %H:%M') Stop container $1" + +docker stop $1 + diff --git a/app/templates/init.d/cpu b/app/templates/init.d/cpu new file mode 100755 index 0000000..368fc08 --- /dev/null +++ b/app/templates/init.d/cpu @@ -0,0 +1,17 @@ +#!/sbin/openrc-run +# OpenRC service for /4server/sbin/cpu + +name="cpu" +description="Logs cpu usage" + +command="/4server/sbin/cpu" +command_background="yes" +pidfile="/run/cpu.pid" +output_log="/4server/data/log/cpu.log" +error_log="/4server/data/log/cpu.log" + +depend() { + need localmount + after bootmisc +} + diff --git a/app/update b/app/update index 18265c7..581441c 100755 --- a/app/update +++ b/app/update @@ -68,6 +68,13 @@ rex doas chown root:root /etc/init.d/cleanTmp rex doas rc-update add cleanTmp default rex doas rc-service cleanTmp restart +#INSTALL cpu service +template templates/init.d/cpu /etc/init.d/cpu +rex doas chmod 0755 /etc/init.d/cpu +rex doas chown root:root /etc/init.d/cpu +rex doas rc-update add cpu default +rex doas rc-service cpu restart + ### Infrastructure ##### Docker rex doas rc-service docker start diff --git a/app/vault/host_vars.img b/app/vault/host_vars.img index 7a5ad02832d17c9f3adace845e0e47917805b4a2..7642f0a54dc7132a5fdc5d1e0302c496a5239d44 100644 GIT binary patch delta 37497 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 AC$nOm(qUTWW+?@_$(~3 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 delta 37497 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

S}fl<=fr8pS(Ywz^a-DBU@ zsm+Rh;&6$4DPqwq1UfnKnVE%yKz~Om{(Lg8rnwrzVoZc?++ZiKG8>GNLSva=S&q9; zI7-L#(P7Sy!}HSt@6Fn`Vv%v;7ACA+QMX9kYu{|i{c&HNXa7 z3$O#&0~`R306f46;0$m9+yJ-&+yL$X4}d4Y3*Zg#0o(-m0{j5}fB?WPz->SvAP5i) z2myow?f}97;efk<2*5qSeLy523J?u=0Ehv^0^$JifCNAyAPJBRcnC-VJR*bhSE*!e Gj{gH=cSdXg diff --git a/app/vault/open b/app/vault/open index 1fd06cd..43841d3 100755 --- a/app/vault/open +++ b/app/vault/open @@ -4,6 +4,7 @@ set -euo pipefail VAULT_FILE="/app/vault/host_vars.img" MAPPER_NAME="host_vars_crypt" MOUNT_POINT="/app/host_vars" +LOOP_DEVICE="/dev/loop50" mkdir -p "$MOUNT_POINT" @@ -13,19 +14,36 @@ if cryptsetup status "$MAPPER_NAME" >/dev/null 2>&1; then cryptsetup close "$MAPPER_NAME" fi -# Open +# Detach loop device if already in use +if losetup "$LOOP_DEVICE" >/dev/null 2>&1; then + echo "Detaching stale loop device $LOOP_DEVICE..." + losetup -d "$LOOP_DEVICE" +fi + +# Create loop device if missing +if [ ! -e "$LOOP_DEVICE" ]; then + echo "Creating loop device $LOOP_DEVICE..." + mknod "$LOOP_DEVICE" b 7 50 + chmod 660 "$LOOP_DEVICE" +fi + +# Attach vault file to loop device +echo "Attaching $VAULT_FILE to $LOOP_DEVICE..." +losetup "$LOOP_DEVICE" "$VAULT_FILE" + +# Open encrypted volume echo "Opening encrypted volume..." -cryptsetup open "$VAULT_FILE" "$MAPPER_NAME" +cryptsetup open "$LOOP_DEVICE" "$MAPPER_NAME" # Format if needed -if ! blkid /dev/mapper/"$MAPPER_NAME" >/dev/null 2>&1; then +if ! blkid "/dev/mapper/$MAPPER_NAME" >/dev/null 2>&1; then echo "No filesystem found, creating ext4..." - mkfs.ext4 /dev/mapper/"$MAPPER_NAME" + mkfs.ext4 "/dev/mapper/$MAPPER_NAME" fi # Mount echo "Mounting at $MOUNT_POINT..." -mount /dev/mapper/"$MAPPER_NAME" "$MOUNT_POINT" +mount "/dev/mapper/$MAPPER_NAME" "$MOUNT_POINT" echo "Vault is mounted at $MOUNT_POINT"