• Stars
    star
    200
  • Rank 195,325 (Top 4 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Large-scale server monitoring application written in Golang

Platypus

Simple realtime server monitoring

CircleCI https://img.shields.io/badge/demo-status.gmem.ca-black.svg https://img.shields.io/badge/frontend-gmemstr%2Fplatypus--react-blue.svg

Dependencies

go get github.com/gorilla/mux
go get github.com/gorilla/websocket
go get github.com/go-yaml/yaml
go get github.com/shirou/gopsutil

Usage

Master server:

go build -o platypus main.go
chmod +x platypus
./platypus

Client servers:

go build -o platypus_client client/client.go
chmod +x platypus_client
nano config.yml
# Input your secret key and master server IP here, secret key found on master server in .secret
# master: example.com
# secret: s3cr3tk3y
# End config
./platypus_client

Navigate to your master server and check out the stats.

Rewrite

Rewriting this from the ground up. Why did I do this in Python.

The goal of the rewrite is to move away from using Python for the entire stack and instead break things up into smaller chunks, maybe moving this to it's own GitHub / Gitlab org, which will allow it to be much more modular and open ended when it comes to what kind of information you want to monitor and how.

Steps

  1. Rewriting the core functionality, which is a basic stats dashboard and server management through an admin interface. We also want to rethink how to handle Active Online Reporting - websockets still seems like the best option for this but there's got to be a better way. Might opt for Go master server side as it's something I have experience in and should offer good performance etc.

  2. Rebuild the client based on the specifications of #1, and deciding the best way to build and distribute the package w/ configuration - I personally want to go with something we can compile into a very small package and ship with a master server-generated configuration file of some sort. Was thinking C++ might be a good option over Go size wise but there could be additional time overhead.

  3. Write a straightforward API both client (or "node") side, which would allow applications to construct and send custom messages to the master server, and master server side, which will handle said customer messages. This should be fairly straightforward once we have #1 and #2 complete.

  4. A plugin system - I don't really know what form this would take since it's pretty far down the line, but it's something to consider. Some sort of simple scripting language that we can easily write an interpreter for in Go for the master server and would expose various variables / functions.

More Repositories

1

pogo

Audio feed generator and CMS
Go
70
star
2

sliproad

Merge filesystems together.
Go
9
star
3

no-swears

Clean up your JavaScript strings and remove those filthy words.
JavaScript
8
star
4

flutter-fastlane-android

Flutter/fastlane Android Docker Images
Dockerfile
5
star
5

banana-clj

Encode and decode banana.
Clojure
4
star
6

dotfiles

Dotfiles
Emacs Lisp
4
star
7

go-nginx

Generate nginx configs with Go
Go
4
star
8

pogo-vue

Rewrite of Pogo's frontend in Vue.js to match the admin interface
JavaScript
3
star
9

hue-webapp

Small webapp for controlling hue lights
Python
3
star
10

replnote

Notepad with embeded Clojure REPL.
Clojure
3
star
11

giftogifv

quickly converts .gif links to .gifv on Imgur.
JavaScript
3
star
12

database-janitor

custommized database dumps, with native drupal configuration support
PHP
3
star
13

webbot

Converts messages in Discord channel to RSS w/ frontend
Python
2
star
14

gmemstr.github.io

Source for GabrielSimmer.com
CSS
2
star
15

whalepod

Mass Dockerfile generator written in Rust (experimental)
Rust
2
star
16

nerdcubed

Redesign for nerdcubed.co.uk
JavaScript
1
star
17

clims

basic cms using your local cli for posting
Python
1
star
18

mcpluginstats

Analytics project for Minecraft plugins
PHP
1
star
19

nvidia-driver-update-tool

Check for NVIDIA GPU driver updates.
C#
1
star
20

jobs

Simple job board written in PHP + ReactJS
JavaScript
1
star
21

platypus-react

JavaScript
1
star
22

servmineUP

small php utility for checking if a server is up
PHP
1
star
23

gguix

Personal Guix channel
Scheme
1
star
24

fa-search

Quicky search for fontawesome icons
Python
1
star
25

circleci-api-scripts

Collection of scripts for interacting with the CircleCI API
Python
1
star
26

well-known-fursona

mirror of https://git.sr.ht/~gmem/well-known-fursona
Svelte
1
star