Skip to content

Instantly share code, notes, and snippets.

xandout /
Created March 21, 2022 21:29
FFmpeg Utility Scripts

FFmpeg helpers

Requirements: ffmpeg 4.3+ for crossfade. All commands tested on 4.4.1-3ubuntu1+20.04

I think that it is required that all videos(maybe audios) need to be the same resolution, framerate and all that. For my use case this is solved by pixabay

My specific goal here is to be able to use a site such as videos and mp3s to make long form videos with multiple songs

Obviously, you don't have to use pixabay. You probably don't have to use mp4s or mp3s, untested but ffmpeg should be able to figure it out, the commands do not use any codec specific flags.

xandout / full-k8s-deployment-with-ingress.yml
Created March 9, 2022 13:37
A bare example of a Deployment, Service and Ingress on Kubernetes
View full-k8s-deployment-with-ingress.yml
apiVersion: v1
kind: Service
labels: "fun-apache"
name: "fun-apache-svc"
namespace: "{{ namespace }}"
type: LoadBalancer # NodePort might work for your lab as well.
xandout /
Created December 15, 2020 18:58
MongoDB User Management

MongoDB User Management

This is a simple script that will keep the database users in sync with a defined JSON document.

My ultimate use case is in a K8S environment so the files will be templated and I will add and remove users from my databases that way.

This is the test rig and shows how to manage the creation, updating and deletion of MongoDB users.


xandout /
Last active September 22, 2020 17:51

Keybase proof

I hereby claim:

  • I am xandout on github.
  • I am xandout ( on keybase.
  • I have a public key ASD9c-9ULRwQ39Vui5bIy83SFVBzQ4JRe7YMwMxLQZ8XDgo

To claim this, I am signing this object:

xandout / index.html
Created September 17, 2020 23:41
Tailwind CSS v1.0 Color Palette
View index.html
<div id="app"></div>
xandout /
Last active March 18, 2021 08:29

Script to use TOTP tokens as passwords for OpenVPN auth

The user will be prompted for a username and password.

The username is the client username and the password is generated by their MFA app such as Authy or Google Authenticator.

OpenVPN server config

Add the following flags to your OpenVPN server config

xandout /
Last active October 13, 2021 16:00
Kubernetes DaemonSet that enables a direct shell on each Node using SSH to localhost

Getting a shell on each node

I run several K8S cluster on EKS and by default do not setup inbound SSH to the nodes. Sometimes I need to get into each node to check things or run a one-off tool.

Rather than update my terraform, rebuild the launch templates and redeploy brand new nodes, I decided to use kubernetes to access each node directly.

Alternative option

xandout /
Created August 13, 2020 15:42
Python script using boto3 to copy ElastiCache to S3
#!/bin/env python
import boto3
import os
import time
from datetime import datetime
cluster_name = os.environ["CLUSTER_NAME"]
dest_bucket = os.environ["DEST_BUCKET"]
env_name = os.environ["ENV"]
xandout /
Last active August 5, 2020 16:06
Mutex, Singleton, Only one instance of bash script running at a time
# Credit:
# get absolute path to the script itself
script=`realpath $0`
# open bash script using file descriptor 6
exec 6< "$script"
# lock file descriptor 6 OR show error message if script is already running
xandout /
Created May 4, 2020 18:48
Generate random password in bash
# newpass generates a new random password of 32 or $1 chars long, up to 92 characters
newpass() { date +%s | sha256sum | base64 | tr -d '\n' | head -c "${1:-32}" ; echo ; }
# 18:47 # newpass 10
# N2U3YzliOT
# 18:47 # newpass 20
# 18:47 # newpass 30
# 18:47 # newpass