Skip to content

Instantly share code, notes, and snippets.

@ryanburnette
ryanburnette / Caddyfile
Last active April 1, 2024 07:54
Caddy v2.1+ CORS whitelist
(cors) {
@cors_preflight{args.0} method OPTIONS
@cors{args.0} header Origin {args.0}
handle @cors_preflight{args.0} {
header {
Access-Control-Allow-Origin "{args.0}"
Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
Access-Control-Allow-Headers *
Access-Control-Max-Age "3600"
@ryanburnette
ryanburnette / gist:cd2191fe9d01fa8b6163
Created May 22, 2015 22:33
Convert Liquid gist plugin from Jekyll to ERB for middleman-gist in Vim.
%s/{% gist ryanburnette\/\([a-z|0-9]\{20}\) %}/<%= gist "ryanburnette", "\1" %>/g
@ryanburnette
ryanburnette / updates.sh
Created June 5, 2023 15:25
proxmox updates w/out paid repo
#!/bin/sh
sed -i 's:^deb :#deb :g' /etc/apt/sources.list.d/pve-enterprise.list
wget http://download.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
echo '# pve-no-subscription repository provided by proxmox.com, not recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
' > /etc/apt/sources.list.d/pve-no-subscription.list
apt update
#pveupgrade
@ryanburnette
ryanburnette / rotate-and-remove-meta.sh
Last active June 4, 2023 14:12
Remove rotation jpeg exif/meta and resave the file without it. Requires imagemagick and exiftool. https://ryanburnette.com/blog/imageoptim-rotation-information-loss/
#!/bin/sh
if [ -z "$1" ]; then
echo "Usage: $0 <directory>"
exit 1
fi
dir="$1"
if [ ! -d "$dir" ]; then
await postmark.sendEmail({
From: 'api@ryanburnette.com',
ReplyTo: `${req.body.xname} <${req.body.xemail}>`,
To: to,
Cc: 'api-submissions@ryanburnette.com',
Subject: `ryanburnette.com api submission to ${req.body.form} from ${req.body.xname}`,
HtmlBody: html,
TextBody: text,
MessageStream: 'outbound',
Headers: [
sudo apt-get update
sudo apt-get install --yes ca-certificates apt-transport-https wget
echo 'deb https://www.ui.com/downloads/unifi/debian stable ubiquiti' | sudo tee /etc/apt/sources.list.d/100-ubnt-unifi.list
sudo wget -O /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg
sudo apt update
sudo apt install --yes openjdk-8-jre-headless unifi
service unifi stop
@ryanburnette
ryanburnette / set-timezone-america-new-york.sh
Created June 30, 2021 11:25
set timezone to us/east in ubuntu 20.04
#!/bin/bash
set -u
sudo timedatectl set-timezone America/New_York
@ryanburnette
ryanburnette / universal-definition-pattern.js
Last active June 1, 2021 22:02
A universal definition pattern for JavaScript libraries. Supports require(), AMD, and browser.
;(function() {
function myModule() {
}
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
module.exports = myModule;
}
else {
if (typeof define === 'function' && define.amd) {
define([], function() {
@ryanburnette
ryanburnette / Caddyfile
Last active May 4, 2021 06:27
caddy cache strategy
(asset-paths) {
path *.bmp *.jpg *.png *.svg *.gif *.pdf *.css *.js
}
(cache) {
@content {
not {
import asset-paths
}
}
header @content cache-control max-age=0
@ryanburnette
ryanburnette / zfs_alerts.sh
Last active April 6, 2021 20:31 — forked from petervanderdoes/zfs_health.sh
zfs health alerts in bash with mailgun api alert
#!/usr/bin/env bash
hostname=`hostname`
emaildomain=''
alertemail=''
mailgunapikey=''
# max capacity % before getting capacity alert
maxCapacity=80