Code By
Lucas Mouilleron

62 projects - An Open Source selection

TSDataCenter

Java 99.8% - PHP 0.2% - Shell 0%
Last update : 19/07/2018 - 18:23
TSDataCenter software.
Project is private, can't show more.

TSAnalysisWorld

Python 99.6% - CSS 0.3% - Shell 0.1%
Last update : 19/07/2018 - 16:41
Analysis framework.
Project is private, can't show more.

TSMagellan

Python 98.1% - Shell 1.3% - CSS 0.5%
Last update : 18/07/2018 - 13:54
TSMagellan environment. Main software, scripts and docs.
Project is private, can't show more.

TSDeGama

Python 97.7% - CSS 1.2% - Shell 1.1%
Last update : 17/07/2018 - 14:49
Interactive analysis framework.
Project is private, can't show more.

devResources

Shell 96.5% - PHP 3.1% - CSS 0.4%
Last update : 16/07/2018 - 23:13
Non exhaustive shitily agregated dev resources. Sorry.
Project is private, can't show more.

TSSysAdmin

Python 91.6% - Shell 4.8% - Scheme 3.5% - Vim script 0.1%
Last update : 10/07/2018 - 14:07
System administration tools.
Project is private, can't show more.

siteERAAM

PHP 56.6% - HTML 19% - JavaScript 13.5% - CSS 8.9% - Shell 2%
Last update : 04/07/2018 - 16:15
Project is private, can't show more.

+ heartBeat

Python 67.3% - Java 23.5% - JavaScript 7.1% - Shell 1.9% - HTML 0.1%
Last update : 03/06/2018 - 10:42

Screenshot

An implementation of heartbeat monitoring.

Definitions

  • The server is in charge of monitoring services
  • When a service is considered dead, the server then alerts its owner
  • A service is a pulsing agent
  • A pulse is a sign of aliveness
  • When a service pulse the server, it tells him when he will pulse again in the worst case
  • If the service has not pulsed again in time, the server considers the service dead and alerts its owner
  • When a service is no longer required, it must inform the server to avoid a false dead alerts
  • An Alert can be a mail, a pushover message, etc.

Implementation

  • HTTP client / server architecture
  • All queries protected by password set in HTTP headers under "password"
  • Protocol :
    • Pulse :
      • POST /
      • {"service":"SERVICE_NAME","alertType":"ALERT_TYPE","alertTarget":"TARGET_NAME","nextIn":EXPECTED_NEXT_HEARTBEAT_IN_SECS}
    • Cancel :
      • DELETE /
      • {"service":"SERVICE_NAME"}
    • List :
      • GET /

Server

  • ./server
  • python3
  • Dependencies : pip install -r requirements.txt
  • Config :
    • config/config.json : main config (cp config/sample.json config/config.json)
    • config/server.crt, config/server.key : SSL certificate, used only if SSL activated
  • Datas : data
  • Deploy :
    • Install dependencies
    • Setup config
    • Generate ssl certificates (optional)
    • Hook in with upstart (optional, ./server/config/sample.upstart.conf, http://upstart.ubuntu.com/getting-started.html)
  • Run : python server.py
  • Docker :
    • ./docker
    • Config : place server config files in ./docker/config
    • Interactive : cd docker && tools/dockerBuild && tools/dockerRun
    • Detached : cd docker && tools/dockerBuild && tools/dockerRunDetached

Java Client

  • ./clientJava
  • Java 7+
  • No dependencies
  • Run test :

Python Client

  • ./clientPython
  • python3
  • Dependencies : requests (pip install requests)
  • Run test : python test.py

Javascript client

  • ./clientJavascript
  • client.js is a node module
  • Dependencies : packages.json -> devDependencies (npm install)
  • Run test : node test.js
  • Run test in browser : browserify test.js -o bundle.js and open test.html in browser

Certificates

  • Self signed : openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
  • Letsencrypt : TODO

TODO

  • Put data writing in a queue
  • Put alert sending in a queue

macInstaller

Shell 68.1% - PHP 21.9% - Python 6.2% - Ruby 3.8%
Last update : 25/05/2018 - 18:39
Installer for a new Mac.
Project is private, can't show more.

TSDashboard

HTML 70.6% - CSS 9.6% - JavaScript 9.5% - Python 6.9% - Shell 2.5% - PHP 0.8%
Last update : 20/05/2018 - 14:30
Content agnostic dashboard app.
Project is private, can't show more.