Getting started
Shlink is a self-hosted URL shortener which provides both a REST and a CLI interface to interact with it.
Additionally, there’s also an official Shlink web client which, by making use of Shlink’s REST API, provides a beautiful web UI to handle multiple Shlink instances.
This documentation will walk you through the process of getting both Shlink and shlink-web-client installed, using one of the many available approaches.
You will also learn how it is architected, how to use it once installed, and answers to frequently asked questions.
Where to start
Install Shlink
Run the official Docker image, or the dist file on a PHP runtime you choose.
Configure it
Every environment variable, from the default domain to the database and cache.
Go further
Dynamic redirects, multiple domains, imports, real-time updates and more.
Automate with the REST API
Authentication, errors and API key roles, then every endpoint for your release.
Use the web client
A web UI that manages short URLs across several Shlink instances.
Connect your tools
The official PHP and JS SDKs, and apps that work with Shlink.
Table of contents
- Install docker image
- Install from dist file
- Supported runtimes
- Supported db engines
- GeoLite2 license key
- Update your instance
- Tracking visits
- Some features
- Environment variables
- Long-running tasks
- Dynamic redirects
- Special redirects
- Multiple domains
- Import short URLs
- Real-time updates
- Using Redis or Valkey
- Using a reverse proxy
- Send visits to Matomo
- Shlink architecture
- CLI entry point
- Installation tool
- Authentication
- Error management
- API key roles
- Installation
- Serve in sub path
- Pre-configuring servers
- Short Menu for Mac
- Short Menu for iOS
- GNOME Shell extension
- Microsoft PowerToys Run
- Shlink iOS shortcut
- Troubleshooting