Gate

Gate-сервер в системе Smart Home представляет собой ключевой компонент, обеспечивающий безопасный и удобный удаленный доступ к умному дому даже при отсутствии статического IP-адреса. Этот сервер позволяет пользователям управлять и мониторить свой дом из любой точки мира через интернет, обеспечивая защиту данных и комфортное взаимодействие.

Преимущества Gate-сервера в системе Smart Home

  1. Безопасность:

    • Шифрование данных: Все данные, передаваемые между устройствами и Gate-сервером, шифруются для предотвращения несанкционированного доступа.
    • Аутентификация: Встроенные механизмы аутентификации гарантируют, что только авторизованные пользователи имеют доступ к системе.
  2. Удобство Удаленного Доступа:

    • Без белого IP: Пользователи могут подключаться к системе даже при отсутствии статического IP-адреса, что делает удаленный доступ более удобным и доступным.
  3. Гибкость настройки:

    • Подключение к тестовому шлюзу: Smart Home предоставляет встроенный Gate-клиент, который может подключаться к тестовому шлюзу по адресу https://gate.e154.ru:8443 для тестирования и настройки удаленного доступа.
  4. Масштабируемость:

    • Поддержка множества устройств: Gate-сервер спроектирован для обработки одновременных запросов от множества устройств, обеспечивая масштабируемость системы.

Работа с Gate-клиентом в системе Smart Home

  1. Настройка Gate-клиента:

    • Включите режим Gate-сервера в системе Smart Home, указав адрес тестового шлюза или установив свой Gate-сервер.
    • Настройте параметры безопасности, такие как шифрование и аутентификация.
  2. Подключение к Gate-серверу:

    • Gate-клиент автоматически устанавливает безопасное соединение с Gate-сервером, не требуя белого IP-адреса.
    • Пользователи могут использовать мобильные приложения или веб-интерфейс для удаленного доступа.
  3. Безопасное Удаленное Управление:

    • Пользователи могут управлять устройствами, мониторить статус дома и получать уведомления даже находясь вдали от дома.

Конфигурация сервера

cat config.gate.json

{
  "api_http_port": 8080,
  "api_https_port": 8443,
  "api_debug": false,
  "api_gzip": true,
  "pprof": false,
  "domain": "localhost",
  "https": false,
  "proxy_timeout": 5,
  "proxy_idle_timeout": 10,
  "proxy_secret_key": ""
}

Свойства полей для файла настроек config.gate.json:

  1. http_port (int):

    • Описание: Порт для HTTP API сервера.
    • Пример значения: 8080.
  2. https_port (int):

    • Описание: Порт для HTTPS API сервера.
    • Пример значения: 8443.
  3. debug (bool):

    • Описание: Включение режима отладки API сервера.
    • Пример значения: true (включено).
  4. gzip (bool):

    • Описание: Включение сжатия Gzip для API запросов.
    • Пример значения: true (включено).
  5. domain (string):

    • Описание: Доменное имя для Gate-сервера.
    • Пример значения: example.com.
  6. pprof (bool):

    • Описание: Включение режима профилирования сервера.
    • Пример значения: true (включено).
  7. https (bool):

    • Описание: Включение использования Let’s Encrypt для автоматического получения SSL-сертификата для указанного домена.
    • Пример значения: true (включено).
  8. proxy_timeout (int):

    • Описание: Таймаут для прокси-соединений в секундах.
    • Пример значения: 5.
  9. proxy_idle_timeout (int):

    • Описание: Таймаут прокси-соединений при отсутствии активности в секундах.
    • Пример значения: 10.
  10. proxy_secret_key (string):

  • Описание: Секретный ключ для обеспечения безопасности прокси-соединений.
  • Пример значения: mySecretKey.

Эти параметры предоставляют гибкий контроль над настройками Gate-сервера, включая безопасность, режимы работы и использование SSL-сертификатов через Let’s Encrypt.

Запуск сервера

Gate сервер встроен в систему smart-home как отдельный режим, включаемый аргументом `gate``.

./smart-home help gate
Organization of remote access without white IP

Usage:
  server gate [flags]

Flags:
  -h, --help   help for gate


./smart-home gate

  ___      _
 / __|__ _| |_ ___
| (_ / _' |  _/ -_)
 \___\__,_|\__\___|


INFO	gate            	server/gate_server.go:93 >	Started ...
INFO	gate            	server/server.go:117 >	server started at :8080