57 lines
2.0 KiB
Bash
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}"
|