Bad Gateway Nginx

This commit is contained in:
Oliver
2025-09-05 08:06:32 +02:00
parent 40775c6842
commit 80a5062126
4 changed files with 105 additions and 29 deletions

35
app/sbin/helpers Executable file
View File

@@ -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)"')
}

62
app/sbin/restoreODOO Normal file
View File

@@ -0,0 +1,62 @@
#!/bin/bash
export PATH=/4PROJECTS/bin:$PATH
if [ ! -n "$2" ]; then
echo "Missing Parameters <UUID> <FILE>"
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

View File

@@ -15,7 +15,7 @@ POSTGRES_ADMIN_PASSWORD="${POSTGRES_ADMIN_PASSWORD:-ZpSwWNafyy9GhY2gzHw}"
ODOO_DB_USER="${UUID}" ODOO_DB_USER="${UUID}"
export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql') export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql')
BASEURL="${BASEURL:-/4SERVER/data/$UUID}" BASEURL="${BASEURL:-/4server/data/$UUID}"
DATA_DIR="$BASEURL/odoo/" DATA_DIR="$BASEURL/odoo/"
CUSTOM_DIR="$BASEURL/git/$UUID/custom/" CUSTOM_DIR="$BASEURL/git/$UUID/custom/"
ENTERPRISE_DIR="$BASEURL/git/$UUID/enterprise/" ENTERPRISE_DIR="$BASEURL/git/$UUID/enterprise/"
@@ -37,7 +37,7 @@ dump_config
check_and_create_db check_and_create_db
DOMAIN_LABEL=$(check_domains "$UUID.odoo4projects.com" "$SERVER_IP") 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)) PORT=$((RANDOM%1000+2200))
@@ -72,6 +72,10 @@ doas docker run -d --name "$UUID" \
-e STAGING="$STAGING" \ -e STAGING="$STAGING" \
--label "$DOMAIN_LABEL" \ --label "$DOMAIN_LABEL" \
--label "traefik.http.services.$UUID.loadbalancer.server.port=8069" \ --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 docker.odoo4projects.com/4projects/odoo_18:$BRANCH

View File

@@ -4,8 +4,8 @@
exec > /4server/data/log/startContainer.log 2>&1 exec > /4server/data/log/startContainer.log 2>&1
echo "$(date '+%Y-%m-%d %H:%M') Start container $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" BIN_PATH="/4server/sbin"
UUID="$1" UUID="$1"
@@ -15,32 +15,7 @@ if [[ -z "$UUID" ]]; then
exit 1 exit 1
fi fi
while IFS="=" read -r key value; do get_contract_info
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)"')
# Extract the second part of UUID (split by "-") # Extract the second part of UUID (split by "-")
SECOND_PART=$(echo "$UUID" | cut -d'-' -f2) SECOND_PART=$(echo "$UUID" | cut -d'-' -f2)