I hereby claim:
- I am jonfriesen on github.
- I am jonfriesen (https://keybase.io/jonfriesen) on keybase.
- I have a public key ASBfnWKFBT-cEAQ5AbDFsBd0E_5T7q_93lSbrtLH1IyTcgo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
#!/bin/bash | |
set -e | |
GVERSION="1.8.3" | |
GFILE="go$GVERSION.linux-amd64.tar.gz" | |
GOPATH="/mnt/d/GoPath/" | |
GOROOT="/usr/local/go" | |
if [ -d $GOROOT ]; then | |
echo "Installation directories already exist $GOROOT" |
Good Morning! I'm Simon Bennett, a 25-year-old software engineer from the UK. I've always enjoyed building projects for myself on the side and teaching developers. When I am not consulting, I am working on my SaaS SnapShooter - a DigitalOcean backup server
SnapShooter provides a secure and easier way for DigitalOcean users to back up their droplets and volumes. DigitalOcean is very limited in only offering weekly backups and retention of the last four. This was not good enough for me at work so I built a system that enables hourly backups. SnapShooter also offers volume backups which is not offered by DigitalOcean.
Since launching in February to date, SnapShooter has taken 150,000 backups, managing 2,000 droplets and volumes and has 44 paying customers at a MRR of $834.
#!/bin/bash | |
set -ex | |
PARENT_DIR=$(basename "${PWD%/*}") | |
CURRENT_DIR="${PWD##*/}" | |
IMAGE_NAME="$PARENT_DIR/$CURRENT_DIR" | |
TAG="${1}" | |
REGISTRY="hub.docker.com" |
version: '3.5' | |
services: | |
postgres: | |
container_name: postgres_container | |
image: postgres | |
environment: | |
POSTGRES_USER: ${POSTGRES_USER:-postgres} | |
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} | |
PGDATA: /data/postgres |
#!/bin/bash | |
wget https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable -O /tmp/code_latest_amd64.deb | |
sudo dpkg -i /tmp/code_latest_amd64.deb |
version: '3.0' | |
services: | |
mongo: | |
image: mongo | |
ports: | |
- "27017:27017" | |
- "28017:28017" | |
environment: | |
MONGO_INITDB_ROOT_USERNAME: mongoadmin | |
MONGO_INITDB_ROOT_PASSWORD: secret |
[connection] | |
id=DO - NYC3 | |
uuid=<COPY_FROM_DUMMY> | |
type=vpn | |
autoconnect=false | |
metered=2 | |
permissions=user:<YOUR_LINUX_USERNAME>:; | |
timestamp=1581433754 | |
[vpn] |
// Note: There were a couple blogposts I used to write this but for the life of me can't seem to find them. Will update with references if I do. | |
// generateSSHKeyPair creates a private & public key pair | |
func generateSSHKeyPair(bitSize int) (privateKey []byte, publicKey []byte, err error) { | |
// generate private key | |
pKey, err := generatePrivateKey(keySize) | |
if err != nil { | |
return nil, nil, errors.Wrap(err, "failed to create private key") | |
} |
language: go | |
# Only the last two Go releases are supported by the Go team with security | |
# updates. Any versions older than that should be considered deprecated. | |
# Don't bother testing with them. tip builds your code with the latest | |
# development version of Go. This can warn you that your code will break | |
# in the next version of Go. Don't worry! Later we declare that test runs | |
# are allowed to fail on Go tip. | |
go: | |
- 1.9 |