Getting Started
GopherForge is an open-source Go microservices and business platform. The main stack includes a gateway, 16 API services, an AI worker, React and PostgreSQL/Redis/NATS. Start media and client products separately; external providers require configuration.
Requirements
- Docker Engine 24+ and Docker Compose v2; Docker Desktop is recommended on macOS and Windows
- Optional local development: Go 1.27.0+ (both the language and build baseline are 1.27.0), Node.js 20.19+ / 22.12+ (24 recommended)
One-command startup
bash
git clone https://github.com/SuperiorChuo/gopherforge.git
cd gopherforge
cp microservices/.env.example microservices/.env
make compose-upInitial build time depends on machine resources and network access. Then:
| Entry | URL |
|---|---|
| Unified gateway (recommended) | http://localhost:8000 |
| Frontend direct | http://localhost:3000 |
| Health check | http://localhost:8000/api/v1/health/ready |
Default account
| Username | Password |
|---|---|
admin | admin123 |
Change before going live
Rotate the default password, JWT_SECRET and all datastore credentials in .env. See Production Deployment.
Verify the stack
bash
npm ci --prefix microservices/web
bash scripts/verify-product.sh all
cd microservices
docker compose --profile compose-fallback config --quiet
docker compose -p go-admin-kit-infra -f docker-compose.infra.yml config --quiet
API_BASE_URL=http://127.0.0.1:8000/api/v1 npm run smoke:apiLocal dev mode (optional)
Run only the infra containers and hot-reload services/frontend on your machine:
Run the long-lived commands in three separate terminals:
bash
# Terminal 1: dependency containers
cd microservices
docker compose -p go-admin-kit-infra -f docker-compose.infra.yml up -d go-admin-kit-postgres go-admin-kit-redis go-admin-kit-nats
# Terminal 2: the Go service under development (auth as an example)
cd microservices/services/auth
go run ./cmd
# Terminal 3: frontend HMR
cd microservices/web
npm ci
npm run devPort conflicts
Defaults: frontend 3000, gateway 8000, PostgreSQL 5432, Redis 6379. Change the matching *_PORT in microservices/.env.
Next
- How the services are split → Architecture
- Add your first business module → Extending
- Or explore the Live Demo (frontend-only fake data, any account logs in)