вот например 2шт. Использую второй вариант, т.к. намного проще и компактнее, первый слишком навороченный, не было времени разбираться. Интерфейс - статические страницы, подгрузка данных из БД/работа с портами через JSON/AJAX (там есть пример как https://github.com/ncp1402/llserver https://keplerproject.github.io/xavante/ отдавать динамический ответ).