Shlink Docker Compose: Acortador de URLs Self-Hosted 2026

Shlink Docker Compose - acortador de URLs self-hosted con estadisticas

Shlink Docker Compose es la forma más sencilla de montar tu propio acortador de URLs self-hosted, con dominio propio, estadísticas detalladas y una potente API REST. En lugar de depender de servicios como Bitly, que controlan tus enlaces y tus datos, con esta solución los enlaces cortos son tuyos, viven en tu servidor y nunca desaparecerán. En esta guía lo desplegarás con Docker, crearás tu primer enlace y conectarás su panel web.

En este artículo aprenderás a:

  • Desplegar Shlink Docker Compose con su base de datos.
  • Generar tu clave de API y crear enlaces cortos.
  • Conectar el panel web para gestionarlo visualmente.
  • Publicarlo con HTTPS y aprovechar sus estadísticas.

¿Qué es Shlink y por qué usar Docker Compose?

Shlink Docker Compose despliega un acortador de URLs autohospedado, rápido y completo, que te permite crear enlaces cortos bajo tu propio dominio. Más allá de acortar, Shlink registra visitas con datos geográficos, genera códigos QR, soporta etiquetas y expone toda su funcionalidad a través de una API REST y una interfaz de línea de comandos. Al desplegarlo con Docker, obtienes una instalación reproducible y fácil de mantener.

Autohospedar tu acortador con esta solución tiene ventajas claras frente a los servicios comerciales:

  • Marca propia: tus enlaces usan tu dominio, reforzando tu imagen en lugar de la de un tercero.
  • Sin caducidad: los enlaces son tuyos y no desaparecerán si un servicio cierra o cambia de política.
  • Estadísticas privadas: los datos de visitas se quedan en tu servidor, sin cederlos a nadie.
  • API potente: automatiza la creación de enlaces desde tus aplicaciones y flujos de trabajo.

Shlink Docker Compose encaja muy bien en un ecosistema self-hosted orientado a la privacidad. Igual que mides tu web sin ceder datos con Umami como analítica privada, aquí gestionas tus enlaces cortos con la misma filosofía de control total sobre tu información.


Requisitos previos para Shlink Docker Compose

Antes de desplegar Shlink Docker Compose, prepara lo básico. El requisito más particular es el dominio, ya que un acortador sin dominio propio pierde su sentido.

  • Un servidor con Docker Engine y Docker Compose v2.
  • Un dominio corto apuntando a tu servidor (cuanto más corto, mejor para un acortador).
  • Un proxy inverso con HTTPS, imprescindible para que los enlaces sean seguros y fiables.
  • Unos 512 MB de RAM libres; Shlink es muy ligero.

El dominio es la pieza central: idealmente uno breve y memorable. Para publicarlo con HTTPS, te será útil nuestra guía de Caddy con certificados automáticos, ya que Shlink exige HTTPS para funcionar correctamente en producción.

Instalar Shlink Docker Compose paso a paso

Creamos el directorio del proyecto donde vivirán el fichero de composición y los datos.

mkdir -p ~/docker/shlink && cd ~/docker/shlink

Crea el fichero docker-compose.yml. Este ejemplo usa PostgreSQL como base de datos para un rendimiento sólido, aunque Shlink también admite MariaDB o incluso SQLite para pruebas. Fíjate en las variables de entorno, que definen el dominio por defecto y la clave de API inicial.

services:
  shlink:
    image: shlinkio/shlink:stable
    container_name: shlink
    restart: unless-stopped
    depends_on:
      - shlink_db
    environment:
      DEFAULT_DOMAIN: s.tudominio.com
      IS_HTTPS_ENABLED: "true"
      DB_DRIVER: postgres
      DB_HOST: shlink_db
      DB_NAME: shlink
      DB_USER: shlink
      DB_PASSWORD: cambia-esta-clave
      INITIAL_API_KEY: genera-una-clave-larga
    ports:
      - "8080:8080"

  shlink_db:
    image: postgres:16-alpine
    container_name: shlink-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: shlink
      POSTGRES_PASSWORD: cambia-esta-clave
      POSTGRES_DB: shlink
    volumes:
      - ./db:/var/lib/postgresql/data

La variable DEFAULT_DOMAIN es el dominio corto que usarán tus enlaces, e INITIAL_API_KEY crea una clave de API en el primer arranque para que puedas empezar a trabajar de inmediato. Levanta el stack y comprueba que todo funciona.

docker compose up -d
docker compose logs shlink

Cuando el contenedor esté en marcha, Shlink Docker Compose escuchará en el puerto 8080. Ya tienes el motor del acortador funcionando; ahora vamos a crear enlaces y a darle una interfaz gráfica.

⚠️ Advertencia de seguridad

La clave de API da control total sobre tus enlaces: guárdala como una credencial crítica y usa un valor largo y aleatorio. Cambia también la contraseña de la base de datos del ejemplo y no expongas el puerto 8080 sin HTTPS. Un acortador comprometido puede usarse para redirigir a tus usuarios a sitios maliciosos.

Crear enlaces cortos con Shlink Docker Compose

Con Shlink Docker Compose en marcha, crear un enlace corto es tan sencillo como una petición a su API REST, usando la clave de API que definimos. Este ejemplo con curl acorta una URL larga.

curl -X POST "https://s.tudominio.com/rest/v3/short-urls" \
  -H "X-Api-Key: genera-una-clave-larga" \
  -H "Content-Type: application/json" \
  -d '{"longUrl": "https://tutorialesdevops.es/una-pagina-muy-larga"}'

La respuesta incluirá el enlace corto generado, listo para compartir. Esta capacidad de crear enlaces por API es lo que convierte a Shlink en una herramienta tan potente: puedes integrarlo en tus aplicaciones, en tu CMS o en scripts para generar enlaces automáticamente. También dispones de una interfaz de línea de comandos dentro del contenedor para gestionarlo sin salir de la terminal.

docker compose exec shlink shlink short-url:list

Este comando lista todos los enlaces creados con sus estadísticas de visitas. Entre la API y el CLI, Shlink Docker Compose se adapta tanto a la automatización como a la gestión manual puntual.

Añadir el panel web a Shlink Docker Compose

Aunque la API y el CLI son potentes, para el uso diario resulta más cómoda una interfaz gráfica. Shlink ofrece un cliente web oficial que puedes desplegar como un contenedor adicional en tu docker-compose.yml, conectándolo a tu instancia.

  shlink_web:
    image: shlinkio/shlink-web-client:stable
    container_name: shlink-web
    restart: unless-stopped
    ports:
      - "8081:8080"

Tras levantar este contenedor, accede a él en el puerto 8081 y añade tu servidor introduciendo su dominio y la clave de API. A partir de ahí, gestionas todos tus enlaces de forma visual: los creas, editas, etiquetas y consultas sus estadísticas con gráficos claros. Para publicar tanto la API como el panel de forma segura, sitúalos tras un proxy como Nginx Proxy Manager.

Estadísticas y casos de uso de Shlink Docker Compose

Una de las grandes ventajas de Shlink Docker Compose frente a un simple redireccionamiento es su completo sistema de estadísticas. Cada vez que alguien pulsa un enlace, Shlink registra información útil que puedes consultar después.

  • Número de visitas: cuántas veces se ha usado cada enlace, con su evolución en el tiempo.
  • Geolocalización: desde qué países y ciudades acceden tus usuarios.
  • Dispositivos y navegadores: con qué tecnología llegan a tus enlaces.
  • Referrers: desde qué sitios se ha hecho clic, útil para medir campañas.

Estos datos convierten a Shlink en una herramienta valiosa para marketing y análisis. Puedes crear enlaces distintos para cada canal (redes sociales, correo, prensa) y medir con precisión cuál funciona mejor, todo sin ceder ni un dato a plataformas externas. Los casos de uso van desde acortar enlaces para redes sociales hasta generar códigos QR para materiales impresos o rastrear la efectividad de una campaña publicitaria.

Shlink Docker Compose frente a servicios comerciales

La comparación con acortadores comerciales como Bitly ayuda a entender por qué cada vez más equipos apuestan por Shlink Docker Compose. Los servicios gratuitos suelen imponer límites de enlaces, restringir las estadísticas a los planes de pago y, sobre todo, controlar tus datos. Si el servicio cierra o cambia sus condiciones, tus enlaces pueden quedar inutilizables de un día para otro.

Con una solución autohospedada, esos riesgos desaparecen. Estas son las diferencias clave que inclinan la balanza:

  • Propiedad: los enlaces y sus datos son tuyos para siempre, sin depender de terceros.
  • Sin límites artificiales: creas tantos enlaces como quieras, sin muros de pago ni cuotas.
  • Privacidad: las estadísticas de tus usuarios no alimentan el negocio de nadie más.
  • Personalización: tu dominio, tus reglas y tu integración a medida vía API.

El único coste es el mantenimiento del servidor, algo perfectamente asumible dada la ligereza de Shlink. Para cualquiera que gestione enlaces de forma profesional o que simplemente valore su independencia digital, la ecuación sale claramente a favor del autohospedaje.


Automatizar enlaces con la API de Shlink Docker Compose

El verdadero superpoder de Shlink Docker Compose es su API REST, que abre un abanico enorme de automatizaciones. Cualquier aplicación capaz de hacer una petición HTTP puede crear, consultar o modificar enlaces cortos de forma programática, integrando el acortador en flujos de trabajo más amplios.

Piensa, por ejemplo, en un sistema de publicación de contenidos que genere automáticamente un enlace corto cada vez que publicas un artículo, listo para compartir en redes. O en una herramienta de correo que acorte los enlaces de tus campañas para medir clics con precisión. Incluso puedes conectarlo a plataformas de automatización sin código para que reaccione a eventos de otras aplicaciones. Esta flexibilidad convierte a Shlink en mucho más que un simple acortador: es una pieza de infraestructura sobre la que construir. Cuanto más lo integres en tus procesos, más valor le sacarás, porque cada enlace generado automáticamente es tiempo que ahorras y datos que capturas bajo tu control.

Mantenimiento y solución de problemas

  • Los enlaces no funcionan: verifica que DEFAULT_DOMAIN coincide con el dominio real y que el DNS apunta bien.
  • Error de HTTPS: asegúrate de tener IS_HTTPS_ENABLED en true y el proxy con TLS válido.
  • Copias de seguridad: respalda el volumen de la base de datos, que contiene todos tus enlaces y estadísticas.
  • Geolocalización vacía: necesitas una licencia gratuita de GeoLite2 para los datos geográficos.

Si un enlace corto devuelve un error, casi siempre es un problema de configuración del dominio o del proxy. La mayoría de incidencias de Shlink Docker Compose se resuelven revisando esas dos piezas. Encuentra más servicios para tu servidor en nuestra categoría de tutoriales de Docker Compose.

Conclusión

Montar Shlink Docker Compose te da un acortador de URLs profesional bajo tu propio dominio, con estadísticas privadas y una API lista para automatizar. Hemos cubierto el despliegue con base de datos, la creación de enlaces por API y CLI, el panel web y el aprovechamiento de las estadísticas. A partir de aquí, integra la API en tus aplicaciones, crea enlaces por campaña y disfruta de un control total sobre tus enlaces cortos que ningún servicio comercial puede ofrecerte.

Como recomendación final, empieza con un uso sencillo —acortar y compartir unos cuantos enlaces manualmente— para familiarizarte con el panel y las estadísticas. Cuando te sientas cómodo, da el salto a la automatización conectando la API a las herramientas que ya usas a diario. Y no olvides programar copias de seguridad de la base de datos: tus enlaces cortos, una vez compartidos, deben seguir funcionando indefinidamente, así que perder esa información supondría romper cada enlace publicado. Con un mantenimiento mínimo y un buen respaldo, tu acortador se convertirá en una infraestructura discreta pero fiable, siempre disponible y siempre bajo tu control, que acompañará a tu marca durante muchos años sin depender de la voluntad de terceros.

Preguntas frecuentes sobre Shlink Docker Compose

¿Necesito un dominio propio?

Sí, es lo que da sentido a un acortador self-hosted. Cuanto más corto sea el dominio, mejor. Puedes usar un dominio dedicado exclusivamente a tus enlaces cortos para máxima brevedad.

¿Puedo generar códigos QR?

Sí. Shlink genera automáticamente un código QR para cada enlace corto, accesible desde la API y el panel web, ideal para materiales impresos y campañas offline.

¿Qué base de datos debo usar?

Para producción, PostgreSQL o MariaDB ofrecen el mejor rendimiento. SQLite sirve para pruebas o instalaciones muy pequeñas, sin necesidad de un contenedor de base de datos separado.

¿Shlink es gratis?

Sí, Shlink es un proyecto de código abierto y gratuito. Solo asumes el coste del servidor y del dominio donde lo alojes, ambos muy asequibles.

Fuentes y recursos oficiales

Avatar

Por Mid

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x