Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
KOKO MLS — API de Valuación de Propiedades API de valuación automatizada de inmuebles en México. Calcula precios estimados de propiedades a partir de comparables obtenidos de portales inmobiliarios (Vivanuncios) y ajusta por tipo de cambio usando el SIE de Banxico. Expone endpoints REST para consultar valuaciones, comparables y métricas de mercado. Stack • Python 3.11, FastAPI, asyncpg • Postgres 15 (con migraciones Alembic) • Redis 7 (rate limit + cache) • Scrapers: Vivanuncios (cada 6h), Banxico SIE (FX diario) • Deploy: Fly.io (Querétaro) Requisitos: Docker Desktop, make, git.README 전문 보기 ↗
API de valuación automatizada de inmuebles en México. Calcula precios estimados de propiedades a partir de comparables obtenidos de portales inmobiliarios (Vivanuncios) y ajusta por tipo de cambio usando el SIE de Banxico. Expone endpoints REST para consultar valuaciones, comparables y métricas de mercado.
Requisitos: Docker Desktop, make, git.
Pasos:
cp .env.example .env.local y edita lo necesario (al menos BANXICO_API_TOKEN).make dev (levanta api + postgres + redis + scrapers-worker en docker-compose).make migrate para aplicar migraciones, make seed para datos de referencia (catálogos de colonias, tipos de propiedad, FX inicial).Para detener el stack: make dev-down. Para limpiar volúmenes (destructivo): make dev-clean.
Todas las variables viven en .env.example. En local se cargan desde .env.local; en producción se setean como Fly secrets.
| Variable | Descripción | Default | Requerida en prod |
|---|---|---|---|
ENVIRONMENT | Entorno de ejecución (local, staging, production). | local | Sí |
LOG_LEVEL | Nivel de logging (DEBUG, INFO, WARNING, ERROR). | INFO | Sí |
DATABASE_URL | DSN de Postgres (postgresql+asyncpg://user:pass@host:5432/db). | postgresql+asyncpg://koko:koko@postgres:5432/koko_mls | Sí (inyectada por Fly Postgres) |
REDIS_URL | URL de Redis (redis://host:6379/0). | redis://redis:6379/0 | Sí |
CORS_ORIGINS | Lista de orígenes permitidos, separados por coma. | http://localhost:3000 | Sí |
BANXICO_API_TOKEN | Token del SIE de Banxico para consultar FX. | — | Sí |
VIVANUNCIOS_RATE_LIMIT_RPS | Requests por segundo contra Vivanuncios. | 0.5 | Sí |
SCRAPER_INTERVAL_HOURS | Frecuencia del scraper de comparables. | 6 | Sí |
SENTRY_DSN | DSN de Sentry para reporte de errores. | — | Recomendada |
FLY_API_TOKEN | Token de Fly.io para deploys desde CI. | — | Solo CI |
BACKUP_S3_BUCKET | Bucket S3 destino de backups de Postgres. | — | Sí (en scrapers) |
AWS_ACCESS_KEY_ID | Credencial IAM para subir backups a S3. | — | Sí (en scrapers) |
AWS_SECRET_ACCESS_KEY | Secret de la credencial IAM. | — | Sí (en scrapers) |
AWS_REGION | Región AWS del bucket de backups. | us-east-1 | Sí (en scrapers) |
make migrate-new MSG="add comparables index" → corre alembic revision --autogenerate -m "...".make migrate.make migrate-down.release_command en fly.toml, que invoca infra/migrate.sh antes de promover la nueva versión.Una sola vez (setup inicial):
fly auth login
fly apps create koko-valuation-api --org koko
fly apps create koko-valuation-scrapers --org koko
fly postgres create --name koko-mls-db --region qro
fly redis create --name koko-mls-redis --region qro
fly postgres attach koko-mls-db --app koko-valuation-api
fly secrets set --app koko-valuation-api BANXICO_API_TOKEN=... SENTRY_DSN=... CORS_ORIGINS=... REDIS_URL=...
fly secrets set --app koko-valuation-scrapers (mismas)
fly volumes create koko_api_data --region qro --size 1 --app koko-valuation-api
En cada PR mergeado a main, GitHub Actions corre fly deploy automáticamente (workflow .github/workflows/ci.yml).
Deploy manual: make deploy (despliega API + scrapers). Para uno solo: make deploy-api o make deploy-scrapers.
fly secrets set BANXICO_API_TOKEN=... --app koko-valuation-api
fly secrets set BANXICO_API_TOKEN=... --app koko-valuation-scrapers
fly secrets set SENTRY_DSN=... --app koko-valuation-api.fly secrets set AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... --app koko-valuation-scrapers
fly deploy para forzar reinicio (o fly machine restart).make logs para local, make logs-prod o fly logs --app koko-valuation-api para producción./metrics (Fly los scrapea automáticamente si la sección [metrics] está en fly.toml).SENTRY_DSN.monitoring/grafana-dashboard.json (importar a tu instancia de Grafana).infra/backup.sh corre semanal vía cron en koko-valuation-scrapers (configurado en infra/crontab) y sube un dump de Postgres a S3 (BACKUP_S3_BUCKET).make backup (requiere AWS creds en .env.local)..
├── api/ # FastAPI app (routers, schemas, servicios, deps)
├── db/ # Modelos SQLAlchemy + migraciones Alembic
│ └── alembic/
├── scrapers/ # Workers de Vivanuncios y Banxico
├── tests/ # Pytest (unit + integración)
├── infra/ # Scripts de migrate, seed, backup, crontab
├── monitoring/ # Dashboards Grafana, reglas Prometheus
├── docker-compose.yml # Stack local
├── Dockerfile # Imagen producción (api + scrapers)
├── fly.toml # Config Fly para API
├── fly-scrapers.toml # Config Fly para workers de scrapers
├── .env.example # Plantilla de variables
└── Makefile # Tareas comunes
fly logs --app koko-valuation-api. Suele ser una migración con conflict. Para revertir la última revisión: alembic downgrade -1.VIVANUNCIOS_RATE_LIMIT_RPS (default 0.5 req/s). Si seguís bloqueado, esperá ~30min antes de reintentar.make seed haya corrido y que los scrapers hayan ejecutado al menos un ciclo (make logs-scrapers).BANXICO_API_TOKEN; el scraper de Banxico corre diario y cachea el resultado en Redis.Propietario — KOKO. Todos los derechos reservados.