Skip to content

Instantly share code, notes, and snippets.

@brainsik
brainsik / ssh_config
Last active January 1, 2025 05:50
SSH Config for connecting to a Debian 3 system and forwarding X11 back to macOS
# debian 3.x
Host 10.0.0.3
KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
HostKeyAlgorithms ssh-rsa
Ciphers aes128-cbc,aes192-cbc,aes256-cbc
MACs hmac-sha1
ForwardX11 yes
ForwardX11Trusted yes
XAuthLocation /opt/X11/bin/xauth
@brainsik
brainsik / README.md
Last active March 26, 2024 00:21
NixOS / Nix notes

Notes from running NixOS in a local VM.

The attached configuration.nix sets users immutable to force managing them through the config. The primary user is added to the wheel group and the wheel group has passwordless sudo access. All passwords are set by hash (using mkpasswd). SSH keys can be added for the primary user and/or Tailscale SSH can be enabled.

Everything below is run as root.

Partition, format, mount, configure:

@brainsik
brainsik / rules.json
Last active February 1, 2023 08:07
Darktide - Armoury Exchange - filter rules
[
{
"minStats": 360
},
{
"minBlessingRarity": 3,
"item": [
"Staff"
]
},
@brainsik
brainsik / httrack-mediawiki.sh
Last active January 31, 2025 17:52
Create a static HTML archive of a MediaWiki site.
# $URL - the url to mirror
# $PATH - where to put the httrack files
httrack $URL -O $PATH -v -x \
--disable-security-limits \
-F 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15' \
-c16 -%c32 -%k \
-s0 -n -%u \
'-*api.php*' '-*index.php*' '-*title=*' '-*Special:*' \
'+*Special:SpecialPages' '+*Special:AllPages' '+*Special:Categories' \
@brainsik
brainsik / font.css
Last active February 14, 2024 00:52
My trashy CSS to make Obsidian use the fonts I like
:root{
/* editor mode */
--text-editor: 'iA Writer Mono S';
/* code */
--font-monospace: 'FiraCode Nerd Font';
}
body {
font-family: var(--default-font);
@brainsik
brainsik / b2-cp.md
Created March 15, 2021 16:48
Upload a file to B2 Cloud Storage using SSE-C (customer managed key)

Generate key

dd if=/dev/random of=keyfile count=1 bs=32

Upload file

Endpoint is found in the bucket details via console.

@brainsik
brainsik / install-terraform-provider-aws.sh
Created January 22, 2021 01:53
Installs the AWS Terraform provider to your local plugins directory
#!/bin/sh
set -eu -o pipefail
set -x
version=$1
cd terraform-provider-aws
git fetch
git checkout .
@brainsik
brainsik / install-tf-11-14.sh
Created May 23, 2019 23:30
How to install an older version of a Homebrew forumla
brew uninstall terraform
brew extract --version 0.11.14 terraform homebrew/cask
brew install [email protected]
@brainsik
brainsik / minimal-infra.md
Last active March 5, 2021 22:14
Minimalist Infrastructure

Minimalism

Minimalist infrastructure is the practice of building only what you need with the fewest number of resources. This is a philosophy, not a religion, you shouldn't build bad infrastructure to achieve a minimalist design. A minimalist design should lead to good infrastructure by reducing the amount of resources under management and the complexity of the design.

Avoid state

When designing your system, avoid storing additional state. Often the data you want to store is already available in the system. Using the system as the source of truth can avoid the difficult business of ensuring data consistency.

As an example, let's say you want to be able to rollback a Fargate deploy if the new task definition results in a service that won't become healthy. One option would be store the working task definition in something like DynamoDB (or git or any number of bad choices). However, your ECS service already has this information: the previous, healthy service is still running. Instead of managing a

@brainsik
brainsik / cidrs.tf
Last active November 16, 2018 01:44
Takes a list of VPC names and outputs their ID and CIDR
data "aws_vpc" "found" {
count = "${length(var.vpc_names)}"
filter {
name = "tag:Name"
values = ["${element(var.vpc_names, count.index)}"]
}
}
output "vpc_id" {