Сервер контроля версий прошивок для OTA (Over The Air) обновлений.
Компиляция:
go build
Конфигурация должна находиться в файле config.ini
, пример есть в config.ini.example
.
Запуск сервера:
./ota_server
Сервер сохраняет данные в папку, указанную в конфиге. В этой папке хранится sqlite база данных с информацией о каждой версии и файлы прошивок.
По адресу /swagger/index.html
можно найти документацию к API.
Разработчики могут загружать новые версии прошивки. Дополнительная информация, которую необходимо предоставить для каждой прошивке включает в себя:
- время сборки
- номер коммита в гите (необязательно)
- название репозитория
- список названий плат, на которые может быть загружена прошивка
- описание (может быть пустым)
Платы могут запрашивать последнюю версию прошивки, при этом должно быть предоставлено имя репозитория.
Для использование HTTP API нужно сгенерировать JWT токены. Они содержат имя субъекта, на которого подписывается токен, и его тип (разработчик/плата). Секретный ключ должен быть указан в конфигурации.
Токен для разработчика (даёт доступ к: загрузке прошивок на сервер, просмотру всех прошивок):
./ota_server token %USERNAME%
Токен для платы (даёт доступ только к получению последней версии прошивки):
./ota_server token %BOARDNAME% -b
В конфиге должны быть указаны пути к .pem и .key файлам (в примере это ./tls/ota_server.key|pem
)
Сгенерировать можно так:
openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out tls/ota_server.crt -keyout tls/ota_server.key
openssl x509 -in tls/ota_server.crt -out tls/ota_server.pem -outform PEM
rm tls/ota_server.crt
swag init -g http_api.go