Skip to content

AdminXVII/tasks

Tasks tracker

This is an helper that keep tracks of long-running job remotely. The interface listen to Server-Sent Events at a given URL which are sent by custom libraires.

Front-end

This is the front end website. Look at chezxavier.ga/tasks for publicly available front end. You can also download the dist folder for a static version (no backend is required, but you may have some problems with CORS) <<<<<<< HEAD

Backend

See github.com/AdminXVII/tasks for the main utility

Tasks send info to the server through custom libraires. The server then transmits it via a Server-Sent Events on a net socket

Network

The daemon is by default bound to 127.0.0.1:9000 for security concern (you dont want your LAN to listen to your tasks).

It can be bound to 0.0.0.0 by the -P (public) flag (this is not recommended) and to custom port with the -p flag

To transfer the data trough a network, it is recommended to bind the local port to the remote port using SSH port forwarding, so data can only be access on authorized computers. e.g.

ssh -L 9000:localhost:9000 -Nf <user>@<server>

Usage

  1. Open your browser and navigate to https://chezxavier.ga/tasks
  2. Start the server and tasks (github.com/AdminXVII/tasks)
  3. Watch your tasks

API

Browser side

The net protocol this server uses is Server-Sent Events. Each task gets a unique ID for its entire duration (i.e. UIDs get reused after a while). Three events are defined: 1-new: A new task is born. Content is a name. 2-msg: Update sent by task. Content is the update. 3-end: The task died. Content is an error message or an empty string to display the last message.

Data is provided as JSON mapping UIDs to the content. i.e.:

{
  uid (int): content (string),
  ...
}

Tasks side

Events are provided as sequential packets through a UNIX socket (by default it is located at /run/tasks.sock as a systemd service or /tmp/tasks.sock otherwise). The first packet defines the name and subsequent packets are defined as messages. Interruption of the communication is understood as the end of task.

Implementation restrictions

  • The name is truncated after 100 characters
  • Messages are truncated after 1000 characters =======

Backend

See github.com/tasks for the main utility

51276957258a519a31f3fce2f5003265e4cc6403

About

Remote way of keeping track of running tasks

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors