- Introduced .editorconfig for consistent coding styles across the project. - Added .golangci.yml for Go linting configuration. - Updated AGENTS.md to clarify project structure and components. - Enhanced CONTRIBUTING.md with Makefile usage for common tasks. - Updated Dockerfiles to use Go 1.24 and improved build instructions. - Refined README.md and deployment documentation for clarity. - Added testing documentation in testing.md for backend and frontend tests. - Introduced Makefile for streamlined development commands and tasks.
2.2 KiB
Development
Local setup
Backend (Go)
From the repository root:
go build -o hnh-map ./cmd/hnh-map
./hnh-map -grids=./grids -port=8080
Or without building:
go run ./cmd/hnh-map -grids=./grids -port=8080
The server serves static files from the frontend/ directory (you need to build the frontend first, see below).
Frontend (Nuxt)
cd frontend-nuxt
npm install
npm run dev
In dev mode the app is available at root (e.g. http://localhost:3000/). The backend must be reachable; configure the proxy in nuxt.config.ts if needed (e.g. to http://localhost:8080).
Docker Compose (development)
docker compose -f docker-compose.dev.yml up
Or using the Makefile:
make dev
The dev Compose setup starts two services:
backend— Go API on port3080(no frontend static serving in dev mode).frontend— Nuxt dev server on port3000with live-reload; requests to/map/api,/map/updates,/map/gridsare proxied to the backend.
Use http://localhost:3000/ as the primary URL for UI development.
Port 3080 is for API and backend endpoints; the root / may return 404 in dev mode — this is expected.
Building the image and production Compose
docker build -t hnh-map .
docker compose -f docker-compose.prod.yml up -d
Or using the Makefile:
make build
In production the frontend is built into the image and served by the backend from the frontend/ directory; port 8080.
Makefile targets
| Target | Description |
|---|---|
make dev |
Start Docker Compose development environment |
make build |
Build production Docker image |
make test |
Run Go tests (go test ./...) |
make lint |
Run Go and frontend linters |
make fmt |
Format all code (Go + frontend) |
make generate-frontend |
Build frontend static output into frontend/ |
make clean |
Remove build artifacts |
Running tests
make test
Or directly:
go test ./...
For frontend tests (if configured):
cd frontend-nuxt
npm test
See docs/testing.md for details on the test suite.