Инфраструктура

Avioniq — карта инфраструктуры

Сводная таблица сервисов, директорий, CI/CD и настроек безопасности.

Вернуться на главную

Компоненты стека

Высокоуровневый обзор всех основных сервисов и точек доступа.

КомпонентТехнологииХост / портURL / маршрутОписание
FrontendNext.js 14, React 18127.0.0.1:3000https://avioniq.ruПользовательский интерфейс (SSR + статические страницы).
Backend APIFastAPI, Uvicorn, Python 3.12127.0.0.1:8000/api, /api/health, /api/docsREST API, авторизация, работа с БД, интеграции.
Nginxnginx 1.24 (Ubuntu):80, :443https://avioniq.ru, https://www.avioniq.ruSSL (Let's Encrypt), редирект HTTP→HTTPS, проксирование / и /api.
База данныхPostgreSQL (управляемый сервис)DB_ENDPOINT (env)Данные приложения, миграции через Alembic.
CI/CDGitHub Actions + self-hosted runner/srv/actions-runner.github/workflows/deploy.ymlСборка backend+frontend, деплой, рестарт сервисов.
VPN + SSHOpenVPN, WireGuard, SSHSSH порт 22 (только 10.8.0.0/24, 10.10.10.0/24)Доступ к серверу только через VPN-подсети.

Артефакты и размеры

Снимок текущих размеров директорий (команда du -sh).

СервисПуть / ресурсРазмерКомментарий
Backend (FastAPI)/srv/avioniq/backend≈86 MBКод API, виртуальное окружение Python 3.12 и зависимости.
Frontend (Next.js)/srv/avioniq/frontend≈512 MBСборка Next.js, node_modules и serverless артефакты.
Deploy configs/srv/avioniq/deploy≈56 KBШаблоны systemd и Nginx, скрипты SSL.
Self-hosted runner/srv/actions-runner≈906 MBGitHub Actions runner + кеш скачанных зависимостей.
Репозиторий Avioniq/srv/avioniq≈599 MBGit-репозиторий, фронтенд/бэкенд сборки и скрипты.
PostgreSQLВнешний управляемый кластер— (мониторится отдельно)Данные БД находятся в отдельном сервисе, объём отслеживается на стороне DBA.

Директории и systemd-сервисы

Соответствие рабочих каталогов и сервисов.

Сервисsystemd unitКаталогКомандаКомментарий
Backendavioniq-api.service/srv/avioniq/backenduvicorn app.main:app --host 127.0.0.1 --port 8000Работа в venv, настройки через .env/pydantic-settings.
Frontendavioniq-frontend.service/srv/avioniq/frontendnpm start (next start)Production-сборка Next.js отдаётся через Nginx.
Nginxnginx.service/etc/nginx, /srv/avioniq/deploy/nginxnginx -g "daemon on; master_process on;"Конфиг avioniq копируется из deploy/nginx.

CI/CD Workflow

Шаги .github/workflows/deploy.yml.

ШагСредаДействияКомментарий
backendubuntu-latestPython 3.12, venv, pip install -r requirements.txtПроверка backend зависимостей и сборки.
frontendubuntu-latestNode 20, npm ci, npm run lint, npm run buildГарантия корректной сборки фронтенда.
deployself-hosted (avioniq-server)git pull, pip/npm install, сборка, рестарт сервисовВыполняется на сервере через runner; доступен через VPN.

Диск и квоты

Данные df -h / и du -sh /srv/avioniq.

РесурсРазмерКомментарий
Диск /dev/sda179 GBИспользовано 29 GB (36%), свободно ~51 GB (df -h /).
Проект Avioniq≈599 MB/srv/avioniq: исходники, venv и сборки фронтенда.

Безопасность и сеть

Настройки доступа и SSL.

ОбластьНастройкаКомментарий
HTTP/HTTPSUFW: 80/tcp и 443/tcp открытыСайт доступен по HTTPS, HTTP редиректится.
SSHUFW: 22/tcp только из VPN подсетейДоступ к серверу только через OpenVPN/WireGuard.
SSLLet's Encrypt (certbot)Сертификаты в /etc/letsencrypt/live/avioniq.ru.
Secrets.env backend, GitHub SecretsНастройки БД, ключи JWT, SSH — вне репозитория.