Shlink
Self-hosted URL shortener with anonymized visit analytics, multi-domain support, and a REST API. MIT-licensed, runs on PHP with Docker Compose deployment
Quick Start
docker run --name shlink -p 8080:8080 shlinkio/shlink:stable Overview
Shlink is a self-hosted URL shortener that gives you full ownership of your short links and the analytics attached to them. You pick a short domain, deploy the server, and all link creation, management, and tracking stays on your infrastructure.
Every click generates a visit record with anonymized geolocation data, device type, referrer, and timestamp. The analytics show how links perform without sending that data to a third-party service. For teams with privacy requirements or compliance obligations, this is the main reason to choose Shlink over Bitly or a similar hosted service.
Shlink is API-first. A REST API handles all operations: creating short URLs, listing them, updating destination URLs, and querying visit statistics. A separate companion web app provides a browser-based management interface on top of that API. Command-line access is available for scripting and automation.
Multi-domain support lets you run several short domains from a single Shlink instance, useful for organizations managing links across multiple brands or projects.
The MIT-licensed codebase is actively maintained and runs on PHP with MySQL, PostgreSQL, SQLite, or SQL Server. Docker Compose deployment is the standard path. The scope is deliberately narrow: Shlink does URL shortening and visit tracking, and does both well. The API makes it straightforward to pipe data into whatever analytics setup you are already running.
Use Cases
Specific ways to use Shlink for your workflow.
Deployment Strategy
Recommended ways to host Shlink in your own environment.