• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Go
  • License
    Other
  • Created over 5 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

ssh [email protected] [shutdown due to covid-19]
# SHUTDOWN DUE TO COVID-19

# baxx.dev

check it out `ssh [email protected]`

[ work in progress ]

* https://baxx.dev/help
* TODO.txt
* infra and pricing.txt
* stat (disk usage, mem, mdadm) https://baxx.dev/stat
# backup service
(also i am learning how to build a product without a website haha)

# screenshots

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                               β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—              β”‚
β”‚ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•              β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ•”β•  β•šβ–ˆβ–ˆβ–ˆβ•”β•               β”‚
β”‚ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—               β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—              β”‚
β”‚ β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•              β”‚
β”‚                                               β”‚
β”‚ Storage 10G                                   β”‚
β”‚   Trial 1 Month 0.1 EUR                       β”‚
β”‚   Subscription: 5 EUR per Month               β”‚
β”‚   Availability: ALPHA                         β”‚
β”‚                                               β”‚
β”‚ Contact Us:                                   β”‚
β”‚  * Slack         https://baxx.dev/join/slack  β”‚
β”‚  * Google Groups https://baxx.dev/join/groups β”‚
β”‚                                               β”‚
β”‚ E-mail                                        β”‚
β”‚                                               β”‚
β”‚ Password                                      β”‚
β”‚                                               β”‚
β”‚ Confirm Password                              β”‚
β”‚                                               β”‚
β”‚                                               β”‚
β”‚ Registering means you agree with              β”‚
β”‚ the terms of service!                         β”‚
β”‚                                               β”‚
β”‚              [Register]  [Login]              β”‚
β”‚                                               β”‚
β”‚   [Help]  [What/Why/How]  [Terms Of Service]  β”‚
β”‚                                               β”‚
β”‚                     [Quit]                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜



β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                          β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—                                         β”‚
β”‚ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•                                         β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ•”β•  β•šβ–ˆβ–ˆβ–ˆβ•”β•                                          β”‚
β”‚ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—                                          β”‚
β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—                                         β”‚
β”‚ β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•                                         β”‚
β”‚                                                                          β”‚
β”‚                                                                          β”‚
β”‚ Email: [email protected]                                               β”‚
β”‚ Verification pending.                                                    β”‚
β”‚ Please check your spam folder.                                           β”‚
β”‚                                                                          β”‚
β”‚ Subscription:                                                            β”‚
β”‚ Activate at https://baxx.dev/sub/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX    β”‚
β”‚                                                                          β”‚
β”‚ Refreshing.. -                                                           β”‚
β”‚                                                                          β”‚
β”‚                [β–ˆHelp] [Resend Verification Email]  [Quit]               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


# who watches the watchers

the current baxx infra progress is

2 machines, each running only docker and ssh

[ b.baxx.dev ]
* ssh
* docker
  + postgres-master
  + nginx + letsencrypt
  + who watches the watchers [πŸ‘Ήjob]
  + run notification rules [πŸ‘Ήjob]
  + process email queue [πŸ‘Ήjob]
  + collect memory/disk/mdadam stats [privileged] [πŸ‘Ήjob] (priv because mdadm)
  + baxx-api
  + judoc [localhost]
  + scylla [privileged] (priv because of io tunning)

[ a.baxx.dev ]
* ssh
* docker
  + postgres-slave
  + nginx + letsencrypt
  + who watches the watchers [πŸ‘Ήjob]
  + process email queue [πŸ‘Ήjob]
  + collect memory/disk/mdadam stats [privileged] [πŸ‘Ήjob] (priv because mdadm)
  + baxx-api
  + judoc [localhost]
  + scylla [privileged] (priv because of io tunning)

as you can see both machines are in the scylla cluster, and both of
them are sending the notification emails (using select for update locks)
and only one of them is running the notification rules.

I have built quite simple yet effective monitoring system for baxx.

Each process with [πŸ‘Ήjob] tag is something like:
(using πŸ‘Ή because of daemon)

  for {
      work
      sleep X
  }

What I did is:

  setup("monitoring key", X+5)
  for {
      work
      tick("monitoring key")
      sleep X
  }


Then the 'who watches the watchers' programs check if "monitoring key"
is executed at within X+5 seconds per node(), and if not they send
slack message

The 'who watches the watchers' then sends notifications (both watchers
send notifications on their own, so i receive the notification twice
but that is ok)

The watchers themselves also use the system, so if one of them dies,
the other one will send notification.

# testing

all the βœ“ checks are tested (manually) and the alerts are performing
really good

## shut down postgres
* βœ“ shutdown postgres and see if notifications are sent

## shut down one machine
* βœ“ aa.baxx.dev
* βœ“ bb.baxx.dev

## mdadm

* βœ“ make it fail
  mdadm -f /dev/md2 /dev/nvme1n1p3

* βœ“ wait for panic message

* βœ“ remove the disk
  mdadm --remove /dev/md2 /dev/nvme1n1p3

* βœ“ add the disk back
  mdadm --add /dev/md2 /dev/nvme1n1p3

* βœ“ wait to see it is acknowledged

works really nice

## test disk thresh

* βœ“ start the status tool with with 1% disk threshold
    and wait for alert

## test memory thresh

* start the status tool with with 1% memory threshold
  and wait for alert


## test health of baxx api

* query /status which should
  + query postgres
  + query judoc

More Repositories

1

programming-for-kids

book for parents and kids.
Python
412
star
2

rochefort

poor man's kafka (plus in-place mutations and search)
Go
110
star
3

emacs-chatgpt-jarvis

press F12 to record, use whisper to transcribe and chatgpt to answer
Python
43
star
4

butter

tiling windows for macos x
Objective-C
29
star
5

net-gemini

gemini server - gemini://gemini.circumlunar.space/ (https://gemini.circumlunar.space/)
Go
28
star
6

zr

🌩 offline and serverless stackoverflow/man/etc.. search with low memory footprint
Go
24
star
7

berserk

personal website + shell (chrooted) [ shut down due to covid ]
Go
16
star
8

juun

cross terminal history for zsh with good search (that learns with vowpal wabbit)
Go
13
star
9

scrambled-eggs

scramble and unscramble eggs
Java
11
star
10

texty-mac

lightweight text editor for MacOSX Lion
Objective-C
11
star
11

godzilla

micro-mini-nano Go web framework #golang
Go
11
star
12

roaring-query

simple query interface on top of roaring bitmaps
Go
10
star
13

weather

source of https://freeweatherapi.com (free weather api with cached data from api.met.no)
9
star
14

zearch

ragecoded code search with json endpoint
Go
9
star
15

detective

make a simple web page with your kids [shutdown]
HTML
8
star
16

back-to-back

proof of concept io queue
Go
7
star
17

updown

just some string tools
Go
7
star
18

octopus_query

octopus - query arrays of integers
Rust
6
star
19

no

well.. lets see
Go
5
star
20

judoc

almost s3 haha; digitalocean s3 sometimes has 10s latency.. soo..
Go
5
star
21

cacher

golang dns proxy + cache (for ttl interval)
Go
5
star
22

bzzz

clojure + lucene + ring
Clojure
5
star
23

turtle

pure java vowpal wabbit model reader and predictions
Java
4
star
24

inverted

naive one file per term stored inverted index
C
4
star
25

awesome-app

needed from time to time
JavaScript
4
star
26

go-gpmctl

/dev/gpmctl reader (general purpose mouse - gpm)
Go
3
star
27

slock

fork of http://git.suckless.org/slock/ using pam
C
3
star
28

paxx

simple js search thing
JavaScript
3
star
29

platform-nine-and-three-quarters

teaching my wife(Gergana) how to code
3
star
30

ffs-ungpt

use chatgpt to summarize selected text on a page... every single page will be 20 times longer than it should.. so just UNGPT it
JavaScript
2
star
31

punkjazz

gutenberg project offline search app https://expo.dev/@jackdoez/punkjazz
TypeScript
2
star
32

ascii-bot

Go
2
star
33

panda

experimenting with stored+sorted arrays of longs
Java
2
star
34

hammer

linux kernel tcp client for testing things
C
2
star
35

random

random small things, old/wip/bad
C
2
star
36

go-metno

https://api.met.no weather api location forecast go client
Go
2
star
37

elixir-vowpal-fleet

vowpal wabbit distributed supervisor using swarm and elixir (including handoff of the models)
Elixir
2
star
38

neko

learn japanese
JavaScript
1
star
39

img2ascii

go image to ascii
Go
1
star
40

go-rochefort-client

go client for rochefort
Go
1
star
41

ragna

simple blob store on top of ipfs (encrypted)
Go
1
star
42

dhcpd

dhcp server with mysql backend for static ip address assignment
C
1
star
43

crowley

download the index page of a bunch of domains
Go
1
star
44

drive

hackyourfuture - follow the line robot
JavaScript
1
star
45

zr-public

Shell
1
star
46

p5-UDT-Simple

simplified perl bindings for UDT (reliable UDP based application level data transport protocol - http://udt.sourceforge.net/)
C
1
star
47

vowpal-turtlejs

pure javascript vowpal wabbit model predictions
JavaScript
1
star
48

texty

can I please read 80ch text on phone? is it too much to ask?
Dart
1
star
49

go-evalish

just some helper functions to compile and run go code at runtime
Go
1
star
50

advent-rust

Rust
1
star
51

validations

gorm validations with Validate interface and github.com/asaskevich/govalidator support
Go
1
star
52

go-pager

pipe output through $PAGER
Go
1
star
53

sfs

fuse based mysql backed file system
C
1
star
54

jsonny

simple UITableViewController subclass, that lets you control the table from remote JSON objects
Objective-C
1
star
55

grom

playing around with finatra; exporting /learn and /query to openhft.chronicle.map + fst byte encoded, persisted naive bayesian classifier
Java
1
star
56

frankenworms

just goofing around with openworm's c-elegans connectome data
Go
1
star