EN
Log in Create an account

How to install Shlink on Saplo (your own link shortener with statistics)

Shlink is an open-source link shortener without address limits or monthly fees for additional links. We show you how to set it up on your own Box, complete with a browser-based panel.

Grzegorz Kalmus ·

Bitly's paid plan can cost well over $100 per month even before you exceed the shortened link limit, because billing depends on the number of active addresses and clicks. Shlink is an open-source link shortener, the same idea as Bitly, but deployed on your own Box, once, with no address limit and no monthly invoice. Below is a step-by-step guide on how to deploy Shlink on Saplo.

Paid Bitly plans have two features that are particularly painful for marketing campaigns and long-term link tracking:

  • limit on the number of shortened links and clicks per month - the free plan is enough for a single campaign, not for a whole year of agency work,
  • click data stored with an external company - traffic statistics from your campaigns remain on Bitly's servers, not yours.

Shlink is the same link shortening and click counting mechanism that you set up on your own Box. Zero limits on the number of addresses, click data stays on your infrastructure, and your own shortening domain looks professional instead of generic bit.ly.

Requirements

To set up Shlink on Saplo, you need:

  • A Box with Docker running (the engine automatically enables it during installation from the catalog, container nesting is required, which Saplo has by default).
  • At least 512 MB of free RAM on the Box and 2 GB of disk space.
  • A domain or subdomain *.saploapp.pl included in the price of each plan, preferably a short one, as it will be visible in every shortened link.

It's worth clarifying right away what Shlink is and isn't. Shlink itself is a REST API and a short link redirection server. On Saplo, you get it with the official browser panel, which is located at the application's address and is password-protected, so you don't need to install or configure anything extra. For the installation itself, you don't need any external database, because Shlink by default stores data in a local SQLite file in the data volume. Optionally, you can choose Saplo's shared MySQL database if you expect high traffic.

Step-by-step installation

  1. In the Saplo panel, go to App catalog and select Shlink ("Tools" category).
  2. Specify the Box where it will be installed, and the domain or subdomain under which the shortened links will operate, and select the database: SQLite (default, zero additional infrastructure) or MySQL (shared Saplo database, better for high traffic).
  3. Confirm the installation. The engine deploys two Docker containers with official shlinkio/shlink and shlinkio/shlink-web-client (panel) images, generates a random API key and password for the panel, and exposes everything under the specified domain via nginx with free SSL.
  4. The engine waits for Shlink to actually respond to a health check query twice before considering the installation complete, because the first run requires a database schema migration, which can take more than a few seconds.
  5. After completion, in the application's startup data (SHLINK-SETUP.txt file) you will find the login and password for the panel and the API key.

First-time setup

Shlink, like Grafana or MinIO, automatically generates access credentials during installation instead of asking for them in a wizard.

  1. Open the application's startup data in the Saplo panel (the SHLINK-SETUP.txt file), you'll find the login, password and API key there.
  2. Click Open next to the application, log in, and select the My links server. The server is already connected with the API key, you don't need to enter anything.
  3. Create your first short link in the link creation tab, optionally with your own short code instead of a random string of characters.
  4. Check the click statistics and QR code for the created link, both features are built-in and available immediately after installation.

Short links work on the same domain without a password; the password only protects the panel. Your custom short code cannot be named server, settings, assets, or icons, because these addresses are used by the panel.

If you prefer automation over clicking in the interface, the same can be done directly via the REST API, for example, creating a shortened link with one command:

curl -s -X POST 'https://your-domain.saploapp.pl/rest/v3/short-urls' \
  -H "X-Api-Key: YOUR_API_KEY" -H 'Content-Type: application/json' \
  -d '{"longUrl":"https://saplo.pl"}'
Bitly Premium Shlink on Saplo
Cost increases with the number of links and clicks per month included in your Saplo plan, unlimited links
Where is your data Bitly infrastructure Your Box
Custom short domain available in higher plans any subdomain *.saploapp.pl included
Click statistics and QR codes yes yes
Who administers it Bitly You, but without manually setting up a server

FAQ

Does Shlink have a web login panel like WordPress or Ghost? Yes. On Saplo, at the application address, there is an official Shlink panel protected by a password; the login and password are in the SHLINK-SETUP.txt file. You can also add the same server in the app.shlink.io client or access it via the REST API with the key from this file.

Is there a limit to the number of shortened links? No, Shlink does not impose any limit on the number of addresses or clicks; the only limitation is the resources of your purchased Box.

Can I see which country a link was clicked from? No, by default, visit geolocation requires your own free key from MaxMind, which cannot be set up automatically during installation. Without it, Shlink counts clicks normally, just without information about the visitor's country.

What's the difference between SQLite and MySQL during installation? SQLite is a database file in the data volume, with zero additional infrastructure, sufficient in most cases. MySQL is a shared Saplo database, worth choosing only for really high click traffic.

Are Shlink data automatically backed up? It depends on your purchased Box plan; backup works at the entire Box level, just like with other applications from the catalog; it is not a separate feature of Shlink itself.

If you have questions about setting up Shlink on your own Box or the initial panel configuration, write to us, and we will help you with the first configuration.

  • #Marketing
  • #Guide
  • #Shlink
  • #Link shortener
  • #Statistics