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