Skip to main content

System Requirements

Before setting up the local development environment, ensure you have the following software installed and added to your system PATH.

Required Software

Docker is required for building and running containers.Installation: Docker Installation GuideVerify installation:
docker --version
Go is required for building the backend modules.Required Version: 1.24.0 or higherInstallation: Download GoVersion Reference: Check modules/go.work for the exact required versionVerify installation:
go version
Node.js is required for the web frontend development.Required Version: 18.14.0 or higherInstallation: Node.js DownloadsVersion Reference: Check modules/web/package.json for the exact required versionVerify installation:
node --version
Yarn is the package manager used for JavaScript dependencies.Required Version: 3.3.0Installation: Yarn Installation GuideVersion Reference: Check modules/web/.yarnrc.yml for the exact required versionVerify installation:
yarn --version

Initial Setup

After cloning the repository, follow these steps to set up your development environment:

1. Install Web Dependencies

Navigate to the web module and install JavaScript dependencies:
cd modules/web && yarn
This will install all the dependencies defined in package.json.

2. Install Development Tools

Install required development tools:
make tools
This will install additional tools needed for development, including linters and code quality tools.

Development Workflows

Starting Development Server

The primary way to run the dashboard during development is using the serve target:
make serve
This command will:
  • Ensure all required tools are installed
  • Clean up temporary directories
  • Create a local kind cluster (if not already created)
  • Install metrics-server in the cluster
  • Build and start all modules using Docker Compose
  • Make the dashboard available at http://localhost:8080
The development server uses hot-reloading for the frontend, so changes to the code will be automatically reflected.

Port Requirements

Make sure the following ports are free on your localhost:
PortServiceUsed By
8080Web HTTPDevelopment server (make serve)
8443Gateway HTTPSProduction server (make run)
443HTTPSHelm installation (make helm)

Running Production Mode

To test the production build locally:
make run
This will:

Dependency Management

Go Dependencies

The project uses go mod to manage Go dependencies. Best Practices:
  • Use only official releases
  • Avoid using specific or latest commits
  • Run go mod tidy before committing changes to remove unused dependencies

JavaScript Dependencies

The project uses Yarn to manage JavaScript dependencies. Best Practices:
  • All dependencies are tracked in modules/web/package.json
  • Lock file (yarn.lock) ensures consistent installations
  • The project uses Yarn 3.3.0 with node-modules linker

Automated Updates

The project uses Dependabot to automate dependency updates, ensuring security patches and updates are applied regularly.

Development Tools

The project includes several tools to ensure code quality:

Linters

  • golangci-lint - Go code linting
  • eslint - TypeScript/JavaScript linting
  • stylelint - CSS/SCSS linting
  • prettier - Code formatting

Running Checks

Run all checks before submitting a pull request:
make check
This will run all available checks across all modules.

Auto-fixing Issues

Many linting issues can be automatically fixed:
make fix
This will run auto-fix scripts across all modules.

Next Steps

Building

Learn how to build Docker images and production artifacts

Testing

Run tests and ensure code quality

Build docs developers (and LLMs) love