Skip to content

Instantly share code, notes, and snippets.

View BirkhoffLee's full-sized avatar
🎓
Learning about CS

birkhoff BirkhoffLee

🎓
Learning about CS
View GitHub Profile
@BirkhoffLee
BirkhoffLee / install.sh
Last active November 21, 2019 12:08
Install Docker Engine on CentOS 8
#!/bin/sh
# Tested on Vultr as of Nov 21, 2019
groupadd docker
usermod -aG docker birkhoff # add birkhoff to docker group
newgrp docker
yum remove -y docker \
docker-client \
@BirkhoffLee
BirkhoffLee / gist:84fcae9dc0b2095a3a87eedfbedd4ce8
Created November 21, 2019 06:53
Install Borg & Borgmatic on CentOS 8
# Tested on a Vultr CentOS 8 server. Run with root!
yum install -y openssl-devel gcc-c++ python3-devel libacl-devel
dnf install -y redhat-rpm-config
pip3 install virtualenv
virtualenv --python=python3 borg-env
source borg-env/bin/activate
pip3 install borgbackup
# Borgmatic
@BirkhoffLee
BirkhoffLee / docker-compose.yml
Created September 16, 2019 15:11
docker-compose Grafana + InfluxDB + collectd with Traefik
version: '3.2'
services:
collectd:
image: fr3nd/collectd
privileged: true
network_mode: host
volumes:
- /proc:/mnt/proc:ro
- ./collectd.conf:/etc/collectd/collectd.conf
@BirkhoffLee
BirkhoffLee / index.js
Last active August 31, 2019 07:55
daily RSS feed to mailgun email
let d = new Date()
d.setDate(d.getDate() - 1)
const date = d.toISOString().split('T')[0]
const RssToEmail = require('rss-to-email')
const config = {
accentColor: "red",
header: {
link: "",
title: "RSS Feed"
@BirkhoffLee
BirkhoffLee / teamviewer_change_id.py
Created April 22, 2019 13:37
Change the ID of Teamviewer for macOS to circumvent "commercial use detected"
# -*- coding: utf-8 -*-
import sys
import os
import glob
import platform
import re
import random
import string
print('Change ID of Teamviewer for macOS')
@BirkhoffLee
BirkhoffLee / rixCloud_traffic_usage.sh
Created March 14, 2019 23:46
Calculates traffic usage with rixCloud API and push notification to your iPhone
#!/bin/bash
# https://unix.stackexchange.com/a/259254/301433
bytesToHuman() {
b=${1:-0}; d=''; s=0; S=(Bytes {K,M,G,T,P,E,Z,Y}iB)
while ((b > 1024)); do
d="$(printf ".%02d" $((b % 1024 * 100 / 1024)))"
b=$((b / 1024))
let s++
done
<!DOCTYPE html>
<html lang="en">
<head>
...
<script>
// don't load bootstrap - confluence does not need this
var netdataNoBootstrap = true;
var netdataTheme = 'white';
var netdataPrepCallback = function() {
@BirkhoffLee
BirkhoffLee / base64.js
Created January 13, 2019 08:13
base64 in nodejs
const encode = s => Buffer.from(s).toString('base64')
const decode = s => Buffer.from(s, 'base64').toString()
@BirkhoffLee
BirkhoffLee / script.sh
Last active December 5, 2018 14:47
CentOS firewalld + Docker companion
cp /etc/docker/daemon.json /etc/docker/daemon.json.old
echo '{"iptables": false}' > /etc/docker/daemon.json
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE # this enables containers access outside internet
firewall-cmd --reload
@BirkhoffLee
BirkhoffLee / ss_subscribe_to_surge.js
Created October 11, 2018 06:02
This node script converts a base64-encoded ShadowSocks subscription string to a Surge proxies configuration.
const querystring = require('querystring')
let args = process.argv.slice(2)
if (!args[0]) {
console.error("Usage: node index.js [subscribe_list_base64_encoded]")
process.exit(1)
}