Skip to content

Instantly share code, notes, and snippets.

@jamesog
jamesog / config
Created December 28, 2024 11:48
Ghostty config
theme = "Tomorrow Night Blue"
copy-on-select = true
macos-non-native-fullscreen = true
macos-titlebar-style = "tabs"
macos-option-as-alt = true
@jamesog
jamesog / agile_price_charge.yaml
Created December 5, 2024 18:31
Home Assistant automation for force charging FoxESS batteries based on Octopus Agile price and time window
alias: Agile price charge
description: >-
Set the inverter to force charge when we're in the time window and the
Octoppus Agile price is at or below the threshold.
trigger:
- platform: state
entity_id:
- binary_sensor.charge_window
from: "off"
to: "on"
@jamesog
jamesog / configuration.nix
Created September 7, 2024 15:52
NixOS on ZFS root (UTM / virtio)
{
networking.hostId = "..."; # Use head -c8 /etc/machine-id to get this
services.zfs.autoScrub.enable = true;
}
@jamesog
jamesog / Corefile
Created March 13, 2023 20:15
CoreDNS with NextDNS
. {
forward . tls://2a07:a8c0::ae:9cfd tls://2a07:a8c1::ae:9cfd tls://45.90.28.178 tls://45.90.30.178 8.8.8.8 8.8.4.4 {
tls_servername dns01-ae9cfd.dns.nextdns.io
policy sequential
}
cache {
success 12800 86400 300
denial 12800
prefetch 25
serve_stale 24h
@jamesog
jamesog / configuration.nix
Created March 3, 2023 12:09
NixOS using SSH CA
{ config, pkgs, ... }:
{
environment.etc = {
"ssh/ca.pub".text = ''
ssh-rsa ...
'';
};
services.openssh.extraConfig =
@jamesog
jamesog / README.md
Last active January 24, 2024 23:17
YubiKey as an SSH CA
@jamesog
jamesog / better-config-mgmt.md
Last active December 13, 2020 20:28
I dreamed a dream

Better config management

Syntax

Use HCL, not YAML.

# Ensure blocks group actions
ensure "Foo service" {
    package "foo" {
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.jamesog.takeabreak</string>
<key>Program</key>
<string>/usr/bin/say</string>
<key>ProgramArgs</key>
<array>
@jamesog
jamesog / tailscaled.sh
Last active August 20, 2023 22:14
FreeBSD rc script for tailscaled
#!/bin/sh
#
# PROVIDE: tailscaled tailscale
# REQUIRE: NETWORKING
. /etc/rc.subr
name="tailscaled"
rcvar="${name}_enable"
@jamesog
jamesog / README.md
Last active January 25, 2025 03:08
Yubikey SSH without GPG

Yubikey as an SSH key

All other guides I've seen (https://github.com/drduh/YubiKey-Guide being the most prolific) tell you to use the Yubikey's smartcard (PKCS#11) features with GnuPG via gpg-agent.

STOP THE MADNESS!

OpenSSH has supported OpenSC since version 5.4. This means that all you need to do is install the OpenSC library and tell SSH to use that library as your identity.

Prequisites