Gate
Gate-сервер в системе Smart Home представляет собой ключевой компонент, обеспечивающий безопасный и удобный удаленный доступ к умному дому даже при отсутствии статического IP-адреса. Этот сервер позволяет пользователям управлять и мониторить свой дом из любой точки мира через интернет, обеспечивая защиту данных и комфортное взаимодействие.
Преимущества Gate-сервера в системе Smart Home
- 
Безопасность: - Шифрование данных: Все данные, передаваемые между устройствами и Gate-сервером, шифруются для предотвращения несанкционированного доступа.
- Аутентификация: Встроенные механизмы аутентификации гарантируют, что только авторизованные пользователи имеют доступ к системе.
 
- 
Удобство Удаленного Доступа: - Без белого IP: Пользователи могут подключаться к системе даже при отсутствии статического IP-адреса, что делает удаленный доступ более удобным и доступным.
 
- 
Гибкость настройки: - Подключение к тестовому шлюзу: Smart Home предоставляет встроенный Gate-клиент, который может подключаться к тестовому шлюзу по адресу https://gate.e154.ru:8443 для тестирования и настройки удаленного доступа.
 
- 
Масштабируемость: - Поддержка множества устройств: Gate-сервер спроектирован для обработки одновременных запросов от множества устройств, обеспечивая масштабируемость системы.
 
Работа с Gate-клиентом в системе Smart Home
- 
Настройка Gate-клиента: - Включите режим Gate-сервера в системе Smart Home, указав адрес тестового шлюза или установив свой Gate-сервер.
- Настройте параметры безопасности, такие как шифрование и аутентификация.
 
- 
Подключение к Gate-серверу: - Gate-клиент автоматически устанавливает безопасное соединение с Gate-сервером, не требуя белого IP-адреса.
- Пользователи могут использовать мобильные приложения или веб-интерфейс для удаленного доступа.
 
- 
Безопасное Удаленное Управление: - Пользователи могут управлять устройствами, мониторить статус дома и получать уведомления даже находясь вдали от дома.
 
Конфигурация сервера
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:
- 
http_port(int):- Описание: Порт для HTTP API сервера.
- Пример значения: 8080.
 
- 
https_port(int):- Описание: Порт для HTTPS API сервера.
- Пример значения: 8443.
 
- 
debug(bool):- Описание: Включение режима отладки API сервера.
- Пример значения: true(включено).
 
- 
gzip(bool):- Описание: Включение сжатия Gzip для API запросов.
- Пример значения: true(включено).
 
- 
domain(string):- Описание: Доменное имя для Gate-сервера.
- Пример значения: example.com.
 
- 
pprof(bool):- Описание: Включение режима профилирования сервера.
- Пример значения: true(включено).
 
- 
https(bool):- Описание: Включение использования Let’s Encrypt для автоматического получения SSL-сертификата для указанного домена.
- Пример значения: true(включено).
 
- 
proxy_timeout(int):- Описание: Таймаут для прокси-соединений в секундах.
- Пример значения: 5.
 
- 
proxy_idle_timeout(int):- Описание: Таймаут прокси-соединений при отсутствии активности в секундах.
- Пример значения: 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