Skip to content

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 web UI to handle multiple Shlink instances.

version: '3.3'
services:
shlink:
container_name: shlink
image: 'shlinkio/shlink:stable'
ports:
- 8130:8080
environment:
- DEFAULT_DOMAIN=link.raphael-catarino.fr
- IS_HTTPS_ENABLED=true
- GEOLITE_LICENSE_KEY=${GEOLITE_LICENSE_KEY}
- TIMEZONE=Europe/Paris
- INITIAL_API_KEY=${INITIAL_API_KEY}
volumes:
- /data/docker/shlink/database.sqlite:/etc/shlink/data/database.sqlite
networks:
- homelab
deploy:
labels:
- traefik.http.routers.shlink.rule=Host(`link.raphael-catarino.fr`)
- traefik.http.services.shlink.loadbalancer.server.port=8080
- traefik.http.routers.shlink.tls=true
- traefik.http.routers.shlink.tls.certresolver=production
- traefik.http.routers.shlink.tls.domains[0].main=raphael-catarino.fr
- traefik.http.routers.shlink.tls.domains[0].sans=*.raphael-catarino.fr
placement:
constraints:
- node.hostname == neptune
networks:
homelab:
external: true