Skip to content

iDobryak/aio.domofon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Domofon MVP Secure (Auth + MQTT ACL + GPIO skeleton)

Это расширенная версия MVP:

  • JWT авторизация для REST + WebSocket
  • MQTT: отключён anonymous, включены password_file + ACL (panel/backend users)
  • Panel Agent: добавлен слой DoorIO (stub + заготовка GPIO) — в Docker используется stub

Важно: GPIO в контейнере не работает. Для реального SBC запускайте panel-agent на хосте (Linux SBC), а не как docker-сервис, и используйте DOOR_IO=gpio.


Структура

infra/
  docker-compose.yml
  mosquitto/
    Dockerfile
    mosquitto.conf
    aclfile
backend/
panel-agent/
web/

Учётка для входа (по умолчанию)

  • user: admin
  • pass: admin

Можно поменять через env в compose:

  • ADMIN_USER
  • ADMIN_PASS
  • JWT_SECRET

MQTT пользователи (по умолчанию)

  • panel / panelpass (панель публикует state/events и слушает cmd)
  • backend / backendpass (бек публикует cmd и слушает state/events/ack)

Запуск всей системы разом

cd infra
docker compose up --build

Открыть UI: http://localhost:3000


Быстрые проверки (после login)

  1. В UI войдите (admin/admin)
  2. Нажмите Unlock — появится запись в Command log (SENT->OK)

CLI:

# получить токен
curl -s -X POST http://localhost:8000/api/auth/login -H "Content-Type: application/json"   -d '{"username":"admin","password":"admin"}'

# state (подставьте токен)
curl http://localhost:8000/api/panels/entrance-1/state -H "Authorization: Bearer <TOKEN>"

Запуск panel-agent на реальном SBC (без Docker)

  1. Установить Python 3.11+
  2. В папке panel-agent/:
pip install .
export PANEL_ID=entrance-1
export MQTT_HOST=<ip брокера>
export MQTT_PORT=1883
export MQTT_USERNAME=panel
export MQTT_PASSWORD=panelpass

# выбрать IO слой
export DOOR_IO=gpio   # или stub
export RELAY_PIN=17   # пример
export REED_PIN=27    # пример

python -m agent.main

Что где лежит

  • backend/app/security.py — JWT, проверка токена
  • backend/app/main.py — REST + WS, защищены dependency
  • infra/mosquitto/* — образ mosquitto с сгенерированными паролями + ACL
  • panel-agent/agent/door_io_* — stub и GPIO заготовка
  • web/src/pages/Panel.tsx — login + работа с токеном

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors