Scaffold a gcx Project
Scaffold a new Go project for managing Grafana resources as code using
gcx dev scaffold.
Prerequisites
Verify gcx is installed:
gcx --version
If missing, see the setup-gcx skill.
Scaffolding
Interactive Mode (recommended for first-time users)
gcx dev scaffold
Prompts for:
- Project name - becomes the directory name (kebab-cased)
- Go module path - e.g.
github.com/myorg/my-dashboards
Non-Interactive Mode
gcx dev scaffold --project my-dashboards --go-module-path github.com/myorg/my-dashboards
What Gets Generated
my-dashboards/
├── .github/workflows/deploy.yaml # CI/CD workflow for gcx push
├── .gitignore
├── go.mod
├── main.go # Entrypoint — registers all resources
├── internal/
│ └── dashboards/
│ ├── all.go # Registry function returning all manifests
│ └── sample.go # Example dashboard using foundation-sdk builders
└── README.md
Next Steps After Scaffolding
cd my-dashboards && go mod tidy- Configure gcx:
gcx config set stacks.default.grafana.server <URL>,gcx config set stacks.default.grafana.token <TOKEN>, andgcx config set contexts.default.stack default - Edit
internal/dashboards/sample.goor generate new stubs withgcx dev generate - Push to Grafana:
gcx resources push
Common Issues
| Issue | Fix |
|---|---|
go mod tidy fails |
Ensure your Go toolchain meets the version required by the generated go.mod |
| Project name has spaces | Names are auto-kebab-cased; spaces become hyphens |
| Want to add alert rules | Create internal/alerts/ and use gcx dev generate alerts/my-rule.go |