Thanks for your interest in contributing to DeployDeck! This guide will help you get started.
- Go 1.22+
- Docker and Docker Compose
- Git
git clone https://github.com/esteban-ams/deploydeck.git
cd deploydeck
go mod download
make buildcp config.example.yaml config.yaml
# Edit config.yaml with your services
make runmake test- Use the Bug Report issue template
- Include your DeployDeck version, OS, and deploy mode
- Provide relevant config (redact secrets) and logs
- Use the Feature Request issue template
- Explain the problem you're trying to solve
- Suggest a solution if you have one
- Fork the repository
- Create a branch from
main(git checkout -b feat/my-feature) - Make your changes
- Run tests (
make test) - Run formatting (
gofmt -w .) - Commit using the commit convention
- Push and open a PR
- Run
gofmton all Go files - Run
go vet ./...before committing - Use table-driven tests
- Wrap errors with context:
fmt.Errorf("doing thing: %w", err) - Keep functions focused and short
- Document exported functions
Use Conventional Commits:
feat: add notification support
fix: handle empty webhook payload
docs: update API reference
test: add config validation tests
refactor: extract health check logic
chore: update dependencies
cmd/deploydeck/ # Application entry point
internal/
config/ # YAML config + env overrides
webhook/ # HTTP handlers + auth + payload parsing
deploy/ # Deployment engine + health checks
docker/ # Docker CLI wrapper
git/ # Git clone for build mode
See docs/CODE_OVERVIEW.md for a detailed codebase tour.
By contributing, you agree that your contributions will be licensed under the MIT License.