Skip to content

Commit f72a532

Browse files
committed
docs: started rework
1 parent f05a09e commit f72a532

2 files changed

Lines changed: 193 additions & 3 deletions

File tree

docs/index.mdx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
---
2-
title: Welcome to the Documentation for Taurus
3-
description: Find out how the execution works
2+
title: Welcome to Taurus Documentation
3+
description: Learn how Taurus works and how to build with it
44
template: splash
55
---
66

7-
Taurus executes Flows.
7+
## What is Taurus?
8+
9+
Taurus runs inside the execution block and serves as the runtime itself.
10+
It handles flow execution requests and requests single node executions from Actions.
11+
12+
---
13+
14+
If you want to work on or with Taurus, start here:
15+
16+
- **[Setup Guide](installation.mdx)**: install and configure Aquila for local or containerized use.
17+
- **[Development Guide](dev.md)**: runtime architecture

docs/installation.mdx

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
---
2+
title: Taurus Installation Guide
3+
---
4+
5+
import {Step, Steps} from 'fumadocs-ui/components/steps';
6+
7+
Use this guide to install and configure Taurus.
8+
9+
## Setup Options
10+
11+
### Using Docker Compose
12+
13+
Use Docker Compose to run Taurus and related services.
14+
If you are developing Taurus locally, make sure the Taurus container is stopped to avoid port conflicts.
15+
If your compose setup supports profiles, you can set `COMPOSE_PROFILES=ide` to run only
16+
IDE-related services and start Taurus manually.
17+
18+
### Virtual Development Environment (Preferred)
19+
20+
Use the shared environment setup from the main platform docs:
21+
22+
- [Visit Setup Guide](https://docs.code0.tech/general/install/)
23+
24+
### Manual Installation
25+
26+
<Steps>
27+
28+
<Step>
29+
30+
#### **Clone Taurus**
31+
32+
Clone this repository to your local machine.
33+
34+
</Step>
35+
36+
<Step>
37+
38+
#### **Set up environment variables**
39+
40+
Configure `.env` in the project root with the required settings.
41+
You can use `.env-example` as a starting point.
42+
43+
</Step>
44+
45+
<Step>
46+
47+
#### **Ensure required services are running**
48+
49+
**NATS**:
50+
51+
- Ensure a NATS instance is reachable
52+
- Enable JetStream
53+
- See [NATS installation docs](https://docs.nats.io/running-a-nats-service/introduction/installation)
54+
55+
**Aquila**:
56+
57+
- Required for dynamic mode (`MODE=dynamic`)
58+
- Ensure the configured endpoint is reachable
59+
60+
</Step>
61+
62+
<Step>
63+
64+
#### **Start Taurus**
65+
66+
Run:
67+
68+
```bash
69+
cargo run -p taurus
70+
```
71+
72+
</Step>
73+
74+
</Steps>
75+
---
76+
77+
## Environment Variables
78+
79+
Taurus configuration is split into shared variables and mode-specific variables.
80+
81+
### Common (Static + Dynamic)
82+
83+
| Name | Description | Default |
84+
|-----------------------|--------------------------------------------------------------------------------------------------------------|---------------------------------|
85+
| `MODE` | Runtime mode. `static` loads local flows. `dynamic` enables dynamic synchronization with Sagittarius. | `static` |
86+
| `ENVIRONMENT` | Runtime environment (`development`, `staging`, `production`). | `development` |
87+
| `NATS_URL` | URL of the NATS instance Aquila connects to. | `nats://localhost:4222` |
88+
| `AQUILA_URL` | URL of the NATS instance Aquila connects to. | `nats://localhost:4222` |
89+
| `AQUILA_TOKEN` | URL of the NATS instance Aquila connects to. | `nats://localhost:4222` |
90+
91+
| `GRPC_HOST` | Hostname for the Aquila gRPC server. | `127.0.0.1` |
92+
| `GRPC_PORT` | Port for the Aquila gRPC server. | `8081` |
93+
| `WITH_HEALTH_SERVICE` | Enables the gRPC health service when set to `true`. | `false` |
94+
| `DEFINITIONS` | Path to the JSON service-configuration file used for runtime/action authorization and default action configs. | `./service.configuration.json` |
95+
| `ADAPTER_STATUS_UPDATE_INTERVAL_SECONDS` | Seconds a runtime serivce will be marked as `not_responding` when no hearbeat was recieved. | `15s` |
96+
| `RUNTIME_STATUS_STOPPED_AFTER_NOT_RESPONDING_SECS` | Seconds a runtime serivce will be marked as `stopped` when no hearbeat was recieved. | `30s` |
97+
| `RUNTIME_STATUS_MONITOR_INTERVAL_SECS` | Interval in which the heartbeat of the services will be flagged/checked. | `3s` |
98+
99+
### Static Mode
100+
101+
Set `MODE=static` to load flows from a local JSON file and insert them into the NATS KV store on startup.
102+
103+
| Name | Description | Default |
104+
|----------------------|-----------------------------------------------|---------------------|
105+
| `FLOW_FALLBACK_PATH` | Path to the flow JSON file loaded at startup. | `./flowExport.json` |
106+
107+
### Dynamic Mode
108+
109+
Set `MODE=hybrid` to keep flows synchronized from Sagittarius.
110+
111+
| Name | Description | Default |
112+
|-------------------|-----------------------------------------------------------------------------------|--------------------------|
113+
| `SAGITTARIUS_URL` | URL of the Sagittarius instance Aquila connects to for flow and action updates. | `http://localhost:50051` |
114+
| `RUNTIME_TOKEN` | Token used by Aquila to authenticate with Sagittarius. | `default_session_token` |
115+
116+
---
117+
118+
## Service Configuration File
119+
120+
To authorize services like `Taurus`, `Draco`, or an `Action`, they must be declared in Aquila's service configuration file.
121+
122+
`SERVICE_CONFIG_PATH` points to a JSON file that defines:
123+
124+
- Allowed runtime tokens
125+
- Allowed action tokens
126+
- Optional default action configurations
127+
128+
This file is loaded on startup. If the file is missing or invalid, Aquila starts with an empty service configuration.
129+
130+
Default:
131+
132+
```json
133+
{
134+
"actions": [],
135+
"runtimes": [
136+
{
137+
"identifier": "taurus",
138+
"token": "HsCEzbCuaUtUGSCrvwsSbJSlS2HH6TrW0ZeEKUZGTiOH8vPEZxyAEOx974Ku72l4"
139+
},
140+
{
141+
"identifier": "draco-rest",
142+
"token": "SBO3dRKmhszmGH6KxpgKoYGp0gBfgWqV6WEiKtMxldyeWiYLqJx6vwLuVLKRhu8H"
143+
},
144+
{
145+
"identifier": "draco-cron",
146+
"token": "VuTFgCj1PO6yr8smk43XLmeTUtlyKa2wjA0zvmz7WZDtgfXC62Ypd1b8fjJl8HvI"
147+
}
148+
]
149+
}
150+
```
151+
152+
You can add as many runtimes as needed.
153+
To add an `Action`, add an entry under `actions`.
154+
To provide default Action-level config, add `configs` entries for that action.
155+
156+
```json
157+
{
158+
"actions": [
159+
{
160+
"token": "action_token",
161+
"identifier": "discord",
162+
"configs": [
163+
{
164+
"project_id": 1,
165+
"configs": [
166+
{
167+
"identifier": "send_message",
168+
"value": {
169+
"channel_id": "123456789012345678",
170+
"content": "Hello from bot"
171+
}
172+
}
173+
]
174+
}
175+
]
176+
}
177+
],
178+
"runtimes": []
179+
}
180+
```

0 commit comments

Comments
 (0)