Title here
Summary here
Thank you for contributing! This guide covers the essentials to get you started.
| Tool | Version | Purpose |
|---|---|---|
| Go | 1.25.7 (see .go-version) | Build and run the project |
| Task | any | Build automation |
| Docker | 24+ | Service management and E2E tests |
| Node.js | >=18 | Documentation generation |
| Hugo | >=0.148.1 extended | Documentation site |
Go — install via goenv (recommended):
# macOS
brew install goenv
# then task setup will install and activate the correct version automaticallyOr download directly from go.dev/dl if you don’t use a version manager.
Task — taskfile.dev:
# macOS
brew install go-task
# Linux / Windows: see https://taskfile.dev/installation/Auto-installed by task:
golangci-lintandgoimportsare installed automatically when you runtask lintortask fmt— no manual installation needed.
# 1. Fork and clone
git clone https://github.com/your-username/otto-stack.git
cd otto-stack
# 2. Check prerequisites, install dependencies, and configure Git hooks
task setup
# 3. Build
task build
# 4. Run tests
task test
# 5. Verify
./build/otto-stack versiontask test and task lintinternal/config/services/{category}/internal/config/services/database/postgres.yaml)task docs to regenerate documentationtask docs-serveService categories:
database/ - Databases (postgres, mysql)cache/ - Caching (redis)messaging/ - Message queues (kafka)observability/ - Monitoring (prometheus, jaeger)cloud/ - Cloud emulation (localstack)Auto-generated (regenerated from source, don’t edit):
docs-site/content/cli-reference.md - From CLI commandsdocs-site/content/services.md - From service YAML filesdocs-site/content/configuration.md - From service schemasdocs-site/content/_index.md - From root README.mddocs-site/content/contributing.md - From root CONTRIBUTING.mdManual (edit directly):
docs-site/content/setup.md - Installation instructionsdocs-site/content/troubleshooting.md - Common issuesTo regenerate documentation:
# Full regeneration
task docs
# Skip CLI build (faster for quick iterations)
cd docs-site && npm run generate -- --skip-build
# Generate specific doc only
cd docs-site && npm run generate -- --generator=services-guide
# Preview changes
task docs-servetask test and task lintFollow conventional commits (see docs/RELEASING.md for details):
type(scope): descriptionTypes: feat, fix, docs, refactor, test, chore
Examples:
feat(services): add MySQL servicefix(cli): resolve network creation issuedocs: update setup instructionsdocs-site/ or run otto-stack helpotto-stack doctor for diagnosticsWe review for:
We appreciate your contributions! 🙏