#link-shortener #text-file #personal #line #external #mapping #200

app lisho

A simple personal link shortener with no external dependencies in under 200 lines of Rust

4 releases

0.1.5 Apr 24, 2024
0.1.4 Jan 24, 2024
0.1.1 Jan 24, 2024
0.1.0 Jan 23, 2024

#709 in Text processing

MIT license

10KB
198 lines

Lisho

A simple personal link shortener with no external dependencies in under 200 lines of Rust. The links are maintained as a simple text file on the host machine.

[jzbor@desktop-i5] ~ lisho mappings.txt
Listening on localhost:8080 (5 links)
Token requested: mars
Token requested: asdfasdf
...

Lisho reads mappings from a simple text file. Entries consist of the short token and redirection URL separated by a whitespace. Lines starting with a # are ignored, as are fields after the URL. It is also possible to add a redirection for the root path by adding a mapping with a leading whitespace.

Example:

cb https://codeberg.org
gh https://github.com
gl https://gitlab.com
sh https://sr.ht

Static Files

There are some files that are compiled into lisho by default:

  • /
  • /index.html
  • /style.css
  • 404.html for 404 errors

You can override these defaults by simply adding a mapping to your preferred pages, in which case lisho will redirect them as usual. Similarly you can also set a favicon by redirecting it somewhere on the internet where your favicon is hosted.

# override index page
 https://github.com/jzbor/lisho
index.html https://github.com/jzbor/lisho

# add favicon
favicon.ico https://jzbor.de/favicon.ico

Of course this approach is rather limited, but lisho's primary goal is simplicity.

Convenient Alias

To make editing aliases on a remote machine easier you can add an alias in your shell config like so:

alias lisho-edit='ssh <hostname> -t <editor> <path>'

No runtime deps