Skip to content

OctavoBit/floci-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Floci Dashboard

A visual web console to manage your Floci local AWS emulator — built with React and .NET 8.

.NET 8 React 18 Docker MIT License


What is this?

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

Features

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

Requirements

  • Floci running on localhost:4566
  • Docker Desktop — for the Docker option
  • .NET 8 SDK + Node.js 18+ — for the dev option

Quick start — Docker

No .NET or Node required. Just Docker and Floci.

git clone https://github.com/vituBIG/floci-dashboard.git
cd floci-dashboard
docker-compose up -d

Open http://localhost:5173

Floci must be running on your host at localhost:4566. The backend connects to it via host.docker.internal:4566 automatically.

To point to a different Floci host:

Floci__Endpoint=http://<host>:4566 docker-compose up -d

Quick start — Dev mode

For 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:latest

2. Run everything with one script (Windows):

.\start.ps1

Opens 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

Project structure

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)

Dummy credentials (local only)

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 ls

Troubleshooting

Port 5000 already in use

A stale backend process is occupying the port. Kill it:

Get-Process -Name "FlociDashboard.Api" | Stop-Process -Force

Backend starts but Swagger returns 500

Check the backend console output. The most common cause is Floci not being reachable at the configured endpoint.

Data not persisting after Docker restart

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.


Contributing

Pull requests are welcome. For major changes, open an issue first.

License

MIT

About

A visual web console to manage you Floci local AWS emulator ---- built with React and .NET 8,

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors