A deterministic AI agent orchestrator - full-stack, single repo.
Arc runs as a Dockerized full-stack app: PostgreSQL, the .NET 8 API, and the built React frontend are started together with Docker Compose. For active development, the frontend can also run separately with Vite proxying API calls.
| Tool | Version |
|---|---|
| Docker Desktop | any recent |
.NET 8 and Node.js 18+ are only needed for non-Docker local development.
Important
Before starting, open Docker Desktop or ensure the Docker daemon is running. If Docker is not running, setup may fail with connection errors, failed builds, or application startup issues.
git clone https://github.com/Koech01/arc arc && cd arc
# Create .env and verify Docker Desktop is running
./setup.sh
# Build and start the app + PostgreSQL
make upOpen http://localhost:5266.
Default admin:
admin@arc.com
Str0ng#Arc$99
Use Ctrl+C to stop the foreground Docker logs, or run make up-detached to start the stack in the background.
arc/
├── backend/ ← .NET 8 Clean Architecture API
└── frontend/ ← React + Vite + Tailwind SPA
The Vite dev server proxies /api/* to http://localhost:5266, so the frontend API base URL never needs changing during development.
make setup-dev # install frontend and backend dependencies
make dev # start PostgreSQL in Docker, then local API + Vite
make stop # stop Docker containersWork in frontend/src and backend/src as you normally would in each project.
make build # builds frontend → backend/src/Arc.Api/wwwroot, then publishes .NET app
make start # runs the published binary - serves API + SPA on :5266The single binary at backend/publish/Arc.Api.dll serves everything.
./setup.sh creates .env from .env.example if it does not already exist. The defaults are intended for local Docker evaluation. All backend settings follow the Section__Key convention and map directly to appsettings.json.
| Variable | Description |
|---|---|
ConnectionStrings__PostgreSQL |
Full Postgres connection string |
Jwt__SecretKey |
JWT signing key; demo default works locally, replace for real deployments |
AdminAccount__Password |
Initial admin password - change after first login |
LLM__DefaultApiKey |
Optional default LLM provider key |
PostgreSQL is required and is started by Docker Compose.
This project uses isolated Docker resources to avoid conflicts with other local environments.
| Resource | Name |
|---|---|
| App container | arc_mono_app |
| Container | arc_mono_postgres |
| Volume | arc_mono_postgres_data |
| Database | arc_mono_db |
| User | arc_mono_user |
make up # build and start app + PostgreSQL
make up-detached # start in the background
make logs # follow container logs
make ps # show container status
make stop # stop containers
make reset # stop containers and remove the database volumeTo fully reset the database:
make reset
make upcd backend && dotnet test # all tests
cd backend && dotnet test tests/Arc.UnitTests # unit only
cd backend && dotnet test tests/Arc.IntegrationTestsMIT - see LICENSE.