mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 22:23:18 +00:00
Adds .cursor/environment.json plus install/start scripts to provision the full PANELS stack (Postgres 16 + Redis + Deno API + two Nuxt frontends): - install.sh: installs toolchain, provisions DB roles/schemas + Redis ACLs, runs Liquibase (dev context), bootstraps seed admins, installs web deps. - start.sh: brings up Postgres + Redis per boot (idempotent). - terminals: api (:8000), web-panel (:3000), web-saas (:3001). Co-authored-by: alberto.martinez <alberto.martinez@mrdev.mx>
70 lines
2.4 KiB
Bash
Executable file
70 lines
2.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# PANELS · Cloud Agent · bootstrap idempotente del entorno de desarrollo.
|
|
# Instala toolchain (Postgres 16, Redis, Java, Deno), aprovisiona la base
|
|
# de datos local, aplica migraciones Liquibase (contexto dev con datos de
|
|
# demostración), crea los administradores semilla e instala dependencias.
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
echo "== [1/8] Toolchain del sistema (Postgres 16, Redis, Java, unzip) =="
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y --no-install-recommends \
|
|
postgresql postgresql-contrib redis-server openjdk-21-jre-headless unzip curl ca-certificates
|
|
|
|
echo "== [2/8] Deno =="
|
|
if [ ! -x "$HOME/.deno/bin/deno" ]; then
|
|
curl -fsSL https://deno.land/install.sh | DENO_INSTALL="$HOME/.deno" sh
|
|
fi
|
|
export PATH="$HOME/.deno/bin:$PATH"
|
|
|
|
echo "== [3/8] Arrancar Postgres + Redis =="
|
|
sudo service postgresql start
|
|
sudo service redis-server start
|
|
for _ in $(seq 1 30); do sudo -u postgres pg_isready -q && break; sleep 1; done
|
|
|
|
echo "== [4/8] Aprovisionar roles/bases/esquemas + ACL de Redis (idempotente) =="
|
|
chmod +x db/*.sh db/provision/*.sh
|
|
if [ ! -f "$ROOT/.env.dev-local" ]; then
|
|
bash db/provision/dev-local.sh
|
|
else
|
|
echo " .env.dev-local ya existe; se omite el aprovisionamiento."
|
|
fi
|
|
|
|
echo "== [5/8] Archivo .env de la API =="
|
|
if [ ! -f "$ROOT/.env" ]; then
|
|
{
|
|
grep -v '^#' .env.dev-local | grep .
|
|
echo ""
|
|
echo "# --- Secretos de aplicación (solo desarrollo) ---"
|
|
echo "PORT=8000"
|
|
echo "SESSION_SECRET=$(openssl rand -hex 24)"
|
|
echo "DOCS_KEY=$(openssl rand -hex 32)"
|
|
echo "SEED_PASSWORD=PanelsDev2026!"
|
|
echo "PANEL_LOGIN_URL=http://localhost:3000/login"
|
|
echo "COOKIE_SECURE=false"
|
|
echo "DENO_ENV=development"
|
|
} > "$ROOT/.env"
|
|
else
|
|
echo " .env ya existe; se conserva."
|
|
fi
|
|
|
|
echo "== [6/8] Migraciones Liquibase (contexto dev) =="
|
|
set -a; source .env.dev-local; set +a
|
|
./db/update.sh all --context-filter=dev
|
|
|
|
echo "== [7/8] Administradores semilla (platform + tenant) =="
|
|
(
|
|
cd api
|
|
set -a; source ../.env; set +a
|
|
deno run --allow-net --allow-env --allow-read scripts/bootstrap-admin.ts platform
|
|
deno run --allow-net --allow-env --allow-read scripts/bootstrap-admin.ts tenant --tenant-id=1
|
|
)
|
|
|
|
echo "== [8/8] Dependencias web + caché de Deno =="
|
|
( cd web-panel && npm install --no-audit --no-fund )
|
|
( cd web-saas && npm install --no-audit --no-fund )
|
|
( cd api && deno cache main.ts )
|
|
|
|
echo "Entorno PANELS listo."
|