mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-21 21:33:22 +01:00
Allow to configure scheme for MQTT broker (#292)
This commit is contained in:
committed by
GitHub
parent
456b1f5e5c
commit
b912aee5e4
@@ -8,6 +8,7 @@ You can send notifications to any MQTT compatible server with the following sett
|
||||
```yaml
|
||||
notif:
|
||||
mqtt:
|
||||
scheme: mqtt
|
||||
host: localhost
|
||||
port: 1883
|
||||
username: guest
|
||||
@@ -19,6 +20,7 @@ You can send notifications to any MQTT compatible server with the following sett
|
||||
|
||||
| Name | Default | Description |
|
||||
|--------------------|---------------|---------------|
|
||||
| `scheme`[^1] | `mqtt` | MQTT server scheme (`mqtt`, `mqtts`, `ws` or `wss`) |
|
||||
| `host`[^1] | `localhost` | MQTT server host |
|
||||
| `port`[^1] | `1883` | MQTT server port |
|
||||
| `username` | | MQTT username |
|
||||
@@ -30,6 +32,7 @@ You can send notifications to any MQTT compatible server with the following sett
|
||||
| `qos` | `0` | Ensured message delivery at specified Quality of Service (QoS) |
|
||||
|
||||
!!! abstract "Environment variables"
|
||||
* `DIUN_NOTIF_MQTT_SCHEME`
|
||||
* `DIUN_NOTIF_MQTT_HOST`
|
||||
* `DIUN_NOTIF_MQTT_PORT`
|
||||
* `DIUN_NOTIF_MQTT_USERNAME`
|
||||
|
||||
@@ -123,6 +123,7 @@ func TestLoadFile(t *testing.T) {
|
||||
MsgType: model.NotifMatrixMsgTypeNotice,
|
||||
},
|
||||
Mqtt: &model.NotifMqtt{
|
||||
Scheme: "mqtt",
|
||||
Host: "localhost",
|
||||
Port: 1883,
|
||||
Username: "guest",
|
||||
|
||||
@@ -44,6 +44,7 @@ notif:
|
||||
password: bar
|
||||
roomID: "!abcdefGHIjklmno:matrix.org"
|
||||
mqtt:
|
||||
scheme: "mqtt"
|
||||
host: "localhost"
|
||||
port: 1883
|
||||
username: "guest"
|
||||
|
||||
@@ -44,6 +44,7 @@ notif:
|
||||
password: bar
|
||||
roomID: "!abcdefGHIjklmno:matrix.org"
|
||||
mqtt:
|
||||
scheme: "mqtt"
|
||||
host: "localhost"
|
||||
port: 1883
|
||||
username: "guest"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package model
|
||||
|
||||
type NotifMqtt struct {
|
||||
Scheme string `yaml:"scheme,omitempty" json:"scheme,omitempty" validate:"required,oneof=mqtt mqtts ws wss"`
|
||||
Host string `yaml:"host,omitempty" json:"host,omitempty" validate:"required"`
|
||||
Port int `yaml:"port,omitempty" json:"port,omitempty" validate:"required,min=1"`
|
||||
Username string `yaml:"username,omitempty" json:"username,omitempty" validate:"omitempty"`
|
||||
@@ -21,6 +22,7 @@ func (s *NotifMqtt) GetDefaults() *NotifMqtt {
|
||||
|
||||
// SetDefaults sets the default values
|
||||
func (s *NotifMqtt) SetDefaults() {
|
||||
s.Scheme = "mqtt"
|
||||
s.Host = "localhost"
|
||||
s.Port = 1883
|
||||
s.QoS = 0
|
||||
|
||||
@@ -49,7 +49,7 @@ func (c *Client) Send(entry model.NotifEntry) error {
|
||||
return err
|
||||
}
|
||||
|
||||
broker := fmt.Sprintf("tcp://%s:%d", c.cfg.Host, c.cfg.Port)
|
||||
broker := fmt.Sprintf("%s://%s:%d", c.cfg.Scheme, c.cfg.Host, c.cfg.Port)
|
||||
opts := MQTT.NewClientOptions().AddBroker(broker).SetClientID(c.cfg.Client)
|
||||
opts.Username = username
|
||||
opts.Password = password
|
||||
|
||||
Reference in New Issue
Block a user