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.

Regístrate en HDS+
Tutoriales y soporte sobre sistemas NAS, Redes, Docker y SelfHosting.
Sin SPAM. Es gratuito. Ten acceso a todo el contenido.
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.
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.
ORIGIN
y PUBLIC_URL
. Para ello tendrás que crear antes un nuevo Proxy Inverso.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
:
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

