arcadiasuite/docker/erpnext/init.sh

57 lines
2.0 KiB
Bash

#!/bin/bash
# ─── ERPNext init — cria site e instala app se necessário ─────────────────────
# Executado como entrypoint do container frappe/erpnext:version-15
set -e
SITE_NAME="${FRAPPE_SITE_NAME:-erpnext.local}"
DB_HOST="${DB_HOST:-erpnext-db}"
DB_ROOT_PASSWORD="${ERPNEXT_DB_ROOT_PASSWORD:-erpnext-root-2026}"
ADMIN_PASSWORD="${ERPNEXT_ADMIN_PASSWORD:-admin2026}"
BENCH_DIR="/home/frappe/frappe-bench"
echo "[ERPNext Init] Aguardando MariaDB em ${DB_HOST}..."
until mysqladmin ping -h "${DB_HOST}" -u root --password="${DB_ROOT_PASSWORD}" --silent 2>/dev/null; do
echo "[ERPNext Init] MariaDB ainda não disponível — aguardando 3s..."
sleep 3
done
echo "[ERPNext Init] MariaDB disponível."
cd "${BENCH_DIR}"
SITES_DIR="${BENCH_DIR}/sites"
SITE_DIR="${SITES_DIR}/${SITE_NAME}"
if [ ! -f "${SITE_DIR}/site_config.json" ]; then
echo "[ERPNext Init] Criando site ${SITE_NAME}..."
bench new-site "${SITE_NAME}" \
--mariadb-root-password "${DB_ROOT_PASSWORD}" \
--admin-password "${ADMIN_PASSWORD}" \
--db-host "${DB_HOST}" \
--no-mariadb-socket \
--verbose || true
echo "[ERPNext Init] Instalando app erpnext..."
bench --site "${SITE_NAME}" install-app erpnext || true
echo "[ERPNext Init] Ativando modo developer..."
bench --site "${SITE_NAME}" set-config developer_mode 1 || true
echo "[ERPNext Init] Desativando SSL para env local..."
bench --site "${SITE_NAME}" set-config ssl_certificate "" || true
echo "[ERPNext Init] Site criado com sucesso."
else
echo "[ERPNext Init] Site ${SITE_NAME} já existe — pulando criação."
fi
# Configura common_site_config.json para servir na porta 8080
if [ ! -f "${SITES_DIR}/common_site_config.json" ]; then
echo '{"serve_default_site": true, "socketio_port": 9000, "background_workers": 1}' \
> "${SITES_DIR}/common_site_config.json"
fi
echo "[ERPNext Init] Iniciando servidor Frappe na porta 8080..."
exec bench serve --port 8080 --site "${SITE_NAME}"