I want to install a URL shortener on a cloud VM for personal usage so that it will be very low volume. I have a few simple requirements:
- Runs in Docker
- As light resource usage as possible
- It must have authentication to prevent randos from using it
- It must be able to generate QR codes
- Modern and attractive experience ← subjective, I know
I have compiled the following options and pros and cons. Do you agree with this list and the pros and cons? Which do you think I should go with and why?
Kutt: Last release on Github: 2/22, 7,700 stars
Pros: Recommended here, fully featured, including authentication and QR codes
Cons: Heavy (3 containers), not recently updated
Yourls: Latest release on Github: 3/23, 9,700 stars
Pros: Recommended here, recent update, no native QR codes (but available via plugins), Lighter (2 containers)
Cons: PHP-based, less modern than Kutt, having to deal with plugins
Shlink: Latest release on Github: 9/23, 2,300 stars
Pros: Modern and attractive GUI, lighter (2 containers), bult-in QR codes, frequent updates
Cons: No authentication, Confusing and difficult install, separate front end and back end
Lynx: Latest release on Github: 8/23, 96 stars
Pros: Lighter (2 containers), native QR codes, authentication, frequent updates
Cons: Unclear experience – looks less modern on Github screenshot
I agree with others and have an alternative view. How about you install a hypervisor like Proxmox and then you get the flexibility of running Docker, LXC containers or even VMs.
Personally, I run a mix of LXC containers and Docker. Why? I really like Docker but the all inclusive nature of the containers can make customization of settings difficult.
In contrast, LXCs are heavier than Docker containers but they act like a full Linux machine and so you can use all of your past system admin knowledge and customize away. They are mich lighter than a VM and so they are a nice middle ground.
Summary for simple self-contained apps, I use Docker and for more complex apps, I rely on LXC containers. With Proxmox you can easily use both and so it is the best of both worlds!