DevRail
v1is stable. See STABILITY.md for component status.
DevRail developer toolchain container image — a single Docker image containing all linters, formatters, security scanners, and test runners for Python, Bash, Terraform, Ansible, Ruby, Go, and JavaScript/TypeScript projects.
-
Pull the image:
docker pull ghcr.io/devrail-dev/dev-toolchain:v1
-
Run checks against your project:
docker run --rm -v "$(pwd):/workspace" -w /workspace ghcr.io/devrail-dev/dev-toolchain:v1 make _check -
Or use the Makefile in your DevRail-configured project:
make check
Run make help to see all available targets:
build Build the container image locally
check Run all checks (lint, format, security, scan, test)
format Run formatters for declared languages
help Show this help
init Scaffold config files for declared languages
lint Run linters for declared languages
scan Run universal scanning (trivy, gitleaks)
security Run language-specific security scanners
test Run project test suite
| Category | Tools |
|---|---|
| Python | ruff, bandit, semgrep, pytest, mypy |
| Bash | shellcheck, shfmt, bats |
| Terraform | tflint, tfsec, checkov, terraform-docs, terraform |
| Ansible | ansible-lint, molecule |
| Ruby | rubocop, reek, brakeman, bundler-audit, rspec, sorbet |
| Go | golangci-lint, gofumpt, govulncheck, go test |
| JavaScript/TS | eslint, prettier, typescript, vitest, npm audit |
| Security | trivy, gitleaks |
Projects configure their language support via .devrail.yml:
languages:
- python
- bash
- terraform
- ansible
- ruby
- go
- javascript- Base image: Debian bookworm-slim (multi-arch: amd64 + arm64)
- Go builder stage: Compiles Go-based tools (tflint, terraform-docs, etc.)
- Modular install scripts: One script per language ecosystem
- Shared libraries:
lib/log.sh(logging) andlib/platform.sh(platform detection)
See DEVELOPMENT.md for development setup and contributing guidelines.
To add a new language ecosystem, see the Contributing to DevRail guide.