Aller au contenu principal

Gotify

1. Description​

2. Installation​

2.1. Installer le binaire gotify​

  • Télécharger la dernière version de gotify
$ wget https://github.com/gotify/server/releases/download/v2.6.3/gotify-linux-amd64.zip
  • Ajouter un utilisateur gotify
$ sudo mkdir -p /opt/gotify/data
$ sudo adduser --system --home-dir /opt/gotify --shell /sbin/nologin gotify
$ sudo chown -R gotify:gotify /opt/gotify
$ sudo mkdir /var/log/gotify
$ sudo chown gotify /var/log/gotify
  • Décompresser et changer les permissions de gotify
$ unzip gotify-linux-amd64.zip
$ chmod +x gotify-linux-amd64
$ sudo mv gotify-linux-amd64 /opt/gotify/gotify-linux-adm64

2.2. Configurer gotify​

  • Créer le fichier /opt/gotify/config.yml
server:
keepaliveperiodseconds: 0
listenaddr: '127.0.0.1'
port: 8080

ssl:
# if https should be enabled
enabled: false
# redirect to https if site is accessed by http
redirecttohttps: true
listenaddr: ''
port: 8443
certfile: '/etc/pki/tls/certs/notif1.home.lab.pem'
certkey: '/etc/pki/tls/private/notif1.home.lab.key'
letsencrypt:
enabled: false

cors:
alloworigins:
# - ".+.example.com"
# - "otherdomain.com"
allowmethods:
# - "GET"
# - "POST"
allowheaders:
# - "Authorization"
# - "content-type"

stream:
# the interval in which websocket pings will be sent.
pingperiodseconds: 45
# allowed origins for websocket connections
# (same origin is always allowed, default only same origin)
allowedorigins:
# - ".+.example.com"
# - "otherdomain.com"

database:
dialect: sqlite3
connection: /opt/gotify/data/gotify.db

defaultuser:
name: admin
pass: admin

# the bcrypt password strength (higher = better but also slower)
passstrength: 10

# the directory for storing uploaded images
uploadedimagesdir: /opt/gotify/data/images

# the directory where plugin resides (leave empty to disable plugins)
pluginsdir: /opt/gotify/data/plugins

# enable registrations
registration: false
  • Changer les permissions du fichier de config
$ sudo chmod go-rw /etc/gotify/config.yml

2.3. Créer un certificat​

$ sudo ipa-getcert request \
-f /etc/pki/tls/certs/notif1.home.lab.pem \
-k /etc/pki/tls/private/notif1.home.lab.key \
-K host/notif1.home.lab \
-N "CN=notif1.home.lab" \
-D notif1.home.lab \
-D notif1
$ sudo chmod a+r /etc/pki/tls/certs/notif1.home.lab.pem
$ sudo chown gotify /etc/pki/tls/private/notif1.home.lab.key

2.4. Configurer les règles de firewall​

$ sudo firewall-cmd --permanent --add-port=8443/tcp
$ sudo firewall-cmd --reload

2.5. Créer un script de démarrage​

  • Créer le fichier /opt/gotify/gotify.service
[Unit]
Description=Gotify
Requires=network.target
After=network.target

[Service]
Type=simple
User=gotify
WorkingDirectory=/opt/gotify
ExecStart=/opt/gotify/gotify-linux-adm64
StandardOutput=append:/var/log/gotify/gotify.log
StandardError=append:/var/log/gotify/gotify-error.log
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
  • Changer les permissions SELinux du binaire
$ sudo semanage fcontext -a -t bin_t "/opt/gotify/gotify-linux-amd64"
$ sudo restorecon -v /opt/gotify/gotify-linux-amd64
  • Activer le service gotify
$ sudo ln -s /opt/gotify/gotify.service /etc/systemd/system/gotify.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now gotify

3. Utilisation de gotify​

  • Créer un utilisateur