Skip to content

Instantly share code, notes, and snippets.

View gingerbeardman's full-sized avatar

Matt Sephton gingerbeardman

View GitHub Profile
@gingerbeardman
gingerbeardman / access_control.sh
Created January 7, 2025 20:21
Access control and permissions
#!/bin/bash
# Create the directory if it doesn't exist
sudo mkdir -p /var/log/caddy
# Set ownership to caddy user and group
sudo chown caddy:caddy /var/log/caddy
# Set appropriate permissions (755 for directory)
sudo chmod 755 /var/log/caddy
@gingerbeardman
gingerbeardman / git-pull-watcher.service
Last active January 7, 2025 16:20
Git Pull watcher service, /etc/systemd/system/git-pull-watcher.service
[Unit]
Description=Git Pull Watcher Service
After=caddy.service
StartLimitIntervalSec=0
[Service]
Type=simple
ExecStart=/opt/webserver/git_pull_watcher.sh
Restart=always
RestartSec=1
@gingerbeardman
gingerbeardman / git_pull_watcher.sh
Last active January 7, 2025 19:30
Webhook git pull watcher Shell script
#!/bin/bash
TRIGGER_FILE="/var/www/example.com/triggers/git_pull_trigger"
LOG_FILE="/var/log/git_pull_watcher.log"
REPO_PATH="/var/www/example.com"
log() {
echo "$(date): $1" >> "$LOG_FILE"
}
@gingerbeardman
gingerbeardman / webhook.php
Last active February 10, 2025 23:11
Webhook receiver PHP script
<?php
// GitHub webhook secret (set this in your GitHub webhook settings)
$secret = "Y0UR-secret-text-here!";
// Get the payload
$payload = file_get_contents('php://input');
// Verify the signature
$signature = $_SERVER['HTTP_X_HUB_SIGNATURE'] ?? null;
@gingerbeardman
gingerbeardman / lite_yt_embed.rb
Last active January 4, 2025 19:35
jekyll plugin to enable better youtube embeds with lite-yt-embed
module Jekyll
class YouTubeEmbed < Liquid::Tag
def initialize(tag_name, input, tokens)
super
@input = input.strip
end
def render(context)
parts = @input.split(' ')
@gingerbeardman
gingerbeardman / DSSPlayer.txt
Last active January 4, 2025 19:36
DSS Player version 7 software serial number for OM/Olympus DS-30 DS-40 DS-50 Digital Voice Recorder
8360-0101-0044-4084-1936
@gingerbeardman
gingerbeardman / cdn_img.rb
Last active August 19, 2024 17:22
transform local image paths to use your own CDN server
# file: _plugins/cdn_img.rb
module Jekyll
class CDNImageTransformer < Generator
def generate(site)
@site = site
@cdn_url = "https://cdn.example.com"
@site.pages.each { |page| process(page) }
@site.posts.docs.each { |post| process(post) }
end
@gingerbeardman
gingerbeardman / maboshi-dslite.scad
Created April 20, 2024 19:26
Mockup of a modded DSlite specifically to play the game MaBoShi
// MaBoShi DSlite mod idea
$fn = 50;
module roundedcube_simple(size = [1, 1, 1], center = false, radius = 0.5) {
size = (size[0] == undef) ? [size, size, size] : size;
translate = (center == false) ?
[radius, radius, radius] :
[
@gingerbeardman
gingerbeardman / huginn.yahooauctions.json
Last active June 13, 2025 01:47
Huginn JSON for Yahoo! Japan Auctions, for importing into a Scenario
{
"expected_update_period_in_days": "1",
"url": [
"https://auctions.yahoo.co.jp/search/search?p=花札&en=Hanafuda&exflg=1&b=1&n=100&s1=new&o1=d&mode=1",
],
"type": "html",
"mode": "on_change",
"extract": {
"url": {
"css": "a.Product__titleLink",
{
"name": "NDS MaBoShi",
"identifier": "com.gingerbeardman.delta.ds.maboshi",
"gameTypeIdentifier": "com.rileytestut.delta.game.ds",
"debug": false,
"representations": {
"iphone": {
"edgeToEdge": {
"portrait": {
"extendedEdges": {