81 lines
1.8 KiB
Markdown
81 lines
1.8 KiB
Markdown
# Broadcast
|
|
|
|
[English version](./README.en.md)
|
|
|
|
Per controllare l'esecuzione di un programma via web.
|
|
|
|
## Descrizione
|
|
|
|
`broadcast` è una semplice applicazione web per controllare un altro programma in
|
|
esecuzione. Ci sono 3 modi in cui questo può avvenire:
|
|
|
|
1. direttamente, specificando percorso assoluto del binario e tutte le opzioni
|
|
2. attraverso una unit systemd, specificando l'opzione `-systemd` (e opzionalmente
|
|
`-systemd-as-user` per indicare che la unit è di tipo *user*)
|
|
3. controllando un docker container già in esecuzione (n.b.: il container deve avere
|
|
un nome, specificato con `--name` e deve già esistere (può essere in pausa))
|
|
|
|
Il programma espone un'interfaccia web, di default su `0.0.0.0:8080`, controllabile con
|
|
il parametro `-addr` a riga di comando.
|
|
|
|
## Esempi
|
|
|
|
Per scopi di test, questa repository include un programma go che stampa una stringa ogni
|
|
secondo: [echo](./cmd/echo/). Lo useremo negli esempi successivi.
|
|
|
|
### 1. direttamente
|
|
|
|
```
|
|
broadcast /path/to/echo
|
|
```
|
|
|
|
### 2. unit systemd
|
|
|
|
Assumendo che esista una unit `echo.service`
|
|
|
|
```
|
|
broadcast -systemd -systemd-as-user echo.service
|
|
```
|
|
|
|
### 3. container docker
|
|
|
|
Assumendo che già esista un container docker, lanciato ad esempio con
|
|
|
|
```
|
|
docker run --name echo --rm -ti echo
|
|
```
|
|
|
|
```
|
|
broadcast -docker echo
|
|
```
|
|
|
|
## Sviluppo
|
|
|
|
Il progetto include un [`Makefile`](./Makefile) per facilitare alcuni compiti. Si può
|
|
iniziare una sessione di sviluppo, innanzitutto facendo il build delle immagini
|
|
necessarie
|
|
|
|
```
|
|
make dev-build
|
|
```
|
|
|
|
Si può quindi lanciare uno stack docker compose così
|
|
|
|
```
|
|
make dev
|
|
```
|
|
|
|
Per fare la build degli artefatti (verranno creati in [bin/](./bin/)) (`libsystemd-dev`
|
|
è un prerequisito)
|
|
|
|
```
|
|
make build
|
|
```
|
|
|
|
## Licenza
|
|
|
|
GPL-v3 o successive.
|
|
|
|
|
|
<!-- vim: set et ts=2 sts=0 sw=0 ft=markdown tw=88 spell spl=it: -->
|