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
make setup
# run the dev server
make dev
# then make deploy
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:
You can get SSL support using letsencrypt with the following steps:
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"
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