Estructura del proyecto
jaleo-api
Section titled “jaleo-api”jaleo/├── index.js # Servidor Express — todos los endpoints y logica de Spotify├── database.js # Configuracion SQLite — tabla de grupos (groupId, accessToken, refreshToken)├── landing.html # Landing page publica con enlace de WhatsApp├── callback.html # Pagina de confirmacion post-OAuth con comandos disponibles├── .env.example # Plantilla de variables de entorno├── .env # Variables de entorno (no subir a git)├── .gitignore # Archivos excluidos de git├── package.json # Dependencias: express, axios, sqlite3, dotenv├── jaleo.db # Base de datos SQLite (se genera automaticamente)├── LICENSE # GPL-3.0└── README.md # Documentacion del proyecto (ingles)Archivos clave
Section titled “Archivos clave”| Archivo | Descripcion |
|---------|-------------|
| index.js | Servidor Express. Contiene todos los endpoints (/, /login, /callback, /webhook, /debug), la logica de OAuth, la gestion de tokens y las llamadas a la Spotify Web API. |
| database.js | Configuracion de SQLite. Crea la tabla grupos con campos groupId (PRIMARY KEY), accessToken y refreshToken. |
| landing.html | Pagina publica en https://tudominio.com/. Contiene el equalizador animado, descripcion del proyecto y enlace al GitHub. |
| callback.html | Pagina que se muestra despues de vincular Spotify con exito. Muestra los comandos disponibles. |
| .env | Variables de entorno (PORT, BASE_URL, SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, REDIRECT_URI). No subir a git. |
OpenClaw
Section titled “OpenClaw”Despues de la configuracion, OpenClaw genera esta estructura:
~/.openclaw/├── openclaw.json # Configuracion general (canales, gateway, plugins, modelo)├── workspace/│ ├── IDENTITY.md # Nombre y emoji del bot│ ├── SOUL.md # Personalidad, reglas e instrucciones del webhook│ ├── AGENTS.md # Restricciones del agente (solo musica, solo webfetch)│ ├── TOOLS.md # Referencia rapida de endpoints│ ├── HEARTBEAT.md # Tareas periodicas (ninguna)│ ├── MEMORY.md # Memoria persistente (auto-generada)│ └── skills/│ └── jaleo-spotify/│ ├── SKILL.md # Instrucciones de la skill│ └── skill.json # Metadatos de la skill├── agents/│ └── main/agent/│ ├── auth-profiles.json # Perfiles de autenticacion (API keys)│ ├── auth-state.json # Estado de autenticacion│ └── models.json # Configuracion del modelo├── devices/│ └── paired.json # Info del dispositivo WhatsApp vinculado└── identity/ ├── device.json # Claves de identidad del dispositivo └── device-auth.json # Tokens de autenticacion del dispositivoArchivos que NO debes editar manualmente
Section titled “Archivos que NO debes editar manualmente”| Archivo | Descripcion |
|---------|-------------|
| openclaw.json | Lo gestiona openclaw configure. Editalo solo si sabes lo que haces. |
| MEMORY.md | Lo gestiona OpenClaw automaticamente. |
| auth-profiles.json | Contiene las API keys del modelo de IA. Se configura con openclaw configure. |
| models.json | Se genera automaticamente. |
| devices/paired.json | Se genera al vincular WhatsApp con openclaw pair. |
| identity/ | Claves y tokens del dispositivo. No editar. |
Dependencias
Section titled “Dependencias”jaleo-api (package.json)
Section titled “jaleo-api (package.json)”| Paquete | Version | Descripcion |
|---------|---------|-------------|
| express | ^5.2.1 | Framework web para el servidor HTTP |
| axios | ^1.14.0 | Cliente HTTP para llamadas a la Spotify Web API |
| sqlite3 | ^6.0.1 | Base de datos embebida para persistencia de tokens |
| dotenv | ^17.3.1 | Carga de variables de entorno desde .env |
| pm2 | ^6.0.14 | Gestor de procesos (solo produccion) |
OpenClaw (instalacion global)
Section titled “OpenClaw (instalacion global)”| Paquete | Descripcion |
|---------|-------------|
| @anthropic/openclaw | Plataforma de automatizacion WhatsApp + IA |
Sistema
Section titled “Sistema”| Componente | Descripcion | |------------|-------------| | Node.js 20+ | Entorno de ejecucion | | Caddy | Reverse proxy con HTTPS automatico | | PM2 | Gestor de procesos para 24/7 |