Installation
Get up and running with Nimbus in a few minutes. This guide covers the CLI install, project creation, and manual setup.
Prerequisites
- Go 1.26 or later — download from go.dev/dl.
- Git — for version control and fetching dependencies.
$HOME/go/binin yourPATHso installed Go binaries are available globally.
Verify your Go installation:
go version
# go version go1.26.0 (or later)
Install the Nimbus CLI
The CLI provides commands for creating apps, running the dev server, and generating code.
go install github.com/CodeSyncr/nimbus/cmd/nimbus@latest
If you are working from a local clone of the Nimbus repository, you can install directly:
cd /path/to/nimbus
go install ./cmd/nimbus
Make sure $HOME/go/bin is in your PATH. For zsh, add to ~/.zshrc:
export PATH="$HOME/go/bin:$PATH"
Create a New App
Scaffold a fresh Nimbus project with the new command:
nimbus new myapp
cd myapp
This creates a ready-to-run project with a Laravel-inspired folder structure:
myapp/
bin/server.go # Boot sequence (config, middleware, routes, DB)
start/kernel.go # Middleware registration
start/routes.go # Route definitions
config/ # Environment-driven configuration
app/controllers/ # HTTP controllers
views/ # .nimbus templates
main.go # Minimal entrypoint (do not modify)
Install Dependencies
go mod tidy
Run the Dev Server
Start the development server with hot reload:
nimbus serve
The server starts at http://localhost:3333 (configurable via .env). File changes are detected automatically and the server restarts.
Manual Setup (without CLI)
You can add Nimbus to any existing Go project manually:
go get github.com/CodeSyncr/nimbus@latest
For a quick start without the full folder structure, a single-file app works:
package main
import (
"github.com/CodeSyncr/nimbus"
"github.com/CodeSyncr/nimbus/http"
"github.com/CodeSyncr/nimbus/middleware"
)
func main() {
app := nimbus.New()
app.Router.Use(middleware.Logger(), middleware.Recover())
app.Router.Get("/", func(c *http.Context) error {
return c.JSON(http.StatusOK, map[string]string{"hello": "nimbus"})
})
app.Run()
}
However, for production apps we recommend using nimbus new which generates the full Laravel-inspired structure with bin/server.go, start/kernel.go, and start/routes.go.
Environment
Create a .env file in your project root (the CLI creates one for you):
PORT=3333
APP_ENV=development
APP_NAME=myapp
DB_DRIVER=sqlite
DB_DSN=database.sqlite
Run with nimbus serve for hot reload, or go run main.go to run directly.