Cleaning README, adding systemd service file

This commit is contained in:
kirby 2023-05-12 10:35:59 +02:00
parent 85b0cffdad
commit b94c8800b0
2 changed files with 23 additions and 4 deletions

View File

@ -4,9 +4,13 @@
Un démon simple écrit en Go qui prend une requête PURGE en entrée et la transmet à plusieurs serveurs varnish.
## Installation
L'installation se fait via un playbook dans le dépot [ansible-dev](https://gitlab.infolegale.net/infrastructure/ansible-dev/-/blob/master/playbooks/http-broadcaster.yml).
Le rôle va se charger de déposer l'artefact créé par la pipeline de ce projet, le fichier de service systemd et démarrer le démon.
Le rôle dépose également la liste des serveurs varnish à côté du binaire, au format :
* Compiler le programme
```
cd app/
go get ./...
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o ../build/http-broadcaster main.go
```
* Déposer la liste des serveurs varnish à côté du binaire, avec ce format :
```
http://10.13.32.1:6081,http://10.13.32.2:6081
```
@ -16,7 +20,7 @@ http://10.13.32.1:6081,http://10.13.32.2:6081
* Génère la liste des serveurs Varnish en lisant le fichier "varnish" présent à côté du binaire.
* Ecoute sur le port 6081.
* Healthcheck disponible sur l'uri /healthcheck pour vérifier son bon fonctionnement. Renvoie un code HTTP 200 et le message "OK".
* Traite toutes les requêtes entrantes comme l'url à purger dans varnish. Par exemple un appel sur http://10.13.101.11:6081/codes/api/greffes/0101 entrainera une purge de l'uri "/codes/api/greffes/0101" sur les serveurs Varnish.
* Traite toutes les requêtes entrantes comme l'url à purger dans varnish. Par exemple un appel sur http://10.13.101.11:6081/hello/test entrainera une purge de l'uri "/hello/test" sur les serveurs Varnish.
## Usage
Les interactions se font via le protocol HTTP. Les applications où les utilisateurs envoient une requête de méthode PURGE vers le démon.

15
app/http-broadcaster.service Executable file
View File

@ -0,0 +1,15 @@
[Unit]
Description=Daemon de broadcast HTTP des purges varnish
[Service]
User={{ app_user }}
Group={{ app_user }}
WorkingDirectory=/opt/http-broadcaster/
ExecStart=opt/http-broadcaster/http-broadcaster
Type=simple
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target