Skip to content

Instantly share code, notes, and snippets.

View 4lun's full-sized avatar

Alun Davey 4lun

View GitHub Profile
@4lun
4lun / pack-list.md
Last active April 19, 2021 16:03
Pack list for travelling and outdoor pursuits

Pack List

General

  • Bag
  • T-shirts
  • Trousers
  • Socks
  • Underwear
  • Travel adapter
  • Plug splitter
  • Various chargers
@4lun
4lun / ubuntu-minecraft-server.sh
Created August 29, 2017 06:48
Install and run a vanilla Minecraft server (1.7.4) on a new install of Ubuntu 16.04
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
apt update
apt install -y screen default-jdk
wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.4/minecraft_server.1.7.4.jar
ln -s minecraft_server.1.7.4.jar minecraft_server.jar
screen -S minecraft
@4lun
4lun / jenkins-remote-build-trigger.md
Last active July 9, 2019 07:47
How to trigger a remote build via a URL for a Jenkins job
  1. Create new user (e.g. webhook) with the following permissions: Overall > Read, Job > Build, Job > Read & Job > Workspace. Login as the user and get their API token
  2. Under a job, enable "Trigger Builds Remotely" and set an authentication token
  3. Trigger a POST request with the following structure:

http://{USER}:{API_TOKEN}@{JENKINS_URL}/job/{JOB}/build?token={AUTHENTICATION_TOKEN}

@4lun
4lun / letsencrypt-acme-nginx.sh
Last active March 10, 2017 10:30
Generate and install SSL certificate with letsencrypt (for nginx)
export DOMAIN="mydomain.com"
curl https://get.acme.sh | sh
bash --login
mkdir -p /etc/nginx/certs/$DOMAIN/
acme.sh --issue -d $DOMAIN -w /var/www/$DOMAIN/public/
acme.sh --install-cert -d $DOMAIN \
--certpath /etc/nginx/certs/$DOMAIN/cert.pem \
--keypath /etc/nginx/certs/$DOMAIN/key.pem \
--fullchainpath /etc/nginx/certs/$DOMAIN/fullchain.pem \
@4lun
4lun / s3-redirect-routing-rules.xml
Last active June 4, 2017 11:05
Redirect all requests from an S3 bucket to another domain with explicit path (example redirects all requests to newdomain.com/?referrer=olddomain). Substitute 404 code with 403 if bucket is not publicly readable. Note this all assumes there are no matching files in the bucket.
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName>newdomain.com</HostName>
<ReplaceKeyWith>?referrer=olddomain</ReplaceKeyWith>
</Redirect>
</RoutingRule>
@4lun
4lun / generate-self-signed-cert.sh
Created February 14, 2017 08:43
Generate a self signed wildcard SSL cert (run one line at a time)
# Based on: http://blog.celogeek.com/201209/209/how-to-create-a-self-signed-wildcard-certificate/
# Replace .domain.com with desired domain (and x.domain instances)
openssl genrsa 2048 > x.domain.key
openssl req -new -x509 -nodes -sha1 -days 3650 -key x.domain.key > x.domain.cert
# Interactive prompt: enter *.domain.com for the Common Name
openssl x509 -noout -fingerprint -text < x.domain.cert > x.domain.info
cat x.domain.cert x.domain.key > x.domain.pem
@4lun
4lun / generate-instagram-access-token.md
Created January 17, 2017 09:30
Generate a personal access token for Instagram
  1. Register a client at https://www.instagram.com/developer/ (redirect_uri can be something simple such as http://localhost)
  2. Go to the 'Security' tab for your client (under manage) and untick 'Disable implicit OAuth'
  3. Take the following URL, subsitute the [client_id] with your own and the [redirect_uri] with one you specified during the registration process: https://api.instagram.com/oauth/authorize/?client_id=[client_id]&redirect_uri=[redirect_uri]&response_type=token
  4. Navigate to the URL in the browser (while logged in as the same user), after accepting any prompts you should be redirected to your specified redirect_uri with the access token appended
@4lun
4lun / propositions.md
Last active May 12, 2017 06:57
Notes on Propositions from Computer logic and arithmetic lecture, including Javascript equivalents

Propositions

Javascript equivalents in quotes for comparison

AND (∧)

A ∧ B = a && b

OR (∨)

A ∨ B = a || b

NOT (¬)

@4lun
4lun / main.css
Last active October 4, 2016 11:01
Starting point for an ITCSS based CSS file (assumes PostCSS)
/*
Based on ITCSS structure (http://tinyurl.com/hgujuha)
# Layers
- Settings: font, colors definitions, etc.
- Tools: globally used mixins and functions.
- Generic: reset/normalize styles, box-sizing definition, etc.
- Elements: styling for bare HTML elements.
- Objects: class-based selectors which define undecorated design patterns
- Components: specific UI components
@4lun
4lun / ip.domain.tld
Created September 23, 2016 15:22
Server config for nginx that just returns the visitor's IP address
server {
listen 80;
server_name ip.domain.tld;
add_header Content-Type text/plain;
return 200 $remote_addr;
}