URL Shortener and Location Bar Command Line
Switch branches/tags
Nothing to show
Clone or download

README.md

snippy

Snippy is a google app engine app for creating and serving your own short urls it also has some other features:

  • create short urls
  • redirect while hiding the referer
  • short urls protected by a login
  • image proxy
  • short urls also support suggestions

Install

make setup
# run the dev server
make dev
# then make deploy

More

Blog posts about it are here:

Here's some short urls I use all the time

  • w - make a new short url
  • ws - search for short urls - to edit them
  • g - google search
  • gis - google image search
  • qr - make a qr code for a url
  • map - google maps
  • go - google I'm feeling lucky
  • yt - youtube search
  • f - froogle search
  • urban - urban dictionary search

Alternatives can be found here:

SSL Support!

You can get SSL support using letsencrypt with the following steps:

Setup

Replace example.com with your domain, obvs.!

NOTE: the 2048 key length is really important app engine can't handle the 4096 that is in the sign_csr.py examples.

DOMAIN=example.com
openssl genrsa 2048 > user.key
openssl rsa -in user.key -pubout > user.pub
openssl genrsa 2048 > ${DOMAIN}.key
openssl req -new -sha256 -key ${DOMAIN}.key -subj "/" -reqexts SAN \
  -config <(cat /etc/ssl/openssl.cnf /System/Library/OpenSSL/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:${DOMAIN},DNS:www.${DOMAIN},DNS:app.${DOMAIN}")) \
  > ${DOMAIN}.csr

echo "Now go to http://${DOMAIN}/.well-known/acme-challenge/ and save that in acme-password.txt"

Request certs (every 3 months)

DOMAIN=example.com
python vendor/letsencrypt-nosudo/sign_csr.py \
  --email letsencrypt@mail.${DOMAIN} \
	--run-commands \
	--password-file acme-password.txt \
	--url-based \
  --public-key user.pub ${DOMAIN}.csr > ${DOMAIN}.signed.crt

echo "Go to https://console.cloud.google.com/appengine/settings/certificates to upload your new certs."

You'll need MY letsencrypt-nosudo for the --password-file and --run-commands and --url-based flags

background reading