Перейти к содержанию

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 (терминал)

./scripts/ssh-internal.sh 10.99.87.61
# или
ssh root@10.99.87.61 -J root@212.70.189.60:2255

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

Ссылки