From 80a506212619e8859681b96aeae7cf815cf22b07 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 5 Sep 2025 08:06:32 +0200 Subject: [PATCH] Bad Gateway Nginx --- app/sbin/helpers | 35 +++++++++++++++++++++++ app/sbin/restoreODOO | 62 +++++++++++++++++++++++++++++++++++++++++ app/sbin/start/ODOO_18 | 8 ++++-- app/sbin/startContainer | 29 ++----------------- 4 files changed, 105 insertions(+), 29 deletions(-) create mode 100755 app/sbin/helpers create mode 100644 app/sbin/restoreODOO diff --git a/app/sbin/helpers b/app/sbin/helpers new file mode 100755 index 0000000..8ebbd9f --- /dev/null +++ b/app/sbin/helpers @@ -0,0 +1,35 @@ +#!/bin/bash + +get_contract_info() { + +DB_PATH="/4server/data/contracts.db" + +echo "get_contract_info $UUID" + +while IFS="=" read -r key value; do + if [ -n "$key" ]; then + export "$key=$value" + fi +done < <(sqlite3 "$DB_PATH" " + SELECT 'UUID=' || UUID FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'EMAIL=' || email FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'EXPIRES=' || expires FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'TAGS=' || tags FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'ENV=' || env FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'AFFILIATE=' || affiliate FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'IMAGE=' || image FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'HISTORY=' || history FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'COMMENT=' || comment FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'DOMAINS=' || domains FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'STATUS=' || status FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'CREATED=' || created FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'SECRET=' || secret FROM containers WHERE UUID='$UUID' + UNION ALL SELECT 'BUMP=' || bump FROM containers WHERE UUID='$UUID'; +") + + +# Debug: print loaded environment variables +env | grep -E 'UUID|EMAIL|EXPIRES|TAGS|ENV|AFFILIATE|IMAGE|HISTORY|COMMENT|DOMAINS|STATUS|CREATED|BUMP|SECRET' + +eval $(echo "$ENV" | jq -r 'to_entries | .[] | "export \(.key)=\(.value)"') +} diff --git a/app/sbin/restoreODOO b/app/sbin/restoreODOO new file mode 100644 index 0000000..6b675b7 --- /dev/null +++ b/app/sbin/restoreODOO @@ -0,0 +1,62 @@ +#!/bin/bash +export PATH=/4PROJECTS/bin:$PATH + +if [ ! -n "$2" ]; then + echo "Missing Parameters " + exit 0 +fi + +UUID=$1 + +source /4server/sbin/helpers + +get_contract_info + +exit 0 + +BACKUP="/mnt/backup/$2" +TEMPLATE="/mnt/db_images/$2" +echo "$TEMPLATE" +if docker exec "${1%_}" /bin/bash -c "[ -f $BACKUP ]"; then + FILENAME="$BACKUP" +elif docker exec "${1%_}" /bin/bash -c "[ -f $TEMPLATE ]"; then + FILENAME="$TEMPLATE" +else + echo "File not exists" + exit 0 +fi +echo "Restoring $FILENAME to $1" + +deleteDB $1 + +echo "deleting old restore artifacts" + +docker exec "${1%_}" rm -rf /root/.local/ + +if [[ "$1" == *"_"* ]]; then + echo "Neutralize DB" + docker exec "${1%_}" odoo db --db_host beedb -w "${1%_}" -r "$1" load "$1" $FILENAME -f --neutralize +else + echo "No Neutralize DB" + docker exec "${1%_}" odoo db --db_host beedb -w "${1%_}" -r "$1" load "$1" $FILENAME -f +fi + + + +docker exec "${1%_}" cp -r /root/.local/. /var/lib/odoo/.local/ + +docker exec "${1%_}" chown -R odoo:odoo /var/lib/odoo/.local/ + + + +docker restart "${1%_}" + +echo "ou" +chownDB $1 + +if [ "$2" != "default.zip" ]; then + exit 1 +fi + +curl --header "Content-Type: application/json" --request POST --data '{"id":"'$CONTRACT_ID'"}' https://odoo4projects.com/web/hook/12a080e8-fcc0-4e10-8dc5-7587d3e08682 + diff --git a/app/sbin/start/ODOO_18 b/app/sbin/start/ODOO_18 index ac57191..abe76b6 100755 --- a/app/sbin/start/ODOO_18 +++ b/app/sbin/start/ODOO_18 @@ -15,7 +15,7 @@ POSTGRES_ADMIN_PASSWORD="${POSTGRES_ADMIN_PASSWORD:-ZpSwWNafyy9GhY2gzHw}" ODOO_DB_USER="${UUID}" export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql') -BASEURL="${BASEURL:-/4SERVER/data/$UUID}" +BASEURL="${BASEURL:-/4server/data/$UUID}" DATA_DIR="$BASEURL/odoo/" CUSTOM_DIR="$BASEURL/git/$UUID/custom/" ENTERPRISE_DIR="$BASEURL/git/$UUID/enterprise/" @@ -37,7 +37,7 @@ dump_config check_and_create_db DOMAIN_LABEL=$(check_domains "$UUID.odoo4projects.com" "$SERVER_IP") -DOMAIN_LABEL="$UUID.odoo4projects.com" +DOMAIN_LABEL="traefik.http.routers.$UUID.rule=Host(\`$UUID.odoo4projects.com\`)" PORT=$((RANDOM%1000+2200)) @@ -72,6 +72,10 @@ doas docker run -d --name "$UUID" \ -e STAGING="$STAGING" \ --label "$DOMAIN_LABEL" \ --label "traefik.http.services.$UUID.loadbalancer.server.port=8069" \ + --label "traefic.http.routers.$UUID.entrypoints=web, websecure" \ + --label "traefik.http.routers.$UUID.tls.certresolver=production" \ + --label "traefik.http.routers.$UUID.tls=true" \ + --label "traefik.http.routers.$UUID.service=$UUID" \ docker.odoo4projects.com/4projects/odoo_18:$BRANCH diff --git a/app/sbin/startContainer b/app/sbin/startContainer index 2d183b3..fd9617a 100755 --- a/app/sbin/startContainer +++ b/app/sbin/startContainer @@ -4,8 +4,8 @@ exec > /4server/data/log/startContainer.log 2>&1 echo "$(date '+%Y-%m-%d %H:%M') Start container $1" +source /4server/sbin/helpers -DB_PATH="/4server/data/contracts.db" BIN_PATH="/4server/sbin" UUID="$1" @@ -15,32 +15,7 @@ if [[ -z "$UUID" ]]; then exit 1 fi -while IFS="=" read -r key value; do - if [ -n "$key" ]; then - export "$key=$value" - fi -done < <(sqlite3 "$DB_PATH" " - SELECT 'UUID=' || UUID FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'EMAIL=' || email FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'EXPIRES=' || expires FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'TAGS=' || tags FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'ENV=' || env FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'AFFILIATE=' || affiliate FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'IMAGE=' || image FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'HISTORY=' || history FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'COMMENT=' || comment FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'DOMAINS=' || domains FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'STATUS=' || status FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'CREATED=' || created FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'SECRET=' || secret FROM containers WHERE UUID='$UUID' - UNION ALL SELECT 'BUMP=' || bump FROM containers WHERE UUID='$UUID'; -") - - -# Debug: print loaded environment variables -env | grep -E 'UUID|EMAIL|EXPIRES|TAGS|ENV|AFFILIATE|IMAGE|HISTORY|COMMENT|DOMAINS|STATUS|CREATED|BUMP|SECRET' - -eval $(echo "$ENV" | jq -r 'to_entries | .[] | "export \(.key)=\(.value)"') +get_contract_info # Extract the second part of UUID (split by "-") SECOND_PART=$(echo "$UUID" | cut -d'-' -f2)