Simply Shorten logo

Simply Shorten

  •  0 ratings
In category: URL Shorteners

About Simply Shorten

A simple URL shortener that just shortens links.

  •   398  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: 52  
  •   8  
  •   N/A  
  •  Latest commit: Apr 27, 2023  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about Simply Shorten

Docker Pulls

Repository moved to GitLab

What is it?

A simple selfhosted URL shortener with no unnecessary features.

Don't worry if you see no activity for a long time. I consider this project to be complete, not dead. I'm unlikely to add any new features, but I will try and fix every bug you report.

If you feel like a feature is missing, please let me know by creating an issue using the "feature request" template.

But why another URL shortener?

I've looked at a couple popular URL shorteners, however they either have unnecessary features, or they didn't have all the features I wanted.

Features

  • Shortens URLs of any length to a fixed length, randomly generated string
  • (Optional) Allows you to specify the shortened URL instead of the generated one (Missing in a surprising number of alternatives)
  • Opening the fixed length URL in your browser will instantly redirect you to the correct long URL (you'd think that's a standard feature, but apparently it's not)
  • Provides a simple API for adding new short links
  • Links are stored in an SQLite database
  • Available as a Docker container
  • Backend written in Java using Spark Java, frontend written in plain HTML and vanilla JS, using Pure CSS for styling

Bloat that will not be implemented

  • Logging, tracking or spying of any kind. The only logs that still exist are errors printed to stderr and the default SLF4J warning.
  • User management. If you need a shortener for your whole organisation, either run separate containers for everyone or use something else.
  • Cookies, newsletters, "we value your privacy" popups or any of the multiple other ways modern web shows how anti-user it is. We all hate those, and they're not needed here.
  • Paywalls or messages begging for donations. If you want to support me (for whatever reason), you can message me through Github issues or via email. admin@draganczuk.me

Screenshot

Screenshot

Usage

Clone this repository

git clone https://gitlab.com/draganczukp/simply-shorten

Building from source

Gradle 6.x.x and JDK 11 are required. Other versions are not tested

1. Build the .jar file

gradle build --no-daemon
The --no-daemon option means that gradle should exit as soon as the build is finished. Without it, gradle would still be running in the background in order to speed up future builds.

2. Set environment variables

# Required for authentication
export username=<api username>
export password=<api password>
# Sets where the database exists. Can be local or remote (optional)
export db_url=<url> # Default: './urls.sqlite'

3. Run it

java -jar build/libs/url.jar
You can optionally set the port the server listens on by appending --port=[port]

4. Navigate to http://localhost:4567 in your browser, add links as you wish.

Running with docker

docker run method

  1. (Only if you really want to) Build the image
    docker build . -t simply-shorten:latest
  2. Run the image
    docker run -p 4567:4567
        -d url:latest
        -e username="username"
        -e password="password"
        -d simply-shorten:latest
    1.a Make the database file available to host (optional)
    touch ./urls.sqlite
    docker run -p 4567:4567 \
        -e username="username" \
        -e password="password" \
        -v ./urls.sqlite:/urls.sqlite \
        -e db_url=/urls.sqlite \
        -d simply-shorten:latest

docker-compose

There is a sample docker-compose.yml file in this repository. It contains everything needed for a basic install. You can use it as a base, modifying it as needed. Run it with

docker-compose up -d

Disable authentication

As requested in #5, it is possible to completely disable the authentication. This if not recommended, as it will allow anyone to create new links and delete old ones. This might not seem like a bad idea, until you have hundreds of links pointing to illegal content. Since there are no logs, it's impossible to prove that those links aren't created by you.

If you still want to do it, then you need to set an environment variable to an exact value:

INSECURE_DISABLE_PASSWORD=I_KNOW_ITS_BAD
Any other value will not work.

Comments (0)

Please login to join the discussion on this project.

Simply Shorten Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Dashboard

in Personal Dashboards
 5k    0    0    0  

Audiobookshelf

in Audio Streaming
 5k    0    1    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

Shlink logo
Shlink cover

Shlink

URL shortener with REST API and command line interface. Inc…

schort logo
schort cover

schort

No login, no javascript, just short links.

Blink logo
Blink cover

Blink

Easy-to-host, SSO-integrated, CDN-powered link shortener (+…