Looking for a reliable, self-hostable URL shortening solution? Look no further! Snapp is the perfect tool for individuals and businesses seeking control over their URL management.

Our Features

User friendly interface

Snapp provides a user-friendly interface for seamless link shortening. Read how to get started!

Secure Authentication

Enjoy a secure experience with authentication sessions and hashed passwords. Your information is in safe hands.

Custom Short Codes

Create personalized short codes for your links to make them memorable and easy to share.


Control the lifespan of your links with expiration dates. Set expiry dates for added security or let them stay active indefinitely.

Secret links

Add an extra layer of protection with secret links. Choose to share links with a selected audience using unique secrets.

Usage Analytics

Empower yourself with detailed analytics for every link you create. Snapp gathers metrics anonymously, providing insights into link engagements.

Extend Metrics

Integrate your Snapp Instance with your self-hosted or cloud Umami Analytics instance for advanced metrics of your Snapps.

Check URL reputation

Secure the links passing through your Snapp instance with a check on VirusTotal API reputation.


Community requested features that enables API Rest endpoint to create and manage your Snapps remotely. Read full Swagger Docs here.

Getting started

Snapp is a self-hostable open source platform

Manual installation

In order to run Snapp you need an environment with NodeJS installed and available

Snapp requires now a Redis DB running. You can simply use provided compose to run the Redis instance with persistance.

Clone the git repository git clone https://github.com/urania-dev/snapp.git

Install dependencies
npm install

Copy and edit .env.example file cp .env.example .env && nano .env

Develop and extend Snapp on your server

npm run dev

Build the app
npm run build

Run and enjoy!
node -r dotenv/config build


Latest versions of Snapp included CSV Export in order to facilitate migration. Simply login and import your urls from dashboard, and continue from where you left.

Using Docker Container

Use this docker-compose.yml to run your Snapp
version: "3"
		image: redis/redis-stack:latest
			- /etc/localtime:/etc/localtime:ro
			- /home/snapp/redis:/data:rw 
			- snapp-stack
			REDIS_ARGS: "--save 60 1 --appendonly yes" 
			# Optional: Requires `--requirepass mypassword` in REDIS_ARGS
		image: uraniadev/snapp:0.7.test
			- 3000:3000
			- snapp-stack
			DB_HOST: redis
			# DB_PASS: 
			AUTH_SECRET: # openssl rand -base64 32
		external: false

You can find a better docker compose on our Github Repository.

The Stack

The technology involved

made with in urania