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
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.
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>'