Monitor automático de departamentos en Lima con alertas por Telegram.
- Backend: Node.js → Railway
- Frontend: HTML → Vercel
- Base de datos: Supabase
- Alertas: Telegram Bot (mismo del Panel Futuros LO)
- Abre tu proyecto Supabase → SQL Editor
- Pega y ejecuta el contenido de
supabase_migration.sql
- Crea un nuevo proyecto en Railway
- Conecta este repo (o sube los archivos
server.jsypackage.json) - Agrega estas variables de entorno:
ANTHROPIC_API_KEY= # tu API key de Anthropic
SUPABASE_URL= # URL de tu proyecto Supabase
SUPABASE_SECRET_KEY= # service_role key de Supabase
TELEGRAM_TOKEN= # mismo token del Panel Futuros LO
TELEGRAM_CHAT_ID= # mismo chat ID del Panel Futuros LO
# Configuración de búsqueda
SEARCH_DISTRITO=san-borja
SEARCH_DISTRITO_LABEL=San Borja
SEARCH_DORMS=2
MAX_PRICE_SOLES=3500
SEARCH_INTERVAL_HOURS=12
MIN_SCORE=75
TC=3.73
- Railway detecta
package.jsony despliega automáticamente - Copia la URL pública del backend (ej:
honicho-backend.up.railway.app)
-
Crea un nuevo proyecto en Vercel
-
Sube
index.html(o conecta el repo) -
Antes de subir, edita
index.htmly reemplaza:const BACKEND = 'https://TU-BACKEND.up.railway.app';con la URL real de tu Railway.
-
Vercel despliega automáticamente → obtienes tu URL pública
| Endpoint | Descripción |
|---|---|
GET /api/health |
Estado del servidor |
GET /api/offers |
Ofertas activas (params: min_score, limit) |
POST /api/search/run |
Fuerza una búsqueda inmediata |
PATCH /api/offers/:id |
Actualiza status (active/descartada) |
GET /api/stats |
Estadísticas generales |
GET /api/myip |
IP pública del servidor |
Cambia las variables de entorno en Railway y el servidor aplica los cambios al reiniciar:
MAX_PRICE_SOLES→ presupuesto máximoSEARCH_DORMS→ número de dormitoriosMIN_SCORE→ puntaje mínimo para alertar por TelegramSEARCH_INTERVAL_HOURS→ frecuencia de búsqueda (6, 12, 24)TC→ tipo de cambio referencial
- Urbania (portal principal Lima)
- A Donde Vivir (amplio catálogo)
- OLX Perú (clasificados)
Facebook, TikTok e Instagram no permiten scraping automático — solo búsqueda manual desde el panel.