60 lines
2.3 KiB
Markdown
60 lines
2.3 KiB
Markdown
# Cloudlysis (monorepo)
|
|
|
|
Production-oriented, multi-service Rust workspace with an operator-facing Control Plane (API + Admin UI), S3-backed document storage, and an optional observability stack for local parity.
|
|
|
|
## Quickstart (local dev)
|
|
|
|
Core stack (includes MinIO + MailHog + Control Plane):
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
Full local stack with observability (Grafana/Loki/Tempo/VictoriaMetrics):
|
|
|
|
```bash
|
|
docker compose --profile observability up -d --build
|
|
```
|
|
|
|
Full local stack + Loki/Tempo using MinIO (S3 mode):
|
|
|
|
```bash
|
|
docker compose -f docker-compose.yml -f observability/docker-compose.s3.yml --profile observability up -d --build
|
|
```
|
|
|
|
## Local endpoints
|
|
- **Control UI**: `http://localhost:8082`
|
|
- **Control API**: `http://localhost:38080`
|
|
- **Grafana** (observability profile): `http://localhost:3000`
|
|
- **MailHog UI**: `http://localhost:8025` (SMTP on `localhost:1025`)
|
|
- **MinIO console**: `http://localhost:9001` (S3 API on `localhost:9000`)
|
|
|
|
## Repository layout (high level)
|
|
- **Rust services (Cargo workspace)**: `aggregate/`, `gateway/`, `projection/`, `runner/`, `control/api/`, `shared/`
|
|
- **Admin UI**: `control/ui/`
|
|
- **Docker / Swarm / Compose**: `docker/`, `docker-compose.yml`, `swarm/`, `observability/`
|
|
|
|
## Production (overview)
|
|
- **Control plane Swarm stack**: `swarm/stacks/control-plane-prod.yml`
|
|
- **S3 docs buckets**: `CONTROL_S3_BUCKET_DOCS` supports a comma-separated shard set (e.g. `cloudlysis-docs-0,cloudlysis-docs-1,cloudlysis-docs-2`). Bucket selection is deterministic per-tenant; keep the full shard set stable to avoid remapping tenants.
|
|
- **S3 provisioning helpers** (idempotent scripts; CI/CD friendly):
|
|
- `docker/scripts/s3_create_docs_bucket.sh`
|
|
- `docker/scripts/s3_apply_lifecycle_docs.sh`
|
|
- `docker/scripts/s3_verify_docs.sh`
|
|
- Gitea Actions workflow: `.gitea/workflows/s3-provision.yml`
|
|
|
|
## Docs
|
|
- **Docker / local dev / Swarm**: `DOCKER.md`
|
|
- **Developer docs**: `docs/developer/setup.md`, `docs/developer/testing.md`
|
|
- **Architecture**: `docs/architecture/overview.md`, `docs/architecture/transport.md`
|
|
- **Usage**: `docs/usage/quickstart.md`, `docs/usage/api.md`, `docs/usage/nats.md`
|
|
|
|
## Workspace verification
|
|
|
|
```bash
|
|
cargo fmt --check
|
|
cargo clippy --workspace --all-targets -- -D warnings
|
|
cargo test --workspace
|
|
cd control/ui && npm ci && npm run lint && npm run typecheck && npm run test && npm run build
|
|
```
|