#!/bin/bash # Load functions source /4server/sbin/ODOO_19/ODOO_19.lib # Config variables UUID="${UUID:-default}" BRANCH="${BRANCH:-main}" STAGING="${STAGING:-false}" POSTGRES_HOST="${POSTGRES_HOST:-beedb}" POSTGRES_PORT="${POSTGRES_PORT:-5432}" POSTGRES_ADMIN_USER="${POSTGRES_ADMIN_USER:-1gtT0sf8klB9lDbYZD9}" 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}" DATA_DIR="$BASEURL/odoo/" CUSTOM_DIR="$BASEURL/git/$UUID/custom/" ENTERPRISE_DIR="$BASEURL/git/$UUID/enterprise/" LOGS_DIR="$BASEURL/logs/" CONFIG_DIR="$BASEURL/config/" CC_DIR="$BASEURL/cc/" BACKUP_DIR="/BACKUP/$UUID" GIT_DIR="$BASEURL/git-server/" ETC_DIR="$BASEURL/etc/" INSTALL_DIR="$BASEURL/install/" SSH_DIR="$BASEURL/.ssh/" HUGO_DIR="$BASEURL/git-server/local/hugo" SERVER_IP=$(ip -4 addr show eth0 | awk '/inet/ {print $2}' | cut -d/ -f1) DOMAIN_LABEL=$(check_domains "$UUID.odoo4projects.com" "$SERVER_IP") DOMAIN_LABEL="traefik.http.routers.$UUID.rule=Host(\`$UUID.odoo4projects.com\`)" PORT=$((RANDOM%1000+2200)) doas docker stop "$UUID" 2>/dev/null doas docker rm "$UUID" 2>/dev/null EXTRA_DOCKER_PARAMETER="" if [ -d "$HUGO_DIR" ]; then EXTRA_DOCKER_PARAMETER="-v $HUGO_DIR:/mnt/hugo" fi doas docker run -d --name "$UUID" \ --network 4server_4projects \ --restart=always \ $EXTRA_DOCKER_PARAMETER \ -v "$DATA_DIR/odoo-web-data:/var/lib/odoo" \ -v "$CUSTOM_DIR:/mnt/addons/custom" \ -v "$ENTERPRISE_DIR:/mnt/addons/enterprise" \ -v "$LOGS_DIR:/mnt/logs" \ -v "$CC_DIR:/mnt/cc" \ -v "$BACKUP_DIR:/mnt/backup" \ -v "$CONFIG_DIR:/etc/odoo" \ -v "$GIT_DIR:/git-server" \ -v "$ETC_DIR:/mnt/etc" \ -v "$INSTALL_DIR:/mnt/install" \ -v "$SSH_DIR:/etc/sshkey" \ -p "$PORT:22" \ -e HOST="$POSTGRES_HOST" \ -e USER="$ODOO_DB_USER" \ -e PASSWORD="$ODOO_DB_PASSWORD" \ -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_19:$BRANCH check_and_create_db