- Added support for Google OAuth login, including new API endpoints for OAuth providers and callbacks. - Updated user authentication logic to handle OAuth-only users. - Enhanced README.md and deployment documentation with OAuth setup instructions. - Modified frontend components to include OAuth login options and improved error handling. - Updated configuration files to include new environment variables for OAuth integration.
2.5 KiB
2.5 KiB
Деплой
Docker
Образ собирается из репозитория. Внутри контейнера приложение слушает порт 8080 и ожидает, что каталог данных смонтирован в /map (база и изображения гридов).
Пример запуска:
docker run -v /srv/hnh-map:/map -p 80:8080 andyleap/hnh-auto-mapper:v-4
Или с переменными:
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:
- Создайте проект в Google Cloud Console.
- Включите «Google+ API» / «Google Identity» и создайте OAuth 2.0 Client ID (тип «Web application»).
- В настройках клиента добавьте Authorized redirect URI:
https://your-domain.com/map/api/oauth/google/callback(замените на ваш домен). - Задайте переменные окружения:
HNHMAP_OAUTH_GOOGLE_CLIENT_ID— Client IDHNHMAP_OAUTH_GOOGLE_CLIENT_SECRET— Client SecretHNHMAP_BASE_URL— полный URL приложения (напримерhttps://map.example.com) для формирования redirect_uri. Если не задан, берётся изHostиX-Forwarded-*заголовков.
Reverse proxy
Разместите сервис за nginx, Traefik, Caddy и т.п. на нужном домене. Проксируйте весь трафик на порт 8080 контейнера (или тот порт, на котором слушает приложение). Отдельная настройка для /map не обязательна: приложение само отдаёт SPA и API по путям /map/, /map/api/, /map/updates, /map/grids/.
Обновление и бэкапы
- При обновлении образа сохраняйте volume с
/map: в нём лежатgrids.dbи каталоги с тайлами. - Регулярно делайте бэкапы каталога данных (и при необходимости экспорт через админку «Export»).