README.md

Speedtest Service

Сервис для тестирования скорости интернет-соединения с автоматическим анализом маршрута.

Возможности

  • HTTP тест скорости - измерение download/upload скорости
  • Автоматический traceroute - анализ маршрута от клиента к серверу
  • Реальные измерения - без симуляции, только реальные HTTP тесты
  • Автоматическое определение IP - клиента и сервера
  • Современный интерфейс - адаптивный дизайн для всех устройств

Установка

Требования

  • Python 3.7+
  • pip

Быстрая установка

# Клонировать репозиторий
git clone <repository-url>
cd speedtest-service

# Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# или
venv\Scripts\activate     # Windows

# Установить зависимости
pip install -r requirements.txt

# Запустить сервис
python3 app.py

Сервис будет доступен по адресу: http://localhost:5001/

Использование

  1. Откройте веб-интерфейс в браузере
  2. Нажмите “Запустить HTTP тест”
  3. Дождитесь завершения теста скорости
  4. Автоматически получите результаты traceroute

API Endpoints

  • GET / - главная страница
  • POST /api/start-test - запуск теста скорости
  • GET /api/download-chunk/<id> - получение тестовых данных
  • POST /api/upload-chunk - отправка тестовых данных
  • GET /api/test-status - статус теста
  • GET /api/traceroute - информация о клиенте и сервере
  • GET /api/server-ip - IP адрес сервера

Особенности

  • Автоматический traceroute после каждого теста скорости
  • Реальные HTTP измерения без симуляции
  • Автоматическое определение IP адресов
  • Адаптивный дизайн для мобильных устройств
  • Безопасность - CSRF защита, заголовки безопасности

Настройка CORS

Быстрая настройка

# Запустить скрипт настройки
./setup_cors.sh

# Отредактировать настройки
nano .env

Основные параметры CORS

  • CORS_ORIGINS - разрешенные домены (через запятую)
  • CORS_SUPPORTS_CREDENTIALS - поддержка cookies/авторизации
  • CORS_ALLOW_HEADERS - разрешенные HTTP заголовки
  • CORS_METHODS - разрешенные HTTP методы

Примеры настроек

# Разрешить доступ с любого домена (не рекомендуется для продакшена)
CORS_ORIGINS=*

# Разрешить доступ с конкретных доменов
CORS_ORIGINS=http://localhost:3000,https://myapp.com,https://app.example.com

# Отключить поддержку credentials
CORS_SUPPORTS_CREDENTIALS=false

# Добавить дополнительные заголовки
CORS_ALLOW_HEADERS=Content-Type,Authorization,X-CSRF-Token,X-Requested-With

Развертывание

Сервис автоматически определяет свой IP адрес и работает “из коробки” на любом сервере:

  • VPS в любой стране
  • Домашний сервер за NAT
  • Облачные платформы (AWS, GCP, Azure)
  • Docker контейнеры

Лицензия

MIT License

Конвейеры
0 успешных
0 с ошибкой