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.

Expiration

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.

REST API

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
optional

npm run dev

Build the app
npm run build

Run and enjoy!
node -r dotenv/config build

Migration

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
terminal
version: "3"
services:
	redis:
		image: redis/redis-stack:latest
		volumes:
			- /etc/localtime:/etc/localtime:ro
			- /home/snapp/redis:/data:rw 
		networks:
			- snapp-stack
		environment:
			REDIS_ARGS: "--save 60 1 --appendonly yes" 
			# Optional: Requires `--requirepass mypassword` in REDIS_ARGS
	snapp:
		image: uraniadev/snapp:0.7.test
		ports:
			- 3000:3000
		networks:
			- snapp-stack
		environment:
			DB_HOST: redis
			# DB_PASS: 
			AUTH_SECRET: # openssl rand -base64 32
			
networks:
	snapp-stack: 
		external: false

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


The Stack

The technology involved



made with in urania