Shlink
A self-hosted URL shortener application that lets you create and manage shortened links under your own domain, with both command-line and REST API interfaces.
Platform availability
Available on 4 of 6 install platforms
Also on Docker Hub and GitHub
Health score
84/100 Excellent
- Maintained
- 100last commit 18 days ago
- Popular
- 755,318 GitHub stars
- Easy to install
- 654 install platforms, install notes, Docker image
- Light to run
- 801 GB minimum RAM, runs on ARM
How is this calculated?
A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). Factors without data are left out and the rest are rescaled.
Availability: platform listings confirmed today, links checked 10 days ago
- GitHub stars
- 5,318
- Open issues
- 23
- Last commit
- 2026-09-21
- Latest release
- v5.1.7
- License
- MIT
- Activity
- declining
Checked 3 days ago - source: GitHub (shlinkio/shlink)
Resources & Compatibility
Minimum requirements: 1 GB RAM, 1 CPU core(s). ARM (e.g. Raspberry Pi) is supported.
Checked 10 days ago - source: Docker Hub image tags and published docs
First-install notes
- Check Shlink is up after setup Open your Shlink health URL ending in /rest/health to confirm the service started. If it doesn't respond, your short links and web UI likely won't work until you fix the service or config. source
- Make your link page reachable Short links are resolved through Shlink's public short-code page, so the web address and network port must be reachable by visitors. If they are blocked or misconfigured, clicking a short link won't take people to the intended page. source
- Use your real domain for callbacks If you use the async API for visit notifications, replace the example shlink.io callback base with your actual Shlink URL. Otherwise new-visit and new-short-url events may not reach the tool you set up. source
Fetched 10 days ago - each note links to its source
Variants
Alternatives (10)
- Beacons - Create a free, beautiful, and highly customizable link in bio website with Beacons.
- Dub.co - Open-source link management with analytics, free QR code generation, custom domains, advanced audience targeting, team collaboration, and S…
- Fli.so - Fli.so is a lightning-fast URL shortener built with SvelteKit and PocketBase.
- Polr - Like everything else here, Polr is an open source and self-hostable web application.
- TinyURL - Converts long URLs into short, secure links, supports branded domains, bulk shortening via API, link analytics, QR code generation, and das…
- YOURLS - YOURLS is a free, open-source self-hosted URL shortener that lets you create shortened links on your own server, with analytics, plugins, a…
- bit.ly - Shortens URLs, generates customizable QR codes, tracks clicks, offers branded domains, bulk management, analytics, browser extension, and A…
- gupt - Encrypted chat, passwords, notes, bookmarks, and ephemeral sharing — with no phone number, no email, no account, and no central server.
- hypermind - Hypermind is a decentralized, peer-to-peer deployment counter and ephemeral chat platform.
- kutt - Kutt is a modern URL shortener with support for custom domains.
Checked 7 days ago - source: AlternativeTo
Common questions
How can I confirm Shlink has started and that short links are reachable?
Open the Shlink health endpoint to confirm the service started. The public short-code page and network port must also be reachable by visitors for links to resolve.
How should I configure async API visit-notification callbacks?
Use your actual Shlink URL as the callback base instead of the example callback base. Otherwise new-visit and new-short-url events may not reach the tool you set up.
Does Shlink include a separate web client for management?
An official Shlink web client uses the REST API to provide a web UI for handling multiple Shlink instances.
Where can I find guidance for using a reverse proxy with Shlink?
The Shlink documentation includes a Using a reverse proxy section under advanced topics.
Is there a Docker Compose approach for self-hosting Shlink?
A self-hosted community thread covers setting up Shlink using Docker Compose and adapting a containerized deployment.
Answers sourced from api-spec.shlink.io, api-spec.shlink.io, shlink.io, www.reddit.com
Community
- Why is Shlink so difficult to make it publicly available (CORS) - Reddit (reddit)
- Docker compose for shlink : r/selfhosted - Reddit (reddit)
- Shlink Reverse Proxy : r/selfhosted - Reddit (reddit)
- shlink.io experience : r/selfhosted - Reddit (reddit)
Collected 4 days ago - public community threads