You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.9 KiB
5.9 KiB
🚀 Быстрый старт
За 5 минут к рабочему API
Шаг 1: Подготовка
# Убедитесь, что установлен 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: Настройка
# Создайте .env файл
cp .env.example .env
# Сгенерируйте безопасный пароль
openssl rand -base64 32
# Отредактируйте .env и вставьте сгенерированные пароли в DB_PASSWORD и ADMIN_PASSWORD
nano .env
Шаг 3: Запуск
# Запустите все сервисы
docker-compose up -d
# Дождитесь инициализации (30-60 секунд)
docker-compose logs -f postgres
# Когда увидите "database system is ready to accept connections" - нажмите Ctrl+C
Шаг 4: Проверка
# Проверьте 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:
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:
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. Проверьте геопоиск
# Найдите остановки в радиусе 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: Прямой доступ (не безопасно для интернета)
# Узнайте IP вашего сервера
ip addr show | grep "inet "
# Доступ с других устройств в той же сети:
# http://YOUR_SERVER_IP:3000 - API
# http://YOUR_SERVER_IP:3001 - Admin
Вариант 2: Cloudflare Tunnel (рекомендуется для интернета)
# Установите 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 ключа для вашего приложения
# Войдите в 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
Генерация безопасного ключа:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Остановка и удаление
# Остановить все сервисы
docker-compose down
# Удалить все данные (ОСТОРОЖНО!)
docker-compose down -v
# Удалить образы
docker-compose down --rmi all
Частые проблемы
"Cannot connect to database":
# Проверьте, что PostgreSQL запущен
docker-compose ps
docker-compose logs postgres
# Перезапустите
docker-compose restart postgres
"Port already in use":
# Измените порты в docker-compose.yml
# Например, вместо "3000:3000" используйте "3001:3000"
"Permission denied":
# Убедитесь, что пользователь в группе docker
sudo usermod -aG docker $USER
# Перелогиньтесь
Следующие шаги
- Прочитайте полный README.md
- Добавьте свои маршруты и остановки
- Настройте расписания (в следующей версии)
- Интегрируйте API в ваше мобильное приложение
- Настройте безопасный доступ через Cloudflare
Удачи! 🚀