panels-origin/.cursor/install.sh
Cursor Agent aa87ce4944
Add Cloud Agent dev environment config
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>
2026-09-03 03:01:29 +00:00

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."