Files
ridebus-admin/QUICKSTART.md

227 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Быстрый старт
## За 5 минут к рабочему API
### Шаг 1: Подготовка
```bash
# Убедитесь, что установлен Docker
docker --version
docker-compose --version
# Если нет - установите:
# Ubuntu/Debian:
sudo apt update
sudo apt install docker.io docker-compose
# Добавьте пользователя в группу docker
sudo usermod -aG docker $USER
# Перелогиньтесь после этого
```
### Шаг 2: Настройка
```bash
# Создайте .env файл
cp .env.example .env
# Сгенерируйте безопасный пароль
openssl rand -base64 32
# Отредактируйте .env и вставьте сгенерированные пароли в DB_PASSWORD и ADMIN_PASSWORD
nano .env
```
### Шаг 3: Запуск
```bash
# Запустите все сервисы
docker-compose up -d
# Дождитесь инициализации (30-60 секунд)
docker-compose logs -f postgres
# Когда увидите "database system is ready to accept connections" - нажмите Ctrl+C
```
### Шаг 4: Проверка
```bash
# Проверьте API
curl http://localhost:3000/health
# Ожидаемый ответ:
# {"status":"healthy","timestamp":"2025-11-19T...","version":"1.0.0"}
# Проверьте базу данных
curl -H "X-API-Key: dev_key_12345678" http://localhost:3000/api/v1/sync/status
```
### Шаг 5: Откройте админ-панель
Откройте в браузере: http://localhost:3001
Войдите под `admin` и паролем из `ADMIN_PASSWORD` в `.env`.
**Готово! 🎉**
---
## Первые данные
### 1. Создайте первый маршрут
Откройте админ-панель → Маршруты → "Добавить маршрут"
Или через API:
```bash
curl -X POST http://localhost:3000/api/v1/routes \
-H "X-API-Key: dev_key_12345678" \
-H "Content-Type: application/json" \
-d '{
"route_number": "1",
"name": "Центр - Вокзал",
"type": "bus",
"color": "#FF6B6B"
}'
```
### 2. Добавьте остановки
Откройте админ-панель → Остановки → Кликните на карту
Или через API:
```bash
curl -X POST http://localhost:3000/api/v1/stops \
-H "X-API-Key: dev_key_12345678" \
-H "Content-Type: application/json" \
-d '{
"name": "Площадь Свободы",
"latitude": 55.4869,
"longitude": 28.7856,
"address": "Центр города"
}'
```
### 3. Проверьте геопоиск
```bash
# Найдите остановки в радиусе 500м от центра Полоцка
curl -H "X-API-Key: dev_key_12345678" \
"http://localhost:3000/api/v1/stops/nearby?lat=55.4869&lon=28.7856&radius=500"
```
---
## Доступ из локальной сети
### Вариант 1: Прямой доступ (не безопасно для интернета)
```bash
# Узнайте IP вашего сервера
ip addr show | grep "inet "
# Доступ с других устройств в той же сети:
# http://YOUR_SERVER_IP:3000 - API
# http://YOUR_SERVER_IP:3001 - Admin
```
### Вариант 2: Cloudflare Tunnel (рекомендуется для интернета)
```bash
# Установите cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
sudo mv cloudflared /usr/local/bin/
sudo chmod +x /usr/local/bin/cloudflared
# Авторизуйтесь
cloudflared tunnel login
# Создайте туннель
cloudflared tunnel create polotsk-transit
# Создайте конфиг
cat > ~/.cloudflared/config.yml << EOF
tunnel: YOUR_TUNNEL_ID
credentials-file: /home/$USER/.cloudflared/YOUR_TUNNEL_ID.json
ingress:
- hostname: api.yourdomain.com
service: http://localhost:3000
- hostname: admin.yourdomain.com
service: http://localhost:3001
- service: http_status:404
EOF
# Запустите туннель
cloudflared tunnel run polotsk-transit
```
---
## Создание API ключа для вашего приложения
```bash
# Войдите в PostgreSQL
docker exec -it polotsk-transit-db psql -U transit_admin -d polotsk_transit
# Создайте новый API ключ
INSERT INTO api_keys (key, app_name, rate_limit, is_active)
VALUES ('YOUR_GENERATED_KEY_HERE', 'My iOS App', 10000, true);
# Проверьте
SELECT * FROM api_keys;
# Выйдите
\q
```
Генерация безопасного ключа:
```bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```
---
## Остановка и удаление
```bash
# Остановить все сервисы
docker-compose down
# Удалить все данные (ОСТОРОЖНО!)
docker-compose down -v
# Удалить образы
docker-compose down --rmi all
```
---
## Частые проблемы
**"Cannot connect to database":**
```bash
# Проверьте, что PostgreSQL запущен
docker-compose ps
docker-compose logs postgres
# Перезапустите
docker-compose restart postgres
```
**"Port already in use":**
```bash
# Измените порты в docker-compose.yml
# Например, вместо "3000:3000" используйте "3001:3000"
```
**"Permission denied":**
```bash
# Убедитесь, что пользователь в группе docker
sudo usermod -aG docker $USER
# Перелогиньтесь
```
---
## Следующие шаги
1. Прочитайте полный README.md
2. Добавьте свои маршруты и остановки
3. Настройте расписания (в следующей версии)
4. Интегрируйте API в ваше мобильное приложение
5. Настройте безопасный доступ через Cloudflare
**Удачи! 🚀**