Snapp, el nuevo acortador de enlaces por excelencia

Descubre esta magnifica alternativa a Shlink. Mucho más sencillo y con una interfaz más moderna.

Snapp, el nuevo acortador de enlaces por excelencia
Regístrate en HDS+
Es gratuito. Ten acceso a todo el contenido.
🔓
Dificultad del tutorial: Fácil
💡
02/05/2025: Actualizado corrigiendo el Docker-Compose con las nuevas variables y requisitos.

Hoy os voy a dar a conocer una nueva herramienta muy útil que ha visto la luz esta misma semana en GitHub. Snapp es una solución Selfhosted la cual nos va a permitir tener un servicio de acortador de enlaces en nuestro NAS.

Existen, y de hecho conocemos varias alternativas como Shlink que a pesar de que llevan mucho tiempo entre nosotros, no dejan de ser igual de engorrosas tanto de instalar como de configurar.

Por si fuera poco, Snapp es compatible con Umami, para llevar un control exhaustivo de las estadísticas.

Umami: Estadísticas detalladas de tu web en tiempo real
Tutorial sencillo para instalar Umami, el mejor Web Analytics para tu sitio.
Con Snapp podrás tener tu acortador de enlaces funcionando en 5 segundos.

Instalación de Snapp

El proceso de instalación no podría ser de lo más sencillo, puesto que ni tan siquiera requiere la creación de ninguna carpeta en nuestro sistema NAS.

Antes de ejecutar el Docker-Compose en el caso de Synology, y antes de ejecutar el Stack, se tienen que crear 2 carpetas: snapp y redis_snapp. En mi caso irán dentro de /volume1/docker/.

Después, lo único que tendremos que hacer es crear un nuevo stack en Portainer y pegar el siguiente Docker-Compose.

👉
Tendréis que especificar el dominio donde vayáis a alojar el servicio y especificarlo en ORIGIN y PUBLIC_URL. Para ello tendrás que crear antes un nuevo Proxy Inverso.
💡
En el caso de unRAID, tendréis que ejecutar el Docker-Compose también mediante Portainer o Compose-Manager, ya que no hay plantilla disponible por el momento.
version: "3.9"
services:
  snapp:
    container_name: snapp
    image: uraniadev/snapp:latest
    ports:
      - 5025:3000
    depends_on: 
     redis: 
    environment:
      ORIGIN: https://dominio.com # Sustituir por tu dominio creado en Proxy Inverso
      PUBLIC_URL: https://dominio.com # Sustituir por tu dominio creado en Proxy Inverso
      NODE_ENV: production
      ENABLE_MULTIUSER: true #or false if you want to restrict user access
      TIMEZONE: Europe/Madrid
      SMTP_HOST: smtp.gmail.com
      SMTP_USER: #Tu dirección de Email
      SMTP_PASSWORD: #La contraseña de tu Email
      SMTP_FROM: #Tu dirección de Email
      DB_HOST: redis
      DB_PORT: 6379
      AUTH_SECRET: #Generar una con el comando openssl rand -base64 32
      
  redis:
    image: redis/redis-stack:latest
    container_name: redis_snapp
    volumes:
      - /volume1/docker/snapp:/data
    environment:
      REDIS_ARGS: '--save 60 1 --appendonly yes'

Snapp con instalaciones sin HTTPS

Por defecto, Snapp solamente es compatible con conexión segura HTTPS, de lo contrario, el servicio no funcionará. Algo que no supone ningún tipo de problema ya que es algo esencial cuando creamos un Proxy Inverso para acceder con un dominio. Pero, en el caso de que accedamos a nuestros servicios mediante VPN y no queramos exponernos a Internet, también podemos instalar Snapp en "local" cambiando la variable NODE_ENV al valor development:

Con este método, si no estamos dentro de nuestra Red Local o conectados vía VPN a ella, no podremos acceder, ya que el enlace que generará Snapp será nuestra IP interna y no un dominio público (Proxy Inverso).

Configuración de Snapp

Una vez hemos ejecutado el comando correctamente o instalado, podemos acceder a Snapp a través de: https://midominio.com, el cual hemos creado anteriormente como un nuevo Proxy Inverso.

La primera ventana de configuración es bien sencilla. Tendremos que darle al botón de Sign Up y crear la cuenta de administrador, como muestro a continuación.

Una vez dentro, se vuelve todo más sencillo todavía, ya que como se puede observar, Snapp cuenta con una interfaz muy sencilla, limpia y de aspecto moderno. Tendremos que hacer clic en Shorten an URL y ya podremos añadir el enlace a acortar, permitiendo incluso especificar un custom-tag para que sea incluida en la URL acortada.

Una vez creado el enlace podremos compartirlo mediante incluso un código QR.

Se nos permiten cositas interesantes como la de fijar una fecha límite de validez del enlace así como también una contraseña para que el enlace sea de acceso restringido.

Opcional Integración con Umami

Por defecto obtenemos de estadística las veces que se ha pulsado sobre el enlace. Pero si queremos aumentar el control sobre quien y de donde hacen clic a nuestros enlaces, el servicio incluye integración con Umami.

Estas serán las variables que tendremos que añadir a nuestro Compose:

UMAMI_WEBSITE_ID=XXXX-XXXX-XXXX-XXXX #ID de la Web que nos aparece en el panel de Umami
UMAMI_URL=https://umami-dominio.com # Sustituir por tu dominio donde alojes Umami
Invítame a un café



Más artículos

Dozzle: visualizador de logs en tiempo real para tus Dockers

Dozzle: visualizador de logs en tiempo real para tus Dockers

Monitoriza todos tus Docker a golpe de clic. Visualiza todos los registros en una misma plataforma.

Por Joan
Instala la alternativa SelfHosted a WeTransfer en tu NAS

Instala la alternativa SelfHosted a WeTransfer en tu NAS

Envíe archivos por enlace o correo electrónico, de forma privada o pública, utilizando Pingvin Share.

Por Joan