75 lines
2.3 KiB
Bash
75 lines
2.3 KiB
Bash
#!/bin/bash
|
|
exec > /tmp/init.log 2>&1
|
|
set -x
|
|
|
|
if command -v apt-get >/dev/null 2>&1; then
|
|
apt-get update -qq
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
build-essential pkg-config \
|
|
libpq-dev libpq5 \
|
|
libxml2-dev libxslt1-dev \
|
|
libldap2-dev libsasl2-dev \
|
|
libjpeg-dev zlib1g-dev \
|
|
libcurl4-openssl-dev libssl-dev libffi-dev \
|
|
libxml2 libxslt1.1 libldap2 libsasl2-2 \
|
|
libjpeg62-turbo zlib1g libcurl4 libssl3 libffi8 \
|
|
fonts-noto-cjk node-less \
|
|
>>/tmp/init.log 2>&1 || echo "[init] WARN: apt-get install had errors (continuing)"
|
|
fi
|
|
|
|
ODOO_INSTALLED=0
|
|
python3 -c "import odoo" 2>/dev/null && ODOO_INSTALLED=1
|
|
|
|
if [ "$ODOO_INSTALLED" = "0" ]; then
|
|
echo "[init] Installing Odoo from /mnt/one-os-dev (first boot — this takes ~5 min)..."
|
|
pip install --quiet --no-cache-dir --break-system-packages --upgrade pip wheel
|
|
pip install --quiet --no-cache-dir --break-system-packages psycopg2-binary
|
|
pip install --quiet --no-cache-dir --break-system-packages /mnt/one-os-dev
|
|
if [ -s /mnt/one-os-dev/requirements.txt ]; then
|
|
pip install --quiet --no-cache-dir --break-system-packages \
|
|
-r /mnt/one-os-dev/requirements.txt
|
|
fi
|
|
echo "[init] Odoo install complete."
|
|
else
|
|
echo "[init] Odoo already installed; skipping pip install."
|
|
fi
|
|
|
|
mkdir -p /etc/odoo /var/lib/odoo /var/log/odoo
|
|
cat > /etc/odoo/odoo.conf <<EOF
|
|
[options]
|
|
admin_passwd = ${ADMIN_PASSWD:-admin}
|
|
db_host = ${HOST}
|
|
db_port = ${PORT:-5432}
|
|
db_user = ${USER:-odoo}
|
|
db_password = ${PASSWORD}
|
|
dbfilter = .*
|
|
list_db = True
|
|
addons_path = /mnt/one-os-dev/addons,/mnt/one-os-dev/odoo/addons
|
|
data_dir = /var/lib/odoo
|
|
dev_mode = reload,qweb,assets,xml,werkzeug
|
|
xmlrpc_port = 8069
|
|
workers = 0
|
|
log_level = info
|
|
EOF
|
|
|
|
echo "[init] Waiting for postgres at ${HOST}:${PORT}..."
|
|
for i in $(seq 1 30); do
|
|
python3 -c "
|
|
import socket, sys
|
|
s = socket.socket()
|
|
s.settimeout(2)
|
|
try:
|
|
s.connect(('${HOST}', int('${PORT:-5432}')))
|
|
sys.exit(0)
|
|
except Exception:
|
|
sys.exit(1)
|
|
" && break || sleep 2
|
|
done
|
|
|
|
echo "[init] Starting Odoo with --dev=reload (live edits auto-apply)..."
|
|
exec odoo -c /etc/odoo/odoo.conf \
|
|
--dev=reload,qweb,assets,xml,werkzeug \
|
|
--db-filter='.*' \
|
|
--limit-time-real=120 \
|
|
--log-level=info
|