""" Инициализация FastAPI-приложения GONETS. Содержимое модуля: - Создание экземпляра приложения FastAPI с метаданными (title, description, version). - Подключение CORS-политики через `CORSMiddlewareConfig` с заранее заданными доверенными источниками (localhost и стандартные порты фронтенда). - Монтаж корневого роутера `api.router`, который инкапсулирует все `v1`-эндпоинты (auth, subnet, ip, network, ufw, websocket, settings). - Инициализация `NetworkService` на уровне приложения для подготовки сетевой подсистемы (например, ленивые проверки окружения/зависимостей). - Точка входа для локального запуска через `uvicorn` (режим разработки с reload). Замечания по развертыванию: - В прод-среде приложение запускается через `systemd` юнит `gonets.service`, где в качестве команды используется `python3 SRV/main.py`. - Для TLS можно использовать закомментированную строку с указанием `ssl_keyfile` и `ssl_certfile` (сертификаты ожидаются в `/etc/gonets/certs`). Безопасность и окружение: - Перекрестные запросы (CORS) ограничены списком localhost-источников, что соответствует типичной локальной разработке (Vite/DevServer и т.д.). - Все пути и сервисы, требующие повышенных прав (например, системные команды), должны выполняться в соответствующем окружении с необходимыми разрешениями. """ from fastapi import FastAPI import uvicorn from api.router import router from config.cors import CORSMiddlewareConfig from services.network_service import NetworkService app = FastAPI( title="GONETS", description="Панель для управления системными сервисами Linux", version="0.0.3", ) cors_config = CORSMiddlewareConfig(app) cors_config.add_cors_middleware() app.include_router(router) network_service = NetworkService() if __name__ == "__main__": #uvicorn.run("main:app", host='0.0.0.0', port=8001, reload=True, ssl_keyfile="/etc/gonets/certs/gonets.key", ssl_certfile="/etc/gonets/certs/gonets.crt") uvicorn.run("main:app", host="0.0.0.0", port=8001, reload=True)