Skip to content

Developer Setup Guide

This guide provides comprehensive instructions for setting up a local development environment to contribute to the Edge Computing LLM platform.

Prerequisites

Before you begin, ensure your local development machine meets the following requirements:

  • Operating System: Ubuntu 22.04 LTS or 24.04 LTS recommended
  • Go Toolchain: Go 1.22+ installed
  • Git: Installed and configured
  • Make: GNU Make
  • Docker/Podman: For building container images and running local services
  • Pre-commit: Python package for managing pre-commit hooks
  • Node.js: For running the Zensical documentation site locally

1. Install Go Toolchain

The project CLI tools (edge-cli, k3s-nvidia-edge) are built using Go.

# Remove any existing Go installation
sudo rm -rf /usr/local/go

# Download Go 1.22 (adjust version as needed)
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

# Extract to /usr/local
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# Add to your ~/.bashrc or ~/.zshrc
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Verify the installation:

go version

2. Clone Repositories

The platform spans multiple repositories. We recommend creating a dedicated directory for all related projects.

mkdir -p ~/projects/edge-llm
cd ~/projects/edge-llm

# Core Platform Tools
git clone https://github.com/your-org/edge-cli.git
git clone https://github.com/your-org/k3s-nvidia-edge.git

# Observability and Tests
git clone https://github.com/your-org/llm-observability-stack.git
git clone https://github.com/your-org/gguf-observability.git
git clone https://github.com/your-org/edge-llm-tests.git

# Models and App
git clone https://github.com/your-org/edge-computing-openai.git

# Documentation
git clone https://github.com/your-org/Edge-Computing-LLM-Documentation.git

3. Configure Pre-commit Checks

We use pre-commit to ensure code quality and formatting before commits are created.

# Install pre-commit (if not already installed)
pip install pre-commit

# In each repository, run:
cd ~/projects/edge-llm/edge-cli
pre-commit install

Typical checks include: - gofmt and golangci-lint for Go code - yamllint for YAML files - markdownlint for documentation - Trailing whitespace and end-of-file fixers

4. IDE Configuration

Visual Studio Code

We highly recommend VS Code with the following extensions: - Go (golang.go) - YAML (redhat.vscode-yaml) - Prettier (esbenp.prettier-vscode) - Markdown All in One (yzhang.markdown-all-in-one)

Recommended .vscode/settings.json for Go projects:

{
  "go.lintTool": "golangci-lint",
  "go.lintFlags": [
    "--fast"
  ],
  "go.formatTool": "gofumpt",
  "go.useLanguageServer": true,
  "[go]": {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  }
}

5. Working with Makefile Targets

Each Go repository contains a Makefile with standard targets.

# Install dependencies
make deps

# Format code
make fmt

# Run linters
make lint

# Run tests
make test

# Build binaries
make build

[!TIP] Always run make fmt lint test before submitting a Pull Request.

6. Documentation Site Local Development

The documentation site is built using Zensical (based on Hugo/Docusaurus).

cd ~/projects/edge-llm/Edge-Computing-LLM-Documentation

# Install dependencies
npm install

# Run the local development server
npm run dev

The site will be available at http://localhost:3000. Changes to markdown files in the docs/ directory will automatically reload the site.

7. Next Steps