Skip to content

Repository files navigation

Flotilla

Backend Frontend Codacy Badge

Flotilla is the main point of access for operators to interact with multiple robots in multiple facilities. The application consists of a frontend in React, a backend in ASP.NET, and a Mosquitto MQTT broker.

Prerequisites

Tool Version Needed for
Docker and Docker Compose latest Running the full stack
.NET SDK 10.x Running the backend directly
Node.js 24.x Running the frontend directly
pnpm latest Frontend package management
make any The shorthand commands below
Installing make on MacOS
brew install make
Installing make on Windows
choco install make

Quick start

For development, fork the repository first. Then clone it:

git clone https://github.com/equinor/flotilla
cd flotilla

Create the local configuration files:

./setup.sh

The script creates frontend/.env, backend/api/.env, and broker/.env from their .env.example files. It prompts you for the MQTT broker server key, which is found in our key vault. Everything else can be configured manually afterwards — see Configuration.

Start the full stack:

make compose      # docker compose up --build
Service URL
Frontend http://localhost:3001
Backend Swagger http://localhost:8000/swagger
Aspire dashboard http://localhost:18888

To run a single component instead, see the frontend, backend, and broker guides.

Configuration

Each component reads its configuration from a .env file. The matching .env.example file is the source of truth for the available variables.

Component File Template Notes
Frontend frontend/.env frontend/.env.example Variables must be prefixed with VITE_ to reach the application.
Backend backend/api/.env backend/api/.env.example Set Local__DevUserId to your own user id for local development.
Broker broker/.env broker/.env.example TLS_SERVER_KEY is a secret and is found in our key vault.

Note on Docker: backend/api/.env is only read when the backend is run directly (make run). The backend container does not load it — docker-compose.yml sets ASPNETCORE_ENVIRONMENT=Development and reads AZURE_CLIENT_SECRET from a .env file in the repository root, which setup.sh does not create. To run the full stack against Azure AD you currently have to add AZURE_CLIENT_SECRET=... to a root .env yourself.

Other make commands

Common commands are defined in the root Makefile, the backend Makefile, and the frontend Makefile:

make compose         # run the full stack in Docker
make broker          # run only the MQTT broker
make broker-aspire   # run the broker, OpenTelemetry collector, and Aspire dashboard

Deployments

We currently have 3 environments (Development, Staging, and Production) deployed to AKS under robotics.equinor.com.

Environment Deployment Status
Development Frontend
Backend
Dev
Staging Frontend
Backend
Staging
Production Frontend
Backend
Production

Contributions

Equinor welcomes all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. Please initiate your contribution by creating an issue or by forking the project and making a pull request. Commit messages shall be written according to this guide.

About

Flotilla is the main point of access for operators to interact with multiple robots in a facility.

Resources

Security policy

Stars

19 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages