Как я запускал российское зеркало для SQL-песочниц: гибридное облако и блокировки Composer
Привет, Хабр! Меня зовут Слава, я развиваю SQL-платформы sqltest.online и sqlize.online для бесплатной тренировки запросов на реальных СУБД (PostgreSQL, Oracle, MariaDB 12.3, MS SQL 2025).
Зачем понадобилось зеркало?
От 30% моей аудитории из РФ стали приходить сообщения: «Сайт открывается только через VPN».
Переносить бэкенд целиком - дорого, сервер завязан на тяжелые СУБД в Docker. Поэтому я выбрал гибридную модель: поднять фронтенд в зоне .ru, оставив бэкенд в Германии.
Архитектура: Фронт в РФ, мозг в Германии
Фронтенд: PHP без фреймворков
Нативный PHP, HTML и JS. Меньше зависимостей - проще деплой. Для RU-зеркала я выбрал SpaceWeb*, где есть отличные бюджетные тарифы и классная поддержка.
sqltest-online.ru (SpaceWeb, РФ) ├── PHP (без фреймворков) + HTML/JS └── Минимум зависимостей
Бэкенд: Docker Compose
Мощный сервер в Германии у Contabo*, где в контейнерах крутятся MySQL, PostgreSQL, ClickHouse и другие базы. Серьезные СУБД требуют ресурсов, так что всё живет на одной полноценной машине.
Как они общаются?
Пользователь отправляет запрос -> браузер делает AJAX-вызов к .ru серверу -> фронт делает HTTP-запрос к бэкенду в Германии (server-to-server) -> бэкенд выполняет SQL и возвращает результат.
Плюсы схемы:
CORS не нужен: браузер общается только со своим доменом.
Бэкенд закрыт: принимает запросы только от white-list IP.
Задержка минимальна: интерфейс грузится из РФ, тяжелые запросы идут по быстрому каналу серверов.
Резервного бэкенда нет - проект бесплатный, на второй сервер пока нет бюджета. Если падает Германия, ложится всё.
Проблемы деплоя: Composer «ушел в отказ»
С git pull всё прошло гладко, но установка зависимостей зависла намертво.
Проблема: Composer не мог достучаться до packagist.org. Просто бесконечный таймаут, вызванный нестабильностью сетевых маршрутов.
Решение: Поддержка SpaceWeb не стала отписываться «проблема на вашей стороне», а сразу дала адрес HTTP-прокси.
Дело одной команды:
export HTTPS_PROXY=http://proxy.host:port composer install
(Для Windows: set HTTPS_PROXY=...)
Мораль: При деплое на российские площадки проверяйте доступность packagist.org (curl -v https://packagist.org). Если висит - просите прокси у хостера, не тратьте время на Composer.
Итоги
Зеркало sqltest-online.ru работает. Гибридная схема спасает: пользователи получают быстрый интерфейс без VPN, а запросы улетают на проверенный бэкенд.
Я верю, что образование должно быть доступным. Если для практики SQL нужно включать VPN и ждать по 10 секунд - человек не будет учиться. Зеркало .ru - мой способ сказать: «Продолжайте практиковаться».
А как вы деплоите зависимости на RU-площадки? Используете прокси, зеркала или есть решения изящнее?
* P.S. Ссылки на SpaceWeb и Contabo в статье - реферальные. Сервисами пользуюсь сам и смело рекомендую, а бонусы пойдут на оплату серверов проекта.













