diff --git a/app/sbin/ODOO_19/restore b/app/sbin/ODOO_19/restore index 37e6d1a..c5598d7 100755 --- a/app/sbin/ODOO_19/restore +++ b/app/sbin/ODOO_19/restore @@ -50,6 +50,7 @@ PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql \ doas docker exec "$UUID" rm -rf /home/odoo/.local/share/Odoo/filestore +doas docker exec "$UUID" rm -rf /root/.local/share/Odoo/filestore doas docker exec "$UUID" odoo db --db_host beedb -w "$ODOO_DB_PASSWORD" -r "$UUID" load "$UUID" $FILENAME -f diff --git a/app/sbin/helpers b/app/sbin/helpers index db6d33b..c8c72a1 100755 --- a/app/sbin/helpers +++ b/app/sbin/helpers @@ -36,8 +36,6 @@ done < <(sqlite3 "$DB_PATH" " ") -# 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 | ascii_upcase)=\(.value)"') } diff --git a/app/sbin/start/ODOO_19 b/app/sbin/start/ODOO_19 index 0c48138..e312d03 100755 --- a/app/sbin/start/ODOO_19 +++ b/app/sbin/start/ODOO_19 @@ -3,6 +3,7 @@ # Load functions source /4server/sbin/ODOO_19/ODOO_19.lib source /4server/sbin/helpers +get_contract_info # Config variables UUID="${UUID:-default}" @@ -11,8 +12,9 @@ BRANCH="${BRANCH:-release}" ODOO_DB_USER="${UUID}" export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql') -echo "ENV: $HDD $DOMAIN_COUNT $BACKUP_SLOTS $CONTAINERDBID" +echo "ENV: $HDD $DOMAIN_COUNT $BACKUP_SLOTS $CONTAINERDBID" +echo "DBID: $CONTAINERDBID" BASEURL="${BASEURL:-/4server/data/$UUID}" DATA_DIR="$BASEURL/odoo/" @@ -27,15 +29,39 @@ INSTALL_DIR="$BASEURL/install/" SSH_DIR="$BASEURL/.ssh/" ETC_DIR="$BASEURL/etc/" -SERVER_IP=$(ip -4 addr show eth0 | awk '/inet/ {print $2}' | cut -d/ -f1) +SERVER_IP=$(ip -4 addr show eth0 | awk '/inet/ {print $2}' | cut -d/ -f1 | head -n1) + +LABEL_DOMAINS=("$UUID.odoo4projects.com") +if [ -f "$BASEURL/etc/domain" ]; then + while IFS= read -r domain || [[ -n $domain ]]; do + [ -z "$domain" ] && continue + LABEL_DOMAINS+=("$domain") + done < "$BASEURL/etc/domain" +else + echo "[DEBUG] No additional domain file found at $BASEURL/etc/domain" +fi + +RULE="" +for d in "${LABEL_DOMAINS[@]}"; do + RESOLVED_IP=$(nslookup "$d" 2>/dev/null | awk '/^Address: / { print $2 }' | head -n1 || true) + if [ -z "$RESOLVED_IP" ]; then + echo "[DEBUG] Could not resolve $d, skipping" + continue + fi + if [ "$RESOLVED_IP" = "$SERVER_IP" ]; then + RULE+=" || Host(\`$d\`)" + else + echo "[DEBUG] Skipping $d (does not match SERVER_IP $SERVER_IP)" + fi +done +RULE="${RULE# || }" +DOMAIN_LABEL="traefik.http.routers.$UUID.rule=$RULE" +echo "[DEBUG] Final Traefik label: $DOMAIN_LABEL" -DOMAIN_LABEL=$(check_domains "$UUID.odoo4projects.com" "$SERVER_IP") -DOMAIN_LABEL="traefik.http.routers.$UUID.rule=Host(\`$UUID.odoo4projects.com\`)" doas find "$BASEURL" -type d -exec chmod 777 {} \; - -PORT=$($CONTAINERDBID+2200) +PORT=$((CONTAINERDBID + 2200)) echo "PORT $PORT" echo "git clone \"ssh://git@${UUID}.odoo4projects.com:${PORT}/git-server/repos/odoo.git\"" > "${ETC_DIR}/gitpath" diff --git a/app/vault/host_vars.img b/app/vault/host_vars.img index e2bc3e0..a276daf 100644 Binary files a/app/vault/host_vars.img and b/app/vault/host_vars.img differ