gshort

Privacy-friendly self-hosted URL shortener.
04 Feb 2020280

gShort

Build Dependencies License

Screenshot

Overview

gShort is a URL shortener that you can selfhost or easily deploy to a PaaS. (Demo Site on Heroku)

Features

  • Password protected links
  • One Time Links or any custom TTL
  • Custom charset and length
  • Optional reCAPTCHA v3

Configuration

gShort requires a json configuration file, you can check the one that demo site uses here.

General

  • Domain: The domain or IP where gShort will be accesed from. (Required)
  • Port: The port where gShort will listen for incoming requests. (Required but can be overridden)
  • Protocol: The protocol that users will use to access gShort. This is not the protocol that gShort will use, only HTTP is supported. Eg: If running on Heroku or behind a reverse proxy configured with SSL this should be HTTPS. (Required)
  • SiteName: HTML Title of your page. (Required)
  • TagLine: (Required)

MongoDB

  • URI: Format mongodb+srv://$USER:$PASSWORD@cluster1-agata.mongodb.net/ (Required but can be overridden)
  • DataBase: MongoDB Database to use. (Required but can be overridden)
  • Collection: MongoDB Collection to use. (Required but can be overridden)

RandomStringGenerator

  • Charset: Charset used when generating short URLs. (Required)
  • Length: Length of the generated random strings. (Required)

ReCaptcha

  • SiteKey: Google's reCAPTCHAv3 Key, if you don't have one of theese just leave it as "". (Optional and can be overridden)
  • SecretKey: Google's reCAPTCHAv3 Secret Key, if you don't have one of theese just leave it as "" (Optional and can be overridden)

Heroku (or other PaaS)

Deployment to Heroku should be pretty straightforward:

  • Fork
  • Modify the example config.json file
  • Set the following environment variables:
    MongoDB_Collection
    MongoDB_Database
    MongoDB_URI
    ReCaptcha_SecretKey
    ReCaptcha_SiteKey
    
  • Deploy master branch

Getting Started (self Host)

TODO