gShort
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