- Added a new AGENTS.md file to document the project structure and conventions. - Updated .gitignore to include node_modules and refined cursor rules. - Introduced new backend and frontend components for improved map interactions, including context menus and controls. - Enhanced API composables for better admin and authentication functionalities. - Refactored existing components for cleaner code and improved user experience. - Updated README.md to clarify production asset serving and user setup instructions.
49 lines
3.0 KiB
Markdown
49 lines
3.0 KiB
Markdown
# hnh-map
|
|
|
|
Automapper server for HnH, (mostly) compatible with https://github.com/APXEOLOG/hnh-auto-mapper-server
|
|
|
|
Docker image can be built from sources, or is available at https://hub.docker.com/r/andyleap/hnh-auto-mapper
|
|
(automatically built by Docker's infrastructure from the github source)
|
|
|
|
**Ports:** In production the app listens on **8080**. For local development with `docker-compose.dev.yml`, the frontend runs on **3000** and the backend on **3080** (to avoid conflicts with other services on 8080).
|
|
|
|
Run it via whatever you feel like. The app expects `/map` to be mounted as a volume (database and images are stored here):
|
|
|
|
docker run -v /srv/hnh-map:/map -p 80:8080 andyleap/hnh-auto-mapper:v-4
|
|
|
|
Set it up under a domain name however you prefer (nginx reverse proxy, traefik, caddy, apache, whatever) and
|
|
point your auto-mapping supported client at it (like Purus pasta).
|
|
|
|
## Documentation
|
|
|
|
- [Architecture](docs/architecture.md) — high-level design and backend layout (`cmd/hnh-map`, `internal/app`)
|
|
- [API](docs/api.md) — HTTP API (auth, cabinet, map data, admin)
|
|
- [Configuration](docs/configuration.md) — environment variables and flags
|
|
- [Development](docs/development.md) — local run, Docker Compose dev, build
|
|
- [Deployment](docs/deployment.md) — Docker, reverse proxy, backups
|
|
|
|
See also [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow.
|
|
|
|
In production the app serves static assets from the `frontend/` directory; that directory is the **build output** of the app in `frontend-nuxt/` (see [docs/development.md](docs/development.md)).
|
|
|
|
Only other thing you need to do is setup users and set your zero grid.
|
|
|
|
First login: username **admin**, password from `HNHMAP_BOOTSTRAP_PASSWORD` (in dev Compose it defaults to `admin`). Go to the admin portal and hit "ADD USER". Don't forget to toggle on all the roles (you'll need admin, at least)
|
|
|
|
### OAuth (Google)
|
|
|
|
To enable "Login with Google", set `HNHMAP_OAUTH_GOOGLE_CLIENT_ID`, `HNHMAP_OAUTH_GOOGLE_CLIENT_SECRET`, and `HNHMAP_BASE_URL` (your app's full URL). Create OAuth credentials in Google Cloud Console and add the callback URL `{HNHMAP_BASE_URL}/map/api/oauth/google/callback` to Authorized redirect URIs. See [deployment.md](docs/deployment.md) for details.
|
|
|
|
Once you create your first user, you'll get kicked out and have to log in as it.
|
|
The admin user will be gone at this point. Next you'll want to add users for anyone else, and then you'll need to create your tokens to upload stuff.
|
|
|
|
You'll probably want to set the prefix (this gets put at the front of the tokens, and should be something like `http://example.com`) to make it easier to configure clients.
|
|
|
|
The first client to connect will set the 0,0 grid, but you can wipe the data in the admin portal to reset (and the next client to connect should set a new 0,0 grid)
|
|
|
|
### Roles
|
|
|
|
- **Map**: View the map
|
|
- **Upload**: Send character, marker, and tile data to the server
|
|
- **Admin**: Modify server settings, create and edit users, wipe data
|