A visual web console to manage your Floci local AWS emulator — built with React and .NET 8.
Floci Dashboard gives you a browser UI to interact with Floci — a local AWS emulator that runs in Docker. Instead of running AWS CLI commands manually, you get a point-and-click interface for S3, SQS, DynamoDB, Lambda, and CloudWatch.
Browser → React UI :5173 → .NET API :5000 → Floci :4566
| Service | Operations |
|---|---|
| S3 | Browse buckets, upload/download/delete objects, view metadata |
| SQS | Create queues, send/receive/delete messages, purge |
| DynamoDB | Create tables, insert/scan/delete items, get by key |
| Lambda | List functions, view config, invoke with custom payload |
| CloudWatch | Browse log groups, streams, and filter log events |
| Health | Connection status, service discovery |
- Floci running on
localhost:4566 - Docker Desktop — for the Docker option
- .NET 8 SDK + Node.js 18+ — for the dev option
No .NET or Node required. Just Docker and Floci.
git clone https://github.com/vituBIG/floci-dashboard.git
cd floci-dashboard
docker-compose up -dFloci must be running on your host at
localhost:4566. The backend connects to it viahost.docker.internal:4566automatically.
To point to a different Floci host:
Floci__Endpoint=http://<host>:4566 docker-compose up -dFor local development with hot-reload.
1. Start Floci:
docker run -d --name floci -p 4566:4566 `
-v /var/run/docker.sock:/var/run/docker.sock `
-v ${PWD}/data/floci:/app/data `
-e FLOCI_DEFAULT_REGION=us-east-1 `
-u root floci/floci:latest2. Run everything with one script (Windows):
.\start.ps1Opens the backend and frontend each in their own terminal window.
Or manually:
# Terminal 1 — backend
cd backend/FlociDashboard.Api
dotnet run
# Terminal 2 — frontend
cd frontend
npm install
npm run dev| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:5000 |
| Swagger | http://localhost:5000/swagger |
| Floci | http://localhost:4566 |
floci-dashboard/
├── backend/
│ └── FlociDashboard.Api/ .NET 8 Minimal API
│ ├── Endpoints/ Route handlers per service
│ ├── Services/ AWS SDK wrappers
│ ├── Models/ Request/response DTOs
│ └── Options/ FlociOptions (endpoint, region, keys)
├── frontend/
│ └── src/
│ ├── api/ Typed axios clients per service
│ ├── components/ Shared UI components
│ └── pages/ One page per AWS service
├── docs/
│ ├── api-contract.md Full API reference
│ ├── floci-service-matrix.md Service compatibility notes
│ └── known-limitations.md Differences vs real AWS
├── docker-compose.yml Backend + frontend (Dockerized)
└── start.ps1 Dev mode launcher (Windows)
Floci accepts any credentials — no real AWS account needed.
The dashboard itself requires no setup here. It manages credentials internally. These options are only relevant if you also want to run AWS CLI commands from your terminal directly against Floci.
Option 1 — AWS credentials file on your host machine:
# Linux / macOS
mkdir -p ~/.aws
cat > ~/.aws/credentials <<EOF
[default]
aws_access_key_id = test
aws_secret_access_key = test
EOF
cat > ~/.aws/config <<EOF
[default]
region = us-east-1
EOF# Windows PowerShell
New-Item -ItemType Directory -Force "$env:USERPROFILE\.aws" | Out-Null
@"
[default]
aws_access_key_id = test
aws_secret_access_key = test
"@ | Set-Content "$env:USERPROFILE\.aws\credentials"
@"
[default]
region = us-east-1
"@ | Set-Content "$env:USERPROFILE\.aws\config"Replace test / us-east-1 with your preferred values if needed.
Option 2 — Environment variables in your terminal session:
# Linux / macOS
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
export AWS_ENDPOINT_URL=http://localhost:4566# Windows PowerShell
$env:AWS_ACCESS_KEY_ID = "test"
$env:AWS_SECRET_ACCESS_KEY = "test"
$env:AWS_DEFAULT_REGION = "us-east-1"
$env:AWS_ENDPOINT_URL = "http://localhost:4566"Option 3 — Inline with each AWS CLI command:
aws --endpoint-url=http://localhost:4566 \
--region us-east-1 \
s3 lsA stale backend process is occupying the port. Kill it:
Get-Process -Name "FlociDashboard.Api" | Stop-Process -ForceCheck the backend console output. The most common cause is Floci not being reachable at the configured endpoint.
Make sure Floci was started with the -v volume flag pointing to a local directory (see the dev mode start command above). If started without a volume, data lives in memory and is lost on restart.
Pull requests are welcome. For major changes, open an issue first.