Skip to content

R0MADEV/oroi

Repository files navigation

oroi

Buscador AI privado sobre documentos corporativos, multi-tenant.

Stack

  • Go 1.23 — binario único, rápido, tipado fuerte.
  • Postgres 17 + pgvector — datos + embeddings.
  • Typesense — búsqueda lexical / hybrid.
  • OpenAI embeddings — vectores para RAG.
  • Chi — HTTP router.
  • sqlc — queries tipadas compile-time.
  • goose — migraciones.
  • river — jobs en background sobre Postgres.
  • mcp-go — servidor MCP (protocolo Model Context Protocol).
  • zerolog — logging estructurado.

Arquitectura

Hexagonal / Clean. Detalles en docs/adr/.

cmd/            ← binarios (server, worker)
internal/
  domain/       ← entidades puras, sin dependencias
  app/          ← casos de uso (orquestan dominio)
  ports/        ← interfaces que la app necesita de infra
  infra/        ← adapters concretos (pg, typesense, http, mcp, ...)
  config/       ← configuración validada al arranque
  logger/       ← logger estructurado
migrations/     ← SQL versionado (up/down)
docs/adr/       ← Architecture Decision Records

Primera vez

Requiere Docker + el traefik compartido de dev-toolbox corriendo.

# 1. Genera certs para los hosts .localhost
./scripts/gen-certs.sh

# 2. Añade las rutas al traefik de dev-toolbox (ver ADR-0005)

# 3. Abre el devcontainer en VS Code
code .
# F1 → "Dev Containers: Reopen in Container"

# 4. Dentro del devcontainer:
make up        # levanta Postgres, Typesense
make migrate   # aplica migraciones
make dev       # arranca el servidor con hot-reload (air)

URLs

Servicio URL
API https://oroi.localhost
Typesense https://typesense-oroi.localhost
Typesense Dashboard https://typesense-oroi-dashboard.localhost

Comandos

make help       # lista comandos disponibles
make up         # docker compose up
make down       # docker compose down
make migrate    # aplica migraciones
make rollback   # revierte última migración
make sqlc       # regenera queries tipadas
make dev        # air hot-reload
make build      # compila binarios a /bin/
make test       # tests
make lint       # golangci-lint
make fmt        # gofmt + goimports

About

SaaS multi-tenant para construir tu propia base de conocimiento consultable con IA. Subes documentos (PDFs, posts, libros), oroi los indexa, y a partir de ahí podés preguntar en lenguaje natural y recibir respuestas con citas a las fuentes — sin mandar nada a servicios opacos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors