You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7c0b159
Browse filesBrowse the repository at this point in the historyBrowse files
Use `./services status --detailed`, then the CLI's `logs`, `inspect`, `doctor`, and
127
+
`deployments --status` commands as appropriate. Start/stop/restart requires named
128
+
groups or explicit `--all`; remote execution requires `--node` with a registered ID.
129
+
LLM, wakeword, and TTS are managed groups. Normal actions wait for readiness and
130
+
share WebUI operation tracking. Use explicit `--direct` only for local recovery
131
+
without the manager; admission still applies.
132
+
133
+
Use raw engine commands for evidence the CLI does not expose, isolated development,
134
+
unmanaged services, or a broken CLI. State the gap before going lower-level and
135
+
redact secrets. After repairs, exercise the affected capability as well as readiness.
123
136
124
137
## Initial Setup & Configuration
125
138
@@ -144,7 +157,7 @@ uv run --with-requirements setup-requirements.txt python wizard.py
144
157
# For step-by-step instructions, see quickstart.md
145
158
```
146
159
147
-
**Note on Convenience Scripts**: Chronicle provides wrapper scripts (`./wizard.sh`, `./start.sh`, `./restart.sh`, `./stop.sh`,`./status.sh`) that simplify the longer `uv run --with-requirements setup-requirements.txt python` commands. Use these for everyday operations.
160
+
**Operator entry points**: Use `./wizard.sh` for configuration and`./services` for service management. See [service operations](#service-operations).
148
161
149
162
**Temporary Tooling Rule**: When a Python tool or dependency is needed only for a one-off task, run it ephemerally with `uv run --with <package> ...`; do not install it into a project environment or add it to project dependencies. For a package-owned CLI, use `uvx --from <package> <entrypoint>`. This applies to browser automation, screenshots, data inspection, and other temporary utilities.
150
163
@@ -172,11 +185,12 @@ Key features:
172
185
173
186
### Backend Development (Chronicle Backend - Primary)
174
187
```bash
175
-
cd backend
188
+
# From the repository root, start the managed backend
189
+
./services start backend
176
190
177
-
# Start full stack with Docker
178
-
docker compose up --build -d
191
+
cd backend
179
192
193
+
# Standalone development alternative (use an isolated configuration)
180
194
uv run python src/main.py
181
195
182
196
# Code formatting and linting
@@ -264,28 +278,21 @@ npm run web
264
278
```
265
279
266
280
### Additional Services
267
-
```bash
268
-
# ASR Services
269
-
cd extras/asr-services
270
-
docker compose up parakeet-asr # Offline ASR with Parakeet
271
281
272
-
# Speaker Recognition (with tests)
273
-
cd extras/speaker-recognition
274
-
docker compose up --build
275
-
./run-test.sh # Run speaker recognition integration tests
282
+
Start configured service groups from the repository root:
276
283
277
-
# HAVPE Relay (ESP32 bridge)
278
-
cd extras/havpe-relay
279
-
docker compose up --build
280
-
281
-
# TTS Services (text-to-speech, run ONE provider at a time on port 8770)
282
-
cd extras/tts
283
-
docker compose up tada-tts -d --build # HumeAI TADA (GPU, voice cloning)
284
-
docker compose up fish-tts -d --build # Fish Speech (GPU, 50+ langs, emotion tags)
285
-
docker compose up kittentts-tts -d --build # KittenTTS (~25MB CPU ONNX, no GPU)
- Not registered in `services.py` — manage with `docker compose` directly (like the HAVPE relay).
634
+
- Registered as `tts` in `services.py`; select the provider via setup or the WebUI System controls. See [service management](docs/init-system.md#service-management).
629
635
- GPU providers require CUDA 12.6+ (`PYTORCH_CUDA_VERSION=cu126`/`cu128`); `cu121` is unsupported (torch>=2.7).
630
636
- Add a provider by creating `extras/tts/providers/{name}/` with `service.py`, `synthesizer.py`, and `Dockerfile` (subclass `BaseTTSService`).
631
637
- An optional `edge-agent` sidecar (`--profile edge`) advertises the service on the Tailnet.
# From the repository root, start the managed backend
670
+
./services start backend
669
671
```
670
672
671
673
#### Tailscale Networking
@@ -817,7 +819,7 @@ For temporary Python-backed tooling that is not part of the repo dependencies, p
817
819
- Prefer GPU acceleration whenever the workload and deployed service support it.
818
820
819
821
**Container Engine (Docker or Podman):**
820
-
- The project supports **both Docker and Podman**. The active engine is set by `container_engine` in `config/config.yml` (default `docker`); prefer the lifecycle scripts (`./start.sh`/`./stop.sh`/`./restart.sh`) which route through the selected engine. For one-off manual commands under Podman use `podman-compose` (not `docker compose`). See **[@docs/podman.md](docs/podman.md)**.
822
+
- The project supports **both Docker and Podman**. The active engine is set by `container_engine` in `config/config.yml` (default `docker`); prefer the lifecycle scripts (`./services start --all`/`./services stop --all`/`./services restart --all`) which route through the selected engine. For the lower-level cases described in [service operations](#service-operations), use `podman-compose` under Podman. See **[@docs/podman.md](docs/podman.md)**.
821
823
822
824
**Docker Build Guidelines:**
823
825
- Use `docker compose build` (or `podman-compose build`) without `--no-cache` by default for faster builds
0 commit comments