Nitrokite API Server
Go/Gin REST API server for Nitrokite's digital marketing platform.
Project Structure
backend/
├── main.go # Main application entry point
├── go.mod # Go module dependencies
├── go.sum # Dependency checksums
├── .air.toml # Air live reload configuration
└── migrations/ # Database migration files
├── *.up.sql # Migration up scripts
└── *.down.sql # Migration down scripts
Development
Prerequisites
- Go 1.24.1 or higher
- PostgreSQL 14+
- Air (for live reload) -
go install github.com/air-verse/air@latest
Setup
-
Install dependencies:
go mod download -
Set up environment variables:
export DATABASE_URL="host=localhost port=5432 user=apiserver password=apiserver dbname=apiserver sslmode=disable" export PORT=8080 -
Run with live reload:
air -
Or build and run:
go build -o api-server . ./api-server
Database Migrations
Migrations are automatically run on application startup. They are located in the migrations/ directory.
To create a new migration:
# Create migration files manually with naming convention:
# 000002_description.up.sql
# 000002_description.down.sql
API Endpoints
Health Check
GET /health
Returns server health status and version information.
Users
GET /api/v1/users # List all users
GET /api/v1/users/:id # Get user by ID
POST /api/v1/users # Create new user
PUT /api/v1/users/:id # Update user
DELETE /api/v1/users/:id # Delete user
Building for Production
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-ldflags="-s -w -X main.Version=$(git rev-parse --short HEAD) -X main.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-o api-server \
.
Deployment
The API server is deployed via CI/CD pipeline using blue-green deployment strategy.
See deployment documentation for details.
Environment Variables
DATABASE_URL- PostgreSQL connection string (required)PORT- Server port (default: 8080)AUTO_MIGRATE- Run migrations on startup (default: true)GIN_MODE- Gin mode: debug, release (default: debug)
Testing
go test -v ./...
License
Copyright © 2025 Nitrokite. All rights reserved.