Opinionated application template focused on repeatable quality: tested workflows, semantic releases, and automatic template drift correction.
Aspect | What You Get |
---|---|
CI/CD | GitHub Actions pipelines & template sync |
Consistency | Automatic sync of core config & workflow files to app repos (opt‑in via topic) |
Quality | Conventional Commits + Semantic Versioning scaffolding |
Documentation | TechDocs-ready structure for internal/platform portals |
Security | Encrypted secrets handling via SOPS + age |
Developer UX | Pre-configured editor & workflow automation |
- Automated template file synchronization (opt‑in per repo by GitHub topic)
- Semantic release readiness (
.releaserc.json
included) - Encrypted secrets workflow (age / SOPS)
- Curated GitHub workflow set (docs changes, source changes)
- Opinionated baseline configs: EditorConfig, VSCode settings, .gitignore
- Structured test categories (unit, integration, functional, contract, e2e, smoke, performance, behavioral)
Foundation repository for bootstrapping internal / external application services with consistent engineering guardrails. Replace the placeholder service specifics with your domain logic while retaining the shared operational workflows.
This repository serves as a template that can automatically sync certain files to application repositories. To enable template sync for your application repository, add the application
topic to your repository.
Synced Files Include:
Category | Files |
---|---|
Workflows | .github/workflows/*.yml (selected core automation) |
Config | .editorconfig , .gitignore , .releaserc.json |
Dev UX | .vscode/settings.json |
These represent the "source of truth"; local divergent changes in target repos will be overwritten (review PRs carefully).
For detailed information, see the Template Sync Documentation.
make init-encrypt
Creates:
age.agekey
→ add to repo secretSOPS_AGE_KEY
age.pubkey
→ used for encryption
Add plaintext secrets to:
ops/secrets/application-application-secrets/values.dec.yaml
Encrypt them:
make encrypt-secrets SECRETS_DIR=./ops/secrets/application-application-secrets
This produces values.sops.yaml
(commit this).
docker compose up --build
docker compose down --remove-orphans --volumes
Contributions welcome! Please:
- Open an issue describing the change
- Use Conventional Commits for branch + commit messages
- Add / adjust tests where behavior changes
- Update docs (README / TechDocs / ADRs) when altering architecture
- Add coverage reporting & badge
- Introduce example service code scaffolding
- Provide k6 performance test harness
- Optional Terraform module integration
Distributed under the terms of the MIT license. See LICENSE
for details.