#link #self-hosted #provider #identity-provider #service #statistics #shortening

yanked linkr

Lightweight self-hosted personal link shortening and renaming service

0.2.0 Mar 4, 2019
0.1.2 Jan 29, 2019
0.1.1 Jan 28, 2019
0.1.0 Jan 28, 2019

#16 in #identity-provider

30 downloads per month

AGPL-3.0-or-later

26KB
616 lines

linkr

The self-hosted solution for url shortening or prettifying.

I made linkr because I wanted a self-hosted solution for url shortening but all I found were implementations in PHP. The end goal is something as robust as existing solutions but written in safe Rust, with an emphasis on RESTful APIs first.

Features

  • Multi-threaded and secure as it uses Rocket
  • Support for multiple identity providers and authorization/authentication modes
  • Easy to set up
  • Administrative endpoints to manage links
  • Built-in per-link statistics
  • Memory safe: Written in Rust

Examples

With no authorization:

# Creating a link
curl -XPOST -d "origin=hello&dest=https://google.com&password=potato" your-domain.com/api/link

# Deleting a link
curl -XDELETE -d "origin=hello&password=potato" your-domain/api/link

Pre-shared key (requires timestamp hashing message with PSK):

# Creating a link
curl -XPOST -d "origin=asdff&dest=hosd&ts=1551681791&hash=a84ee951112f89feaa34fe32d052c17187edbc2fb7ec35dfe710d06b5b17ad05" localhost:8000/api/link

# Deleting a link
curl -XDELETE -d "origin=asdf&ts=1551681861&hash=155b46c17892125e50a5284e916b8fee2f039b7481dd1ba16b117d80c6ffbd26" localhost:8000/api/link

Getting started

Please see the docs to learn how to get started.

Dependencies

~15–27MB
~408K SLoC