Shlink

analyticsprivacy

Self-hosted URL shortener with anonymized visit analytics, multi-domain support, and a REST API. MIT-licensed, runs on PHP with Docker Compose deployment

#url-shortener#analytics#links#tracking#branded-links
Alternative to BitlyTinyURL

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.

01
Branded short links under your own domain
02
Privacy-compliant link tracking without third-party analytics
03
Programmatic link management via REST API

Deployment Strategy

Recommended ways to host Shlink in your own environment.

docker
self-hosted