A self-hosted URL shortener: Shlink - Keep control over all your shortened URLs, by serving them under your own domains, using this simple yet powerful tool. https://shlink.io/

I was very surprised to find this mature, full-featured URL shortener. It’s written in PHP and includes Geoblocking so your shortener isn’t abused.

A Docker quick-start guide: https://lnk.clifmo.com/ljk13

  • pulsewidth@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 hours ago

    Can I ask - why would anyone do this? Several URL shortening services of the past have shuttered and it has left the web littered with links to sites that can never be resolved (linkrot) - this to me just seems like a another surefire way to speedrun future deadlinks in forums etc. Why?

  • grumps@lemmy.i.secretponi.es
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 hours ago

    This maybe isn’t for everyone but I de-dockerified Shlink pretty quickly. Moving it to two nginx vhosts (server and admin) on a Shlink LXC and a centralized Postgres server made dealing with it a lot easier.

    E.g., the initial API key shenanigans were less fiddly after I took more direct control.

    • clifmo@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 hours ago

      Interesting. I deploy to my homelab with Docker so it was a fit for me. But I do want to tinker on the API to disable everything but GET. Can you share anything more about breaking it up?

      • grumps@lemmy.i.secretponi.es
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 hours ago

        It was mostly uneventful, to be honest. I downloaded the two apps (static admin and the php app), tossed them into /opt/www, and set up nginx to serve PHP. The config in the main app had a section for my Postgres settings and the docs gave the instructions on putting the default server configuration into the static site.

        The only challenge was actually rather silly: I don’t use PHP so it took me a bit to understand why apt install php installed Apache when I had already installed nginx. Once I found php-fpm it was smooth sailing from there.

    • clifmo@programming.devOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      15 hours ago

      I looked at yourls, too. I found Shlink devex to be more mature and the automated geolocation-blocking integration sold me.

      It also hasn’t had a release in 2 years and is a self-described “set of PHP scripts”. Doesn’t fit my standard for what I deploy to my homelab