https://github.com/rdavid/pulse
Client-server network communication.
https://github.com/rdavid/pulse
Last synced: 9 months ago
JSON representation
Client-server network communication.
- Host: GitHub
- URL: https://github.com/rdavid/pulse
- Owner: rdavid
- License: 0bsd
- Created: 2025-08-26T22:15:18.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-09-03T12:40:12.000Z (10 months ago)
- Last Synced: 2025-09-03T14:37:55.122Z (10 months ago)
- Language: Stata
- Homepage:
- Size: 40 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
// Settings:
:toc: macro
:!toc-title:
// URLs:
:img-build: https://github.com/rdavid/pulse/actions/workflows/build.yml/badge.svg
:img-hoc: https://hitsofcode.com/github/rdavid/pulse?branch=master&label=hits%20of%20code
:img-license: https://img.shields.io/github/license/rdavid/pulse?color=blue&labelColor=gray&logo=freebsd&logoColor=lightgray&style=flat
:img-releases: https://img.shields.io/github/v/release/rdavid/pulse?color=blue&label=%20&logo=semver&logoColor=white&style=flat
:img-test-lnx: https://github.com/rdavid/pulse/actions/workflows/test-lnx.yml/badge.svg
:img-test-mac: https://github.com/rdavid/pulse/actions/workflows/test-mac.yml/badge.svg
:url-actionlint: https://github.com/rhysd/actionlint
:url-build: https://github.com/rdavid/pulse/actions/workflows/build.yml
:url-cv: http://cv.rabkin.co.il
:url-goredo: http://www.goredo.cypherpunks.su/Install.html
:url-hadolint: https://github.com/hadolint/hadolint
:url-hoc: https://hitsofcode.com/view/github/rdavid/pulse?branch=master
:url-license: https://github.com/rdavid/pulse/blob/master/LICENSES/0BSD.txt
:url-redo: http://cr.yp.to/redo.html
:url-releases: https://github.com/rdavid/pulse/releases
:url-reuse: https://github.com/fsfe/reuse-action
:url-shellbase: https://github.com/rdavid/shellbase
:url-shellcheck: https://github.com/koalaman/shellcheck
:url-shfmt: https://github.com/mvdan/sh
:url-test-lnx: https://github.com/rdavid/pulse/actions/workflows/test-lnx.yml
:url-test-mac: https://github.com/rdavid/pulse/actions/workflows/test-mac.yml
:url-typos: https://github.com/crate-ci/typos
:url-yamllint: https://github.com/adrienverge/yamllint
= Pulse
image:{img-build}[build,link={build}]
image:{img-test-lnx}[test lnx,link={url-test-lnx}]
image:{img-test-mac}[test mac,link={url-test-mac}]
image:{img-hoc}[hits of code,link={url-hoc}]
image:{img-releases}[release),link={url-releases}]
image:{img-license}[license,link={url-license}]
toc::[]
== About
Pulse is a client-server network communication project.
It creates a connection between a server and a client using containers, and
shares the client’s monitoring information with the server.
The project is implemented using POSIX-compliant Shell
`Portable Operating System Interface for uniX`, and utilizes the Unix shell
framework {url-shellbase}[`shellbase`].
== Objectives
`ubuntu:24.04` is used as the base image for both the client and the server.
The client collects and sends the following data to the server every five
seconds:
* Host uptime
* Host network interface names and IP addresses
The server stores the client data in a database.
After receiving five status updates, the server sends a restart signal, causing
the service within the client container to restart.
== Build And Start
To build and start the containers with Podman Compose:
[,sh]
----
# Starts VM.
podman machine start
# Builds both images and start containers.
podman-compose up --build
# Stops and removes containers.
podman-compose down
# Stops VM.
podman machine stop
----
== Test
The project uses Daniel J. Bernstein's build system {url-redo}[`redo`].
You can install Sergey Matveev's {url-goredo}[`goredo`] implementation.
`redo lint` applies the following linters to the source files:
{url-actionlint}[`actionlint`],
{url-hadolint}[`hadolint`],
{url-reuse}[`reuse`],
{url-shellcheck}[`shellcheck`],
{url-shfmt}[`shfmt`],
{url-typos}[`typos`],
{url-yamllint}[`yamllint`].
== License
`pulse` is copyright {url-cv}[David Rabkin] and available under a
{url-license}[Zero-Clause BSD license].