Sign inSign up

akrantz/link-shortener

By akrantz

•Updated about 6 years ago

A custom URL shortener for my personal use

Image
0

369

akrantz/link-shortener repository overview

A custom URL shortener implementation for my own website that is written in Rust. The site is served using the warp⁠ framework, with the links stored in a PostgreSQL database and accessed using the Diesel ORM⁠. There is also a simple administrative UI written in HTML, CSS, and JavaScript for creating, updating, and deleting short links that uses the server's API. To style the management interface, I used the Halfmoon UI⁠ framework.

When navigating to the service without specifying a path, you will be shown a 404 page by default. You can create a link with the name root that will be redirected to when you go to the service without specifying the path. Note that the name root will also be accessible from /root.

⁠Deployment

This can either be run just as a standalone binary or in a Docker container. However, you must have a supporting PostgreSQL database running to store the link mappings. Both are configured using environment variables as specified in .env.sample⁠. NOTE: When running in a docker container, you must have the address listening on 0.0.0.0 or ::1 so it can be accessible from outside the container.

⁠Standalone Binary

If you would like a standalone binary, one can be retrieved from the Releases⁠ tab. Currently, only Linux binaries are provided. However, if your OS is not supported, follow the below instructions:

  1. Clone the repository: git clone [email protected]:akrantz01/link-shortener.git
  2. Build the binary: cargo build --release
  3. The resulting binary can be found at ./target/releases/link-shortener
⁠Docker

A Docker image is available on Docker Hub⁠ with the latest version. Simply run it with docker run -d --name link-shortener -e DATABASE_URL=<postgres> akrantz01/link-shortener:latest, where <postgres> is the connection URL for the database. Alternatively, you can use the provided docker-compose.yml⁠ so it is just plug-and-play.

Tag summary

Content type

Image

Digest

Size

11.6 MB

Last updated

about 6 years ago

docker pull akrantz/link-shortener