Skip to content

A simple yet efficient URL shortening service written in Elixir

License

Notifications You must be signed in to change notification settings

Queertoo/Queerlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Hécatée Irssiainen
Jan 10, 2018
0a77264 · Jan 10, 2018

History

21 Commits
Dec 19, 2017
Jan 10, 2018
Dec 7, 2017
Jan 10, 2018
Dec 19, 2017
Jan 9, 2018
Dec 19, 2017
Jan 10, 2018
Dec 7, 2017
Dec 7, 2017
Dec 7, 2017
Dec 19, 2017
Jan 10, 2018
Dec 19, 2017
Jan 10, 2018
Dec 19, 2017
Dec 19, 2017

Repository files navigation

Queerlink v2 Made in Elixir Made with Queerness

A simple and efficient link shortener.

Features

  • A super-easy-to-use JSON API;
  • Your data is stored in an sqlite3 database. Backup with rsync or scp;
  • A clean, no-fuss web interface;
  • A documentation.

Using the API

With HTTPie, simply type http POST :4000/s url=https://elixir-lang.org (for instance). You can test what you get with http http://localhost:4000/l/20gd6ne.

the POST request will, in case of success, return this schema:

{
    "longUrl": "https://elixir-lang.org",
    "shortUrl": "http://localhost:4000/l/20gd6ne",
    "status": "success"
}

Installation

Local Installation

Queerlink requires Elixir v1.4 and (it's in your best interest) OTP20.
Don't forget to export the PORT and MIX_ENV environment variables, the latter being prod when you're reading for launching live!

Next:

  1. Install dependencies with mix deps.get;
  2. In an prod environment, don't forget to generate a secret key base with mix phx.gen.secret and add this snippet in config/prod.secret.exs:
config :queerlink, QueerlinkWeb.Endpoint,
  secret_key_base: "mysecret"
  1. Create and migrate your database with mix ecto.create && mix ecto.migrate;
  2. Install Node.js dependencies with npm install;
  3. Start the beast with iex -S mix phx.server

Producing a release

$ export MIX_ENV=prod PORT=4000
$ cd assets/ && npm i
$ ./node_modules/brunch/bin/brunch b -p
$ cd ../ && mix phx.digest
$ mix release --env=prod
$ _build/prod/rel/queerlink/bin/queerlink migrate
$ _build/prod/rel/queerlink/bin/queerlink start|foreground|console

In addition…

The doc/nginx/ directory contains the necessary configuration to run Queerlink behind an Nginx reverse proxy. You can find a wrk lua script in doc/ as well.

License

This software is licensed under the MIT license.