Files
hnh-map/docs/development.md
Nikolay Tatarinov 6529d7370e Add configuration files and update project documentation
- 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.
2026-03-01 01:51:47 +03:00

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 port 3080 (no frontend static serving in dev mode).
  • frontend — Nuxt dev server on port 3000 with live-reload; requests to /map/api, /map/updates, /map/grids are 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.