- Updated the application to serve the SPA from the root path instead of /map/, enhancing accessibility. - Modified redirect logic to ensure backward compatibility with old /map/* URLs. - Adjusted documentation across multiple files to reflect the new routing structure and API endpoints. - Improved handling of OAuth redirects and session management in the backend. - Updated frontend configuration to align with the new base URL settings.
44 lines
2.5 KiB
Markdown
44 lines
2.5 KiB
Markdown
# Деплой
|
||
|
||
## Docker
|
||
|
||
Образ собирается из репозитория. Внутри контейнера приложение слушает порт **8080** и ожидает, что каталог данных смонтирован в `/map` (база и изображения гридов).
|
||
|
||
Пример запуска:
|
||
|
||
```bash
|
||
docker run -v /srv/hnh-map:/map -p 80:8080 andyleap/hnh-auto-mapper:v-4
|
||
```
|
||
|
||
Или с переменными:
|
||
|
||
```bash
|
||
docker run -v /srv/hnh-map:/map -p 8080:8080 \
|
||
-e HNHMAP_PORT=8080 \
|
||
-e HNHMAP_BOOTSTRAP_PASSWORD=your-secure-password \
|
||
andyleap/hnh-auto-mapper:v-4
|
||
```
|
||
|
||
Рекомендуется после первой настройки убрать или не передавать `HNHMAP_BOOTSTRAP_PASSWORD`.
|
||
|
||
## OAuth (Google)
|
||
|
||
Для входа через Google OAuth:
|
||
|
||
1. Создайте проект в [Google Cloud Console](https://console.cloud.google.com/).
|
||
2. Включите «Google+ API» / «Google Identity» и создайте OAuth 2.0 Client ID (тип «Web application»).
|
||
3. В настройках клиента добавьте Authorized redirect URI: `https://your-domain.com/map/api/oauth/google/callback` (замените на ваш домен).
|
||
4. Задайте переменные окружения:
|
||
- `HNHMAP_OAUTH_GOOGLE_CLIENT_ID` — Client ID
|
||
- `HNHMAP_OAUTH_GOOGLE_CLIENT_SECRET` — Client Secret
|
||
- `HNHMAP_BASE_URL` — полный URL приложения (например `https://map.example.com`) для формирования redirect_uri. Если не задан, берётся из `Host` и `X-Forwarded-*` заголовков.
|
||
|
||
## Reverse proxy
|
||
|
||
Разместите сервис за nginx, Traefik, Caddy и т.п. на нужном домене. Проксируйте весь трафик на порт 8080 контейнера (или тот порт, на котором слушает приложение). Приложение отдаёт SPA по корню `/` (/, /login, /profile, /admin и т.д.), API — по `/map/api/`, SSE — `/map/updates`, тайлы — `/map/grids/`.
|
||
|
||
## Обновление и бэкапы
|
||
|
||
- При обновлении образа сохраняйте volume с `/map`: в нём лежат `grids.db` и каталоги с тайлами.
|
||
- Регулярно делайте бэкапы каталога данных (и при необходимости экспорт через админку «Export»).
|