Installation¶
Requirements¶
- Go 1.26+
- CGO_ENABLED=0 — the framework uses pure-Go SQLite (
modernc.org/sqlite), no C compiler needed
Install the CLI (optional)¶
The burrow CLI scaffolds new projects, generates contrib-style apps,
and wraps Tailwind v4 builds. It's not required to use the framework
— you can go get the library directly — but it removes a lot of
boilerplate:
go install github.com/oliverandrich/burrow/cmd/burrow@latest
burrow new myapp --module github.com/you/myapp
cd myapp && mise run setup && mise run dev
Without mise, use the go mod tidy && go run ./cmd/myapp flow the scaffold prints instead.
See Tooling for the full sub-command reference.
Create a Project¶
This creates a Go module and pulls the burrow package with all contrib apps. Import only what you need:
import (
"github.com/oliverandrich/burrow"
"github.com/oliverandrich/burrow/contrib/session"
"github.com/oliverandrich/burrow/contrib/auth"
"github.com/oliverandrich/burrow/contrib/healthcheck"
)
Key Dependencies¶
The framework builds on these libraries — you'll interact with them when building apps:
| Library | Purpose |
|---|---|
| Chi v5 | HTTP router and middleware (stdlib-compatible) |
| Den | Object-document mapper (ODM) with SQLite and PostgreSQL backends |
html/template |
Go's standard template engine with auto-escaping |
| urfave/cli | CLI flags, env vars, subcommands |
Verify¶
Create a minimal main.go to check that everything works:
package main
import (
"context"
"log"
"os"
"github.com/oliverandrich/burrow"
"github.com/oliverandrich/burrow/contrib/healthcheck"
_ "github.com/oliverandrich/den/backend/sqlite" // register sqlite:// scheme
"github.com/urfave/cli/v3"
)
func main() {
srv := burrow.NewServer(healthcheck.New())
cmd := &cli.Command{
Flags: srv.Flags(nil),
Action: srv.Run,
}
if err := cmd.Run(context.Background(), os.Args); err != nil {
log.Fatal(err)
}
}
go mod tidy
go run main.go
# time=... level=INFO msg="starting server" host=localhost port=8080 ...
# Visit http://localhost:8080/healthz/live → "ok"
See Quick Start for a more complete example.