78 lines
1.7 KiB
Markdown
78 lines
1.7 KiB
Markdown
# Broadcast
|
|
|
|
Control the execution of a program via web interface.
|
|
|
|
## Description
|
|
|
|
`broadcast` is a simple web application to control another executable program. There are
|
|
3 methods to do so:
|
|
|
|
1. directly, specifying the binary absolute path and all command line options
|
|
2. via a systemd unit, specifying the `-systemd` flag (and optionally the
|
|
`-systemd-as-user` flag, to signal that the unit is a user one)
|
|
3. controlling an already existing docker container (note: it has to be already
|
|
exinsting -although it can be paused- and have a name with the `--name` option)
|
|
|
|
The program exposes a web interface, defaulting on `0.0.0.0:8080`, that can be specified
|
|
using the `-addr` parameter.
|
|
|
|
## Examples
|
|
|
|
For the sake of testing, this repository includes a simple program that prints a string
|
|
every second: [echo](./cmd/echo/). We will use it in the following examples.
|
|
|
|
### 1. directly
|
|
|
|
```
|
|
broadcast /path/to/echo
|
|
```
|
|
|
|
### 2. systemd unit
|
|
|
|
Assuming an already existing unit named `echo.service`
|
|
|
|
```
|
|
broadcast -systemd -systemd-as-user echo.service
|
|
```
|
|
|
|
### 3. docker container
|
|
|
|
Assuming there already exists a docker container, started for example with
|
|
|
|
```
|
|
docker run --name echo --rm -ti echo
|
|
```
|
|
|
|
```
|
|
broadcast -docker echo
|
|
```
|
|
|
|
## Develop
|
|
|
|
The project includes a [`Makefile`](./Makefile) to ease some tasks. It is possible to
|
|
begin a developing session, first building the needed images with
|
|
|
|
```
|
|
make dev-build
|
|
```
|
|
|
|
It is then possible to launch a docker compose stack with
|
|
|
|
```
|
|
make dev
|
|
```
|
|
|
|
In order to build the artifacts (output to [bin/](./bin/)) (note that `libsystemd-dev`
|
|
is a prerequisite)
|
|
|
|
```
|
|
make build
|
|
```
|
|
|
|
## License
|
|
|
|
GPL-v3 or following.
|
|
|
|
|
|
<!-- vim: set et ts=2 sts=0 sw=0 ft=markdown tw=88 spell spl=en: -->
|