openvibers/openvibe.actor .env.example

.env.example

main 6.7 KB · 137 lines · plaintext

1# OpenVibe.Actor — environment (production: /etc/openvibe/actor.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=4950
5HOST=127.0.0.1
6BASE_URL=https://openvibe.actor
7TRUST_PROXY=2
8# PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh actor: the runtime role through PgBouncer,
9# the owner on a direct connection (migrations), and Valkey (shared limit counters).
10# Without DATABASE_URL, development uses an embedded PGlite database in data/pglite.
11DATABASE_URL=
12DATABASE_DIRECT_URL=
13VALKEY_URL=
14VALKEY_PREFIX=
15# Per-caller limits (server/http/caller-limits.js): reads one caller may make to the API per minute and per hour.
16#ACTOR_LIMITS_MINUTE=120
17#ACTOR_LIMITS_HOUR=3000
18
19# OpenVibe.Network: SSO (OAuth client `actor`, PKCE S256) and its JWKS; app tokens for audience openvibe.actor.
20OV_NETWORK_URL=https://openvibe.network
21OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
22OV_OAUTH_CLIENT_ID=actor
23OV_OAUTH_CLIENT_SECRET=
24# OV_OAUTH_REDIRECT_URI=https://openvibe.actor/auth/callback
25# ACTOR_AUDIENCE=openvibe.actor
26
27# OpenVibe.AI (the model gateway a person's own keys live in; server/runtime/models.js). The catalog flag is off by
28# default: with it on, Actor reads GET /v1/models with its service token and offers the aliases and exact ids where a
29# person picks the model their tasks run on.
30# OV_AI_URL=https://ai.openvibe.services
31# ACTOR_AI_CATALOG=1
32
33# OpenVibe.Events → Actor (ADR-033 account export and deletion): the secret signs a delivery (comma-separated for
34# rotation, 32+ characters each; unset makes POST /internal/events answer 503); the url is where the two subscriptions
35# are created at boot (off when unset); ACTOR_EVENTS_SUBSCRIBE=0 turns that off.
36ACTOR_EVENTS_SECRET=
37ACTOR_EVENTS_URL=
38#ACTOR_EVENTS_ENDPOINT=http://127.0.0.1:4950/internal/events
39
40# OpenVibe.AI: the AI layer of this product (the owner, 11-06: every product on the one router). With
41# ACTOR_AI_ROUTER=1 every model call is a run of ai.complete on AI, which picks the offer by price, latency and
42# policy and says which model ran; Actor then needs NO provider key below. The person a task belongs to rides as
43# on_behalf_of, so their allowance and their Balance pay; the run is theirs.
44# Hosted production defaults on; a self-hosted Actor leaves it off and keeps its own model below.
45ACTOR_AI_ROUTER=
46# Hosted turns use Exchange's compatible API with Actor's existing service token. A slow class or
47# targeted run still uses AI's runs API; 0 rolls ordinary turns back to the runs API.
48# ACTOR_EXCHANGE_ROUTER=0
49# ACTOR_EXCHANGE_URL=https://api.openvibe.exchange
50# The token is Actor's service token for audience openvibe.ai (ai.run.create, namespace ai.complete).
51# OV_AI_URL=https://ai.openvibe.services
52# ACTOR_AI_TIMEOUT_MS=180000
53# ACTOR_AI_WAIT_MS=120000
54# Each tier's policy on the router (economy | balanced | fast | auto | private), or an exact id
55# (<org>/<model>@<revision>) when AI's catalog is on.
56# ACTOR_AI_MODEL_FAST=openvibe/economy
57# ACTOR_AI_MODEL_SMART=openvibe/balanced
58# ACTOR_AI_MODEL_BEST=openvibe/auto
59# ACTOR_AI_MODEL_CHECK=openvibe/economy
60# ACTOR_AI_MODEL_VISION=openvibe/auto
61# The per-call ceiling (USD, exact decimal) AI holds against the person's Balance. Unset: no cap.
62# ACTOR_AI_MAX_COST_USD=
63
64# The model providers behind the agents (server/agents/catalog.js). Unused when ACTOR_AI_ROUTER=1; keep them for a
65# self-hosted Actor (docs/self-host.md). An agent without its key is listed as unavailable.
66ACTOR_DEEPSEEK_API_KEY=
67# ACTOR_DEEPSEEK_MODEL=deepseek-flash
68ACTOR_OPENAI_API_KEY=
69# ACTOR_OPENAI_MODEL=gpt-5-mini
70# ACTOR_OPENAI_CHECK_MODEL=gpt-5-nano
71# The checker for answers backed by tool results (it compares them; the nano model did not):
72# ACTOR_OPENAI_GROUNDED_CHECK_MODEL=gpt-5-mini
73# The open model on this server (private mode): an OpenAI-compatible server such as llama.cpp.
74ACTOR_LOCAL_LLM_URL=
75ACTOR_LOCAL_LLM_MODEL=
76
77# The runtime on any OpenAI-compatible model instead of DeepSeek (a self-hosted Actor's usual choice; docs/self-host.md):
78# its endpoint, model, key (if any) and price per million tokens (0 for your own hardware).
79ACTOR_RUNTIME_URL=
80ACTOR_RUNTIME_MODEL=
81ACTOR_RUNTIME_API_KEY=
82ACTOR_RUNTIME_INPUT_USD_PER_MTOK=0
83ACTOR_RUNTIME_OUTPUT_USD_PER_MTOK=0
84
85# A self-hosted Actor (docs/self-host.md): one owner, no OpenVibe.Network. `npm run selfhost:init` writes these.
86# ACTOR_SELF_HOSTED=1
87# ACTOR_OWNER_NAME=
88# ACTOR_OWNER_SUBJECT=
89# ACTOR_OWNER_PASSWORD_HASH=
90# ACTOR_OWNER_TOKEN=
91# ACTOR_SESSION_SECRET=
92# DATA_DIR=
93# The OpenVibe services the runtime acts through.
94# Direct coding tasks use Actor's shared loop and Codes tool by default; set 0 to use the old Codes adapter.
95# ACTOR_UNIFIED_CODE_RUNS=1
96# Mid-run model switching and the Codes session bridge are on by default; set either to 0 to turn it off.
97# ACTOR_A4_MODEL_SWITCH=1
98# ACTOR_CODES_SESSION_BRIDGE=1
99# ACTOR_SEARCH_URL=https://search.openvibe.network
100# ACTOR_TOOLS_URL=https://openvibe.tools
101# OpenVibe.Space: the person's own spaces, which their agent builds (plan 2026-10-22 §Z stage Z1). With this
102# address the space_* tools are offered to a person's task; without it they are off.
103# ACTOR_SPACE_URL=http://127.0.0.1:4940
104# OpenVibe.Watch: a trigger's subscription lives there, created and changed with the person's own token. Empty
105# turns triggers off.
106# ACTOR_WATCH_URL=http://127.0.0.1:4730
107# The files and charts a task makes (Actor v2, stage V2-4) live in Actor's own PostgreSQL, private to the person who
108# asked, and are served from the task's own page (server/runtime/artifacts.js says why they are not on OpenVibe.Media).
109# The largest single file a task may make, and the most one task may hold.
110# ACTOR_ARTIFACT_MAX_FILE_BYTES=262144
111# ACTOR_ARTIFACT_MAX_TASK_BYTES=2097152
112
113# Durable runs (Actor v2, stage V2-9): a checkpoint after every step, sealed with AES-256-GCM under this key (64 hex
114# characters). Unset means checkpoints are off and a restart fails a running task as before. Never commit the value.
115# ACTOR_CHECKPOINT_KEY=
116# The last N checkpoints kept per task (older ones are pruned), and how many times a task may resume after a restart.
117# ACTOR_CHECKPOINT_KEEP=50
118# ACTOR_CHECKPOINT_MAX_RESUMES=2
119
120
121# Money: the free tier per person, and the operator's ceiling over everyone in one UTC day (USD).
122#ACTOR_FREE_TASKS_PER_DAY=20
123#ACTOR_FREE_PER_TASK_USD=0.05
124#ACTOR_FREE_PER_DAY_USD=0.05
125#ACTOR_MAX_COST_USD_PER_DAY=2
126#ACTOR_MAX_RUNNING=4
127#ACTOR_TASK_TIMEOUT_MS=180000
128# Personal agents: maximum definitions per person and due agents claimed per scheduler tick.
129#ACTOR_AGENTS_MAX_PER_OWNER=10
130#ACTOR_AGENTS_TICK_MAX=5
131# Task webhooks: how often due deliveries go out, and how long one delivery may take
132#ACTOR_WEBHOOK_INTERVAL_MS=5000
133#ACTOR_WEBHOOK_TIMEOUT_MS=10000
134
135# optional: defaults to true in production
136# COOKIE_SECURE=true
137