This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
The Portainer dev-toolkit is a containerized development environment for Portainer development. It provides a devcontainer-based setup on Ubuntu 24.04 that can be used with any IDE supporting the devcontainer specification.
- Go (v1.25.1) - Portainer backend development
- Docker CLI (v28.4.0) - Container management via mounted host socket
- Node.js (v18.20.4) + Yarn (v1.22.22) - Portainer frontend development
- golangci-lint (v2.4.0) - Go code linting
# Build and push multi-arch base image (requires DockerHub auth)
make base
# Build single-arch images
make base-amd64
make base-arm64
# Build custom user toolkit
make alapenna
make alapenna-ghosttyOnce inside the devcontainer:
# Install dependencies and build client+server
make build-all
# Run the backend
./dist/portainer --data /tmp/portainer --log-level=DEBUG
# Run client in dev mode (for frontend changes)
make dev-clientDockerfile- Base image with all development toolsdevcontainer.json- Devcontainer config; mounts Docker socket at/var/run/docker.sockfor container operations from within the devcontainerpost-start.sh- Runs on container start; cleans /tmp files older than 8 hours to prevent disk bloat from builds
Ports exposed via devcontainer.json: 8000, 8999, 9000, 9443 (Portainer's default ports)
examples/- Reference customizations (zsh, Python extension)user-toolkits/- Personal configurations extending the base image
GitHub Actions workflow builds multi-arch images (amd64, arm64) on tag push and publishes to portainer/dev-toolkit on DockerHub.
- Reference
examples/zsh/Dockerfileoruser-toolkits/alapenna/Dockerfileas starting points - Create a Dockerfile extending
portainer/dev-toolkit:2025.12 - Build:
docker buildx build -t my-devkit -f path/to/Dockerfile . - Update
devcontainer.jsonimage field to use your custom image
Current version: VERSION=2025.09 in Makefile. Releasing:
- Update VERSION in Makefile
- Create and push a git tag matching the version
- GitHub Actions automatically builds and pushes multi-arch images to DockerHub