This repository boilerplate uses Go + Fiber (no ORM), pure SQL migrations & seeders, Swagger (swaggo + fiber-swagger), and a Makefile to orchestrate common tasks.
go-fiber-postgres-boilerplate/
├── Makefile
├── .env.example
├── go.mod
├── go.sum
├── main.go
├── README.md
├── internal/
│ ├── config/
│ │ └── config.go
│ ├── db/
│ │ └── db.go
│ ├── models/
│ │ └── auth.go
│ │ └── user.go
│ ├── middleware/
│ │ └── middleware.go
│ ├── router/
│ │ └── router.go
│ ├── repository/
│ └── user_repository.go
│ ├── handlers/
│ │ └── auth_handler.go
│ │ └── user_handler.go
│ └── utils/
│ └── response.go
├── migrations/
│ ├── 0001_create_users_table.up.sql
│ ├── 0001_create_users_table.down.sql
└── docs/
│ ├── docs.go
│ ├── swagger.json
│ ├── swagger.yaml
Copy .env.example to .env and update DB connection.
APP_ENV=development
APP_PORT=8080
DATABASE_URL=postgres://postgres:password@localhost:5432/mydb?sslmode=disable
make depsmake migrate-upmake seedmake runVisit Swagger at: http://localhost:8080/swagger/index.html (after running make swag-init).
- Fiber (Go web framework)
- Postgres (SQL database)
- database/sql (no ORM)
- Swaggo + fiber-swagger (API docs)
- golang-migrate (migrations)
Makefile(task automation)
make build # build binary
make run # run server
make migrate-up # run all up migrations
make migrate-down # rollback migration
make seed # seed database
make swag-init # generate swagger docs
make deps # tidy + install tools
make clean # clean build artifacts
make fmt # gofmt all code- Uses
database/sqlwith raw SQL migrations (no ORM). - Use
migrateCLI for migrations: golang-migrate. - Generate Swagger docs using
swag init. - Replace
github.com/yourusername/...in imports with your own module path. - For production: store DB credentials securely and enable SSL.
- Reference https://chatgpt.com/share/68d3b7b5-3cac-8001-8233-e391c49916ef
MIT