#!/bin/bash set -e # Valori di default ADMIN_PASSWD="${ADMIN_PASSWD:-Password123}" DB_HOST="${DB_HOST:-localhost}" DB_PORT="${DB_PORT:-5432}" DB_USER="${DB_USER:-odoo}" DB_PASSWORD="${DB_PASSWORD:-odoo}" DB_NAME="${DB_NAME:-}" # Crea la directory di configurazione in /opt/odoo mkdir -p /opt/odoo # Crea il file di configurazione Odoo con i valori delle variabili d'ambiente cat > /opt/odoo/odoo.conf << EOF [options] ; Server Configuration admin_passwd = $ADMIN_PASSWD db_host = $DB_HOST db_port = $DB_PORT db_user = $DB_USER db_password = $DB_PASSWORD EOF # Aggiungi db_name e list_db a seconda se DB_NAME è impostata if [ -n "$DB_NAME" ]; then cat >> /opt/odoo/odoo.conf << EOF db_name = $DB_NAME list_db = False EOF else cat >> /opt/odoo/odoo.conf << EOF list_db = True EOF fi cat >> /opt/odoo/odoo.conf << EOF ; File Paths addons_path = /opt/odoo/odoo-server/addons,/opt/odoo/custom_addons data_dir = /opt/odoo/data ; Logging log_file = /opt/odoo/odoo.log log_level = info ; Workers (optional, for production) workers = 4 gevent_port = 8072 ; Other Settings max_cron_threads = 2 EOF # Attiva il virtual environment source /opt/odoo/venv/bin/activate # Vai nella directory di Odoo cd /opt/odoo/odoo-server # Inizializza il database solo se DB_NAME è impostato e il file .odoo_initialized non esiste if [ -n "$DB_NAME" ] && [ ! -f /opt/odoo/.odoo_initialized ]; then echo "Inizializzazione del database..." # Verifica e crea il database se necessario DB_EXISTS=$(PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -U $DB_USER -lqt 2>/dev/null | cut -d'|' -f1 | grep -w $DB_NAME | wc -l) if [ "$DB_EXISTS" -eq 0 ]; then echo "Creazione del database $DB_NAME..." PGPASSWORD=$DB_PASSWORD createdb -h $DB_HOST -U $DB_USER $DB_NAME fi # Inizializza il database ./odoo-bin -c /opt/odoo/odoo.conf -i base --stop-after-init --without-demo # Crea il file di flag per indicare che l'inizializzazione è completata touch /opt/odoo/.odoo_initialized echo "Database inizializzato." fi # Avvia Odoo exec ./odoo-bin -c /opt/odoo/odoo.conf