Dev окружение¶
Dev-среда для разработки и тестирования изменений до выхода в production.
Что работает в Dev¶
| Сервис | IP / порт | Контейнер | Описание |
|---|---|---|---|
| MySQL DEV | 10.99.87.61:3306 | vpn-db |
База данных dev (копия схемы prod) |
| GitLab Runner | 212.70.189.61 | — | CI/CD runner для всех проектов |
| Nginx (dev-api) | 212.70.189.61:80/443 | — | Reverse proxy для dev-сервисов |
| Vaultwarden | 10.99.87.76:8080 | vaultwarden |
Менеджер паролей (один для dev+prod) |
Backend и VCS в dev не задеплоены
Backend (Spring Boot) и VPN Config Service разворачиваются только локально или через CI в staging-ветках. Полноценного dev-стенда нет.
Подключение к MySQL DEV¶
SSH (терминал)¶
MySQL CLI¶
./scripts/ssh-internal.sh 10.99.87.61 \
"docker exec vpn-db mysql -uvpn -p'$(см. Vaultwarden → Databases)' vpn -e 'SHOW TABLES'"
Пароль: Vaultwarden → Databases → MySQL DEV
DBeaver / TablePlus (GUI)¶
| Параметр | Значение |
|---|---|
| Host | 10.99.87.61 |
| Port | 3306 |
| Database | vpn |
| User | vpn |
| Password | см. Vaultwarden → Databases → MySQL DEV |
| SSH host (jump) | 212.70.189.60 |
| SSH port | 2255 |
| SSH user | root |
| SSH key | ~/.ssh/id_ed25519_shivavpn |
Локальная разработка Backend¶
Backend (Java Spring Boot) разрабатывается локально с подключением к MySQL DEV.
Конфигурация¶
В application-local.yml или через переменные окружения:
spring:
datasource:
url: jdbc:mysql://localhost:3307/vpn # через SSH tunnel
username: vpn
password: <из Vaultwarden → Databases → MySQL DEV>
redis:
host: localhost
port: 6380 # через SSH tunnel
SSH tunnel для локальной разработки¶
# MySQL DEV туннель
ssh -L 3307:10.99.87.61:3306 -N root@212.70.189.60 -p 2255 -i ~/.ssh/id_ed25519_shivavpn &
# Redis туннель (если нужен)
ssh -L 6380:10.99.87.249:6379 -N root@212.70.189.60 -p 2255 -i ~/.ssh/id_ed25519_shivavpn &
Сборка Backend¶
cd backend-app # локальный клон репозитория
./mvnw clean package -DskipTests
./mvnw spring-boot:run -Dspring-boot.run.profiles=local
Локальная разработка VPN Config Service¶
cd vpn-config-service # локальный клон репозитория
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# .env для локального запуска
cp .env.example .env
# Заполнить значения из Vaultwarden → Infrastructure
CI/CD в dev¶
| Событие | Что происходит |
|---|---|
| Push в feature-ветку | Запускаются тесты (GitLab CI) |
| MR в main | Code review + тесты |
| Merge в main | Auto build + ручной deploy_prod (VCS) или auto deploy (backend) |
GitLab Runner: 212.70.189.61 (shared runner для всех проектов).
Отличия dev от prod¶
| Параметр | Dev | Prod |
|---|---|---|
| MySQL | 10.99.87.61 | 10.99.87.62 |
| Данные | Копия схемы, тестовые данные | Реальные пользователи |
| Backend | Локально / staging ветка | 10.99.87.249 (blue-green) |
| VCS | Локально | 10.99.87.249 |
| Redis | Нет | 10.99.87.249:6379 |
| VPN серверы | Нет | ~138 серверов |
| Мониторинг | Нет | Grafana 10.99.87.5 |