ojuri.yaml
Rama main · réplica de lectura del repositorio original.
# yaml-language-server: $schema=https://ojuri.io/schema/ojuri.v1.json
#
# Ojuri deployment manifest.
#
# This is the stack `ojuri up` runs. It is a layer over .env, not a
# replacement: `ojuri render` turns it into a .env fragment plus a
# Compose overlay.
#
# A bare `docker compose up -d` knows nothing about this file, and three
# fields here deliberately differ from what it would do on its own:
# rda.replicas, mla.enabled and sentinel.enabled. Each says so below.
#
# Check it with `ojuri validate`.
version: 1
# Image tag written to OJURI_VERSION. `v1` floats and picks up patches
# and minors. Pin strictly (v1.8.0) for regulated deployments; see
# VERSIONING.md.
release: v1
datastores:
# `bundled` runs the container the compose file ships. `external`
# drops it and points the services at your own, which needs the
# connection fields filled in.
postgres:
mode: bundled
redis:
mode: bundled
kafka:
mode: bundled
services:
# Written to RDA_REPLICAS, which stays the only way to scale RDA. One
# replica serves the whole predict path; raise it when a single Node
# process stops keeping up. NGINX resolves the replica addresses once
# at startup, so `ojuri up` restarts it after a change. A bare
# `docker compose up` still defaults to 3.
rda:
replicas: 1
# PAA is a singleton and validate refuses anything above 1. The
# transaction graph lives in process memory, so a second copy would
# see half of it. The compose service is named `paa-1`.
paa:
replicas: 1
# On by default. Without it nothing watches for drift and no model is
# ever retrained. It sits on no request path, trains nothing at
# startup, and needs verified labels before a retrain can fire.
# Compose keeps it behind the `mla` profile, which `ojuri up` passes
# for you.
mla:
enabled: true
replicas: 1
# The one service off by default. FIA pulls roughly 7.6 GB of model
# weights on first start and wants 16 GB of RAM, which is more than an
# evaluation should spend uninvited. Read the warning `ojuri validate`
# prints before turning it on.
fia:
enabled: false
replicas: 1
# The operator dashboard, on by default. Served through NGINX on
# network.http_port; it publishes no host port of its own. Enabling it
# swaps in nginx.sentinel.conf, which keeps every /v1 route on RDA and
# gives `/` to the dashboard.
sentinel:
enabled: true
auth:
# False is the shipped default so a fresh checkout works with no
# setup. Turn it on before the stack is reachable by anything other
# than you.
require_api_key: false
jwt_secret: ${AUTH_JWT_SECRET}
network:
http_port: 80
public_url: http://localhost
observability:
# Prometheus and Grafana. They carry no compose profile, so turning
# this off removes the services in the rendered overlay.
enabled: true