Skip to content

Commit 84830c6

Browse files
committed
feat: updated installation
1 parent f2901dc commit 84830c6

1 file changed

Lines changed: 141 additions & 6 deletions

File tree

content/general/install.mdx

Lines changed: 141 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,36 +60,79 @@ HOSTNAME=localhost
6060
HTTP_PORT=80
6161
HTTPS_PORT=443
6262
SSL_ENABLED=false
63-
SSL_CERT_FILE= # must be located in ./certs, defaults to "<hostname>.pem"
64-
SSL_KEY_FILE= # must be located in ./certs, defaults to "<hostname>.key"
63+
# must be located in ./certs, defaults to "<hostname>.pem"
64+
SSL_CERT_FILE=
65+
# must be located in ./certs, defaults to "<hostname>.key"
66+
SSL_KEY_FILE=
6567

6668
INITIAL_ROOT_PASSWORD=root
6769
INITIAL_ROOT_MAIL=root@code0.tech
68-
INITIAL_RUNTIME_TOKEN= # can be used to create a global runtime with given token
70+
# can be used to create a global runtime with given token
71+
INITIAL_RUNTIME_TOKEN=runtime
6972

7073
# Runtime config
7174
AQUILA_SAGITTARIUS_URL=http://nginx:80
72-
AQUILA_SAGITTARIUS_TOKEN=
75+
AQUILA_SAGITTARIUS_TOKEN=runtime
7376
DRACO_REST_PORT=8084
77+
DRACO_REST_HOST=127.0.0.1
7478

7579
TAURUS_AQUILA_TOKEN=taurus
7680
DRACO_REST_AQUILA_TOKEN=draco-rest
7781
DRACO_CRON_AQUILA_TOKEN=draco-cron
7882

83+
AQUILA_GRPC_CONNECT_TIMEOUT_SECS=2
84+
AQUILA_GRPC_REQUEST_TIMEOUT_SECS=10
85+
SAGITTARIUS_UNARY_RPC_TIMEOUT_SECS=10
86+
7987
# Active services
80-
COMPOSE_PROFILES=ide,runtime
88+
# Available services: ide, runtime, ide_velorum (AI orchestrator)
89+
COMPOSE_PROFILES=ide,runtime,ide_velorum
8190

8291
# Image config
8392
IMAGE_REGISTRY=registry.gitlab.com/code0-tech/packages
8493
IMAGE_TAG=
85-
IMAGE_EDITION= # ce or ee
94+
# ce or ee
95+
IMAGE_EDITION=
96+
97+
# Sagittarius config
98+
# change these to new secret values
99+
SAGITTARIUS_DB_ENCRYPTION_PRIMARY_KEY=YzaMv4bXYK84unYIQI4Ms4sV3ucbvWs0
100+
SAGITTARIUS_DB_ENCRYPTION_DETERMINISTIC_KEY=jgTaxTqzM15ved1S8HdXrqrjfCfF5R0h
101+
SAGITTARIUS_DB_ENCRYPTION_KEY_DERIVATION_SALT=Z6zcLTgobXLYjXUslRsLMKxvXKq3j6DJ
102+
SAGITTARIUS_RAILS_SECRET_KEY_BASE=MVMD6CtQwEWrQ28TdokQakbG2FG5abOn
103+
104+
# Velorum config
105+
# VELORUM_ENABLED=false (override, default checks if COMPOSE_PROFILES contains ide_velorum)
106+
VELORUM_HOST=velorum
107+
VELORUM_PORT=50051
108+
# change to a random value
109+
VELORUM_JWT_SECRET=088cfc7a7fc2b07696d8ee5e1ea9d642
110+
111+
# example, GPT5 in the variable name can be changed to other values. This set of variables can be repeated multiple times
112+
# VELORUM_MODEL_GPT5_IDENTIFIER=gpt-5
113+
# VELORUM_MODEL_GPT5_NAME='GPT 5'
114+
# VELORUM_MODEL_GPT5_CAPABILITIES=explain,generate
115+
# if using a non-default base-url
116+
# VELORUM_MODEL_GPT5_API=
117+
# or openrouter/openai/gpt-5, etc depending on the provider
118+
# VELORUM_MODEL_GPT5_PROVIDER=openai/gpt-5
119+
# authentication token
120+
# VELORUM_MODEL_GPT5_AUTH=your-secret-token
121+
# token cost multiplier for this model
122+
# VELORUM_MODEL_GPT5_TOKEN_COST=1
86123

87124
# Internal config options
88125
SAGITTARIUS_RAILS_HOST=sagittarius-rails-web
89126
SAGITTARIUS_RAILS_PORT=3000
127+
SAGITTARIUS_CABLE_HOST=sagittarius-rails-cable
128+
SAGITTARIUS_CABLE_PORT=3000
90129
SAGITTARIUS_GRPC_HOST=sagittarius-grpc
91130
SAGITTARIUS_GRPC_PORT=50051
92131
SAGITTARIUS_LOG_LEVEL=info
132+
# web threads and grpc threads must be lower than db pool size
133+
SAGITTARIUS_RAILS_WEB_THREADS=3
134+
SAGITTARIUS_RAILS_GRPC_THREADS=6
135+
SAGITTARIUS_DB_POOL_SIZE=8
93136
SCULPTOR_HOST=sculptor
94137
SCULPTOR_PORT=3000
95138
POSTGRES_HOST=postgres
@@ -106,6 +149,20 @@ POSTGRES_PASSWORD=sagittarius
106149
- `INITIAL_ROOT_PASSWORD`: The secure password for your first login.
107150
- `IMAGE_EDITION`: Set this to ce for the Community Edition or ee for the Enterprise Edition. This
108151
determines which Docker images will be pulled.
152+
- `COMPOSE_PROFILES`: Controls which services are started. Available profiles are `ide`, `runtime` and
153+
`ide_velorum` (AI orchestrator). Remove `ide_velorum` if you don't want to run the AI orchestrator.
154+
155+
### Secrets
156+
157+
The following values must be replaced with newly generated secrets before going to production. The defaults
158+
in the template are only meant to make local testing easier:
159+
160+
- `SAGITTARIUS_DB_ENCRYPTION_PRIMARY_KEY`, `SAGITTARIUS_DB_ENCRYPTION_DETERMINISTIC_KEY`,
161+
`SAGITTARIUS_DB_ENCRYPTION_KEY_DERIVATION_SALT`: Keys used to encrypt sensitive data in the Sagittarius
162+
database.
163+
- `SAGITTARIUS_RAILS_SECRET_KEY_BASE`: Base secret used by Rails to sign and encrypt session data.
164+
- `VELORUM_JWT_SECRET`: Secret used by Velorum to sign JWTs. Only required when the `ide_velorum` profile is
165+
active.
109166

110167
### Setup initial runtime
111168

@@ -181,4 +238,82 @@ docker compose up -d
181238

182239
</Steps>
183240

241+
## Setup Velorum (AI orchestrator)
242+
243+
Velorum is the AI orchestrator that powers CodeZero's AI features. It exposes a unified interface to one or
244+
more language models, which are configured purely through environment variables.
245+
246+
<Steps>
247+
<Step>
248+
249+
## Enable the Velorum profile
250+
251+
Make sure the `ide_velorum` profile is part of `COMPOSE_PROFILES` in your `.env` file:
252+
253+
```bash
254+
COMPOSE_PROFILES=ide,runtime,ide_velorum
255+
```
256+
257+
You can opt out of the AI orchestrator at any time by removing `ide_velorum` from the list and restarting
258+
the containers. To force-disable Velorum even when the profile is active, set `VELORUM_ENABLED=false`.
259+
260+
</Step>
261+
<Step>
262+
263+
## Configure the Velorum service
264+
265+
The following variables configure the Velorum service itself:
266+
267+
- `VELORUM_HOST`: The hostname Sagittarius uses to reach Velorum. Defaults to the in-network `velorum`
268+
service.
269+
- `VELORUM_PORT`: The gRPC port Velorum listens on (default `50051`).
270+
- `VELORUM_JWT_SECRET`: Secret used to sign JWTs issued by Velorum. Replace the value from the template
271+
with a freshly generated random string.
272+
273+
</Step>
274+
<Step>
275+
276+
## Configure AI models
277+
278+
Each model Velorum should expose is configured through a set of `VELORUM_MODEL_<SLOT>_*` variables. The
279+
`<SLOT>` part of the variable name is a free-form identifier you choose (e.g. `GPT5`, `CLAUDE`, `LLAMA`)
280+
and is used only to group the variables for one model together. Repeat the set of variables for every
281+
model you want to register.
282+
283+
```bash
284+
VELORUM_MODEL_GPT5_IDENTIFIER=gpt-5
285+
VELORUM_MODEL_GPT5_NAME='GPT 5'
286+
VELORUM_MODEL_GPT5_CAPABILITIES=explain,generate
287+
# if using a non-default base-url
288+
VELORUM_MODEL_GPT5_API=
289+
# or openrouter/openai/gpt-5, etc depending on the provider
290+
VELORUM_MODEL_GPT5_PROVIDER=openai/gpt-5
291+
VELORUM_MODEL_GPT5_AUTH=your-secret-token
292+
VELORUM_MODEL_GPT5_TOKEN_COST=1
293+
```
294+
295+
- `IDENTIFIER`: Stable identifier used by the rest of CodeZero to reference this model.
296+
- `NAME`: Human-readable name shown in the dashboard.
297+
- `CAPABILITIES`: Comma-separated list of capabilities this model supports (e.g. `explain`, `generate`).
298+
- `API`: Optional. Override when the provider is reached through a non-default base URL.
299+
- `PROVIDER`: Provider/model string in the format expected by Velorum, e.g. `openai/gpt-5` or
300+
`openrouter/openai/gpt-5`.
301+
- `AUTH`: Authentication token used to call the provider.
302+
- `TOKEN_COST`: Token cost multiplier applied to usage of this model.
303+
304+
</Step>
305+
<Step>
306+
307+
## Finalize the setup
308+
309+
After updating the `.env` file, restart the containers so Velorum and Sagittarius pick up the new
310+
configuration:
311+
312+
```bash
313+
docker compose up -d
314+
```
315+
316+
</Step>
317+
</Steps>
318+
184319
Your CodeZero instance is now fully configured and ready to manage your enterprise flows and organizational structures.

0 commit comments

Comments
 (0)