# urupam `urupam` is a lightweight URL shortener built with Perl and Mojolicious, and backed by Redis. ## Basic requirements - Perl 5.42.0 - Carton (handles perl deps) - Redis ## Roadmap - [x] create installation script - [x] connect to redis + setter and getter operations - [ ] create dummy API endpoints - [ ] decide how to handle short url generation - [ ] avoid collisions in short urls - [ ] redirect to the original url - [ ] validate URLs and handle errors - [ ] create a simple and clean UI - [ ] manage/delete short urls - [ ] create systemd service - [ ] create `Dockerfile` - [ ] create `docker-compose.yml` - [ ] add unit tests along the way ## How to run To run the application in development, you'll first need a Redis server. The easiest way is to start a local Redis instance using Docker: ```sh docker run --name mojo-redis -p 6379:6379 -d redis ``` Install Perl dependencies with [Carton](https://github.com/perl-carton/carton): ```sh carton install ``` Start the application with `morbo`: ```sh carton exec morbo bin/urupam ``` Open [http://127.0.0.1:3000](http://127.0.0.1:3000) in your browser. ## Installation Run the installation script: ```sh scripts/install.sh ``` Enable and start the systemd service: ```sh sudo systemctl enable --now urupam ``` ### Using docker Build the image and use the `docker-compose` file: ```sh cd docker docker build -t urupam . docker compose up -d ``` ## License This project is licensed under the GPLv3+ License. See the [LICENSE](LICENSE) file for details.