    | Examples:
    |
    | 1. Create a short link to https://duckduckgo.com
    |   $ curl -d https://duckduckgo.com {{.URL}}
    |   {{.URL}}/502fb5543c36014f
    |
    | 2. Create a short link with a custom path
    |  $ curl -d https://duckduckgo.com {{.URL}}/ddg
    |   {{.URL}}/ddg
    |
    | 3. Create a short link to https://duckduckgo.com using a query string
    |   $ curl {{.URL}}?https://duckduckgo.com
    |   {{.URL}}/1acd382417199d7e
    |
    | 4. Create a short link with a custom path using a query string
    |   $ curl {{.URL}}/ddg?https://duckduckgo.com
    |   {{.URL}}/ddg
    |
    | 5. You can also pass an encoded URL:
    |   $ curl {{.URL}}?https%3A%2F%2Fduckduckgo.com
    |   {{.URL}}/1dc4cb37e81de396
    |
    | 6. Deleting a short link
    |   $ TMP=$(mktemp)
    |   $ # temp file will store header
    |   $ LINK=$(curl -sS {{.URL}} -d https://duckduckgo.com -D $TMP)
    |   $ # the link has been successfully created
    |   $ DEL=$(cat $TMP | grep -i delete-with | awk '{print$2}'| tr -d '\r')
    |   $ # deletion key is stored in 'X-Delete-With' header.
    |   $ curl $LINK
    |   <a href="https://duckduckgo.com">Permanent Redirect</a>.
    |   $ # the link is working as expected
    |   $ curl $LINK -X DELETE -d $DEL
    |   $ curl $LINK
    |   record not found
    |   $ # the link has been successfully deleted.

{{if .Demo}}

Please note: this is an example deployment. If you attempt to create a short link here you will receive a 401 Unauthorized. If you like the examples above and want to use this URL shortener you should self-host an instance. It's easy to do (one of the design goals). Below are instructions detailing how.

{{end}}

    | How to self-host:
    |
    | 1. Install dependencies
    |   a. The Go programming language
    |     https://golang.org/doc/install
    |   b. Git version control
    |     https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
    |
    |   * Most distributions should have Go and Git in their repositories,
    |     simply as go and git.
    |     Install these through your package manager, e.g.:
    |       # pacman -S go git
    |       # emerge --ask dev-lang/go dev-vcs/git
    |       # apt install go git
    |
    | 2. Fetch and compile the source code
    |   # env GO111MODULE=off go get git.swurl.xyz/swirl/link
    |
    | 3. Copy the binary to your binary directory
    |   # cp $GOPATH/bin/link /usr/local/bin/linkserv
    |   # # Named linkserv to prevent conflicts with GNU link
    |
    | 4. Create a directory to store your database
    |  # mkdir -p /srv/link
    |
    | 5. (optional) Copy the example systemd service
    |   # cp doc/link.service /etc/systemd/system/
    |   * You can also create an equivalent for openrc, runit, etc.
    |
    | 6. Change the domain to reflect your setup
    |   # sed -i 's/your.doma.in/[DOMAIN HERE]/g' /etc/systemd/system/link.service
    |
    | 7. Change the seed to something secure
    |   # sed -i 's/secret/SecretPasswordHere/g' /etc/systemd/system/link.service
    |
    | 8. Enable and start the service
    |   # systemctl enable --now link
    |
    | 9. Or, run it manually
    |   # linkserv -url http://your.doma.in -db /srv/link/link.db -seed "secret"
    |
    | * The server is now running on localhost at port 8080.
    | * If the SQLite database does not exist, it will be created.
    | * All logging will be printed to standard error and standard output.

    | Set up an NGINX reverse proxy:
    |
    | 1. Install dependencies
    |    * nginx
    |    * certbot
    |    * certbot nginx plugin
    |
    |    * Most distributions should have these in their repositories:
    |      # pacman -S nginx certbot-nginx
    |      # emerge --ask www-servers/nginx app-crypt/certbot-nginx
    |      # apt install nginx python-certbot-nginx
    |
    | 2. Copy the example site file
    |   # cp doc/link.nginx.conf /etc/nginx/sites-available/link
    |
    | 3. Change the domain to reflect your setup
    |   # sed -i 's/your.doma.in/[DOMAIN HERE]/g' /etc/nginx/sites-available/link
    |
    | 4. Enable the site
    |   # ln -s /etc/nginx/sites-{available,enabled}/link
    |
    | 5. Enable https for the site
    |   # certbot --nginx -d your.doma.in
    |
    | 6. Enable and start nginx
    |   # systemctl enable --now nginx
    |   # # Or, if you already have nginx running, reload it:
    |   # systemctl reload nginx
    |
    | * Your site should now be running on https://your.doma.in.
    | * To run in a subdirectory, simply put the proxy_pass in the subdirectory, e.g.:
    location /shortener {
        proxy_pass http://localhost:8080;
    }
    | * If you want to use another HTTP server, then create the equivalent for that HTTP server.