this post was submitted on 09 Mar 2025
77 points (94.3% liked)

Selfhosted

61070 readers
970 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

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

you are viewing a single comment's thread
view the rest of the comments
[–] dan@lemmy.i.secretponi.es 4 points 1 year ago (1 children)

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.dev 2 points 1 year ago (1 children)

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?

[–] dan@lemmy.i.secretponi.es 2 points 1 year 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.