#!/bin/bash exec > /4server/data/log/startContainer.log 2>&1 _self="$(realpath "${BASH_SOURCE[0]:-$0}")"; SBIN="$(dirname "$_self")" source "$SBIN/helpers" BIN_PATH="$SBIN" CONTAINER_ID="$1" [ -z "$CONTAINER_ID" ] && die "Usage: $0 " log "Start container $CONTAINER_ID" DOMAIN_FILE="/4server/data/$CONTAINER_ID/etc/domain" DB_FILE="/4server/data/contracts.db" if [ -f "$DOMAIN_FILE" ]; then DOMAINS=$(paste -sd "," "$DOMAIN_FILE") # Escape single quotes for SQLite ('' is the standard SQLite escape for ') DOMAINS_SAFE="${DOMAINS//\'/\'\'}" CONTAINER_ID_SAFE="${CONTAINER_ID//\'/\'\'}" sqlite3 "$DB_FILE" "UPDATE containers SET domains='$DOMAINS_SAFE' WHERE UUID='$CONTAINER_ID_SAFE';" fi load_container_config "$CONTAINER_ID" get_contract_info # Decide which script to run based on SOFTWARE from container.env case "$SOFTWARE" in n8n) "$BIN_PATH/start/n8n" ;; ODOO_17) IMAGE_TAG=odoo_17 "$BIN_PATH/start/odoo" ;; ODOO_18) IMAGE_TAG=odoo_18 "$BIN_PATH/start/odoo" ;; ODOO_19) IMAGE_TAG=odoo_19 "$BIN_PATH/start/odoo" ;; *) die "Unknown SOFTWARE type '${SOFTWARE}' for container_id $CONTAINER_ID — run: initContainer $CONTAINER_ID " ;; esac