I hereby claim:
- I am azec-pdx on github.
- I am azec (https://keybase.io/azec) on keybase.
- I have a public key ASCSUYLpN0gGf0PxqNGiXlbvBV_74ZOGmuh46rUvbx3-ogo
To claim this, I am signing this object:
| https://veneur.org/ | |
| https://github.com/segmentio/ecs-logs | |
| https://github.com/segmentio/cwlogs | |
| https://www.loggly.com/blog/why-journald/ | |
| https://docs.docker.com/config/containers/logging/journald/ | |
| https://github.com/iovisor/bcc | |
| https://github.com/segmentio/pprof-server | |
| https://github.com/segment-boneyard/ecs-host-manager |
I hereby claim:
To claim this, I am signing this object:
| // Usage: mongo {Server without mongodb:// example 127.0.0.1:27017}/{DbName} [-u {Username}] [-p {Password}] < ./mongo-ls.js | |
| var collections = db.getCollectionNames(); | |
| print('Collections inside the db:'); | |
| for(var i = 0; i < collections.length; i++){ | |
| var name = collections[i]; | |
| if(name.substr(0, 6) != 'system') | |
| print(name + ' - ' + db[name].count() + ' records'); |
| package main | |
| import ( | |
| "io" | |
| "os" | |
| "strings" | |
| ) | |
| var rot13Lookup = map[byte]byte{ // All are ASCII (UTF-8) so safe to use 1 byte for representation of code point | |
| 'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': 'T', 'H': 'U', 'I': 'V', 'J': 'W', 'K': 'X', 'L': 'Y', 'M': 'Z', 'N': 'A', 'O': 'B', 'P': 'C', 'Q': 'D', 'R': 'E', 'S': 'F', 'T': 'G', 'U': 'H', 'V': 'I', 'W': 'J', 'X': 'K', 'Y': 'L', 'Z': 'M', 'a': 'n', 'b': 'o', 'c': 'p', 'd': 'q', 'e': 'r', 'f': 's', 'g': 't', 'h': 'u', 'i': 'v', 'j': 'w', 'k': 'x', 'l': 'y', 'm': 'z', 'n': 'a', 'o': 'b', 'p': 'c', 'q': 'd', 'r': 'e', 's': 'f', 't': 'g', 'u': 'h', 'v': 'i', 'w': 'j', 'x': 'k', 'y': 'l', 'z': 'm', |
| urlencode() { | |
| # urlencode <string> | |
| old_lc_collate=$LC_COLLATE | |
| LC_COLLATE=C | |
| local length="${#1}" | |
| for (( i = 0; i < length; i++ )); do | |
| local c="${1:$i:1}" | |
| case $c in |
Published: 16 December 2022
Reference: https://docs.opnsense.org/manual/how-tos/wireguard-selective-routing.html
Goal: Set up one or more Wireguard connections from ProtonVPN on OPNsense, with policy based routing, and optional Killswitch.
I'm writing this guide first as a reference for my future self for when I inevitably forget how to do this, but also to help others out. I found there were not many guides on this specific configuration, particularly not with multiple concurrent connections, and these were some steps which were not at all obvious. I did begin with the guide in the official OPNsense documentation, but even that was missing info to make ProtonVPN work. If you are a pfSense user, it is very similar to OPNsense, and you should be able to follow along with some success, but I have not tested it myself.
| /** | |
| * Runs commands using /bin/sh and returns stdout as string | |
| * | |
| * <p> | |
| * If the exit code of the command is non-zero, the stderr of the command is printed to stderr | |
| * and a RuntimeException will be thrown. | |
| * </p> | |
| * <b>Example</b> | |
| * <pre><code> | |
| * def files = sh('ls $HOME').split() |
| import click | |
| from pathlib import Path | |
| from subprocess import call, check_output | |
| from tqdm import tqdm | |
| @click.command() | |
| @click.argument('directory', type=click.Path(exists=True)) | |
| @click.option('--recursive', is_flag=True, help='Recursive') | |
| @click.option('--file-ext', help='File format to process') |