pulse

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

README

Pulse

A key counting docker server/client. The server will ingest key counts from authenticated clients. Clients allow registration and login against the server. Multiple clients can be added to a single user.

Configuring the client

Create a compose.yml file as such:

services:
  pulse-client:
    image: titpetric/pulse
    user: root
    privileged: true
    volumes:
      - $PWD/data:/app
      - /dev/input:/dev/input:ro
    command:
      - "record"
      - "--name"
      - "REPLACE_WITH_DEVICE_NAME"
      - "--server"
      - "http://pulse.incubator.to"

Note that reading from keyboard uses:

  • privileged: true - ability to read from devices,
  • user: root - the filesystem permissions for dev/input

Starting the client

A client first needs to authenticate to a server, and store it's configuration. First, create a data/ folder and give it write permissions. This is used to store authentication details for the pulse client. It stores no other data.

mkdir -p data
chmod a+rwx data

By now you should have:

data/
compose.yml

First, create an user on the pulse server:

docker compose run --rm pulse-client register --server http://pulse.incubator.to

And to start sending data start the pulse client:

docker compose up -d

Running your own server

You can self host your own pulse server.

See ./compose.yml and ./compose.client.yml for server configuration.

Authenticating against the local pulse server:

docker compose run --rm pulse-client register --server http://pulse:8080

Documentation

Overview

Package pulse provides keystroke activity tracking and reporting.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewModule

func NewModule() *service.PulseModule

NewModule creates a new pulse service module.

Types

This section is empty.

Directories

Path Synopsis
Package client provides an HTTP client for the pulse server API.
Package client provides an HTTP client for the pulse server API.
cmd
pulse command
pulse/login
Package login implements the pulse login command.
Package login implements the pulse login command.
pulse/record
Package record implements the pulse keystroke recording command.
Package record implements the pulse keystroke recording command.
pulse/register
Package register implements the pulse user registration command.
Package register implements the pulse user registration command.
pulse/server
Package server implements the pulse HTTP server command.
Package server implements the pulse HTTP server command.
Package service implements the pulse HTTP service module.
Package service implements the pulse HTTP service module.
Package storage provides database persistence for pulse data.
Package storage provides database persistence for pulse data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL