Introduction

Local development

Backend (Ciel)

From the Ciel-backend repository root:

cargo build
cargo check
APP_MODE=api cargo run      # HTTP API
APP_MODE=worker cargo run   # Media worker (needs queue + storage)
APP_MODE=combined cargo run # API + worker in one process

Use a .env file or export variables matching .env.example (database URL, Redis, S3, queue, PASETO keys, etc.).

For serverless-style media execution (HTTP-triggered worker endpoint):

APP_MODE=serverless-worker cargo run

Full stack with Docker

docker compose up --build

Brings up Postgres, Redis, LocalStack (S3 + SQS), the API, and the worker. Migrations run as part of the stack.

Optional seeding:

bash docker/seed/seed.sh
bash docker/seed/upload_media.sh

Default demo credentials after seed (if unchanged): demo@example.com / ChangeMe123!


Health check

curl -s http://localhost:8080/health

Metrics endpoint:

curl -s http://localhost:8080/metrics

Clients

  • iOS — Build in Xcode; point the app at your local API base URL.
  • Android./gradlew assembleDebug; configure base URL for your machine or emulator networking.

This docs site

cd docs-site
npm install
npm run dev

Static export for hosting: npm run build produces the out/ directory (see Docs deployment).

Previous
Overview