Серверное приложение для управления данными автомобилей, генерации отчетов и интеграции с системными сервисами.
- Создание, обновление и чтение зашифрованных данных об автомобилях.
- Генерация ежедневных, периодических и технических отчетов.
- Интеграция с PostgreSQL для хранения данных.
- Управление сервисами через SystemD D-Bus.
- Поддержка CORS и security headers.
- Компилятор C++ с поддержкой C++17.
- Drogon Framework (версия >= 1.8.0).
- PostgreSQL (версия >= 12).
- OpenSSL (для шифрования данных).
- Systemd и libsystemd-dev (для работы с D-Bus).
- JsonCpp (для работы с JSON).
- Клонируйте репозиторий:
git clone https://github.com/Maybeetomorrow/RadarServer.git
- Установите зависимости:
sudo apt install libdrogon-dev postgresql libjsoncpp-dev libsystemd-dev openssl
- Соберите проект:
mkdir build && cd build cmake .. && make
- Создайте
config.jsonв корневой директории:{ "server": { "listen_address": "0.0.0.0", "port": 8080, "threads": 4 }, "security": { "allowed_origins": ["*"], "pbkdf2_iterations": 100000 } } - Установите переменные окружения:
export CAR_ENCRYPTION_KEY="your_encryption_key" export CAR_ENCRYPTION_SALT="your_encryption_salt"
- Настройте подключение к PostgreSQL в
main.cc(хост, порт, логин, пароль).
POST /car/create
Создание файла с данными (требует JSON с полями:vin,license_plate,brandи др.).GET /car/info
Получение информации об автомобиле.PATCH /car/update
Обновление разрешенных полей (например,license_plate,engine_power).
GET /daily-reports/{date}
Ежедневный отчет за указанную дату (формат:YYYY-MM-DD).GET /period-reports?start_date=...&end_date=...&node_names=...
Отчет за период с фильтрацией по узлам.GET /maintenance-reports
Отчеты по техническому обслуживанию.
GET /nodes
Список всех узлов.GET /nodes/{node_name}/subnodes
Подузлы для указанного узла.GET /service/remaining-km
Расчет оставшегося пробега до ТО.
./build/radarserverСервер запустится на http://0.0.0.0:8080.
- Данные автомобиля шифруются с использованием AES-256-CBC.
- Для генерации ключей используется PBKDF2 с солью.
- Настройки CORS ограничивают источники запросов (см.
config.json).
- При запуске от root привилегии автоматически понижаются до UID/GID 1000.
- Для работы с D-Bus необходим сервис
setup_ap.service.