https://github.com/someone-stole-my-name/gShort
URL Shortener without all the crap
https://github.com/someone-stole-my-name/gShort
bitly shorten-urls shortener url-shortener url-shortener-microservice urlshortener
Last synced: 7 months ago
JSON representation
URL Shortener without all the crap
- Host: GitHub
- URL: https://github.com/someone-stole-my-name/gShort
- Owner: someone-stole-my-name
- License: gpl-3.0
- Archived: true
- Created: 2019-11-28T08:19:01.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-10-14T12:27:17.000Z (about 4 years ago)
- Last Synced: 2024-08-01T03:38:55.679Z (about 1 year ago)
- Topics: bitly, shorten-urls, shortener, url-shortener, url-shortener-microservice, urlshortener
- Language: CSS
- Homepage:
- Size: 6.16 MB
- Stars: 80
- Watchers: 3
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gShort



## Overview
gShort is a URL shortener that you can selfhost or easily deploy to a PaaS.
### 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][example_config].
#### 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[gshort_demo_site]:https://gshort.christiansegundo.com
[example_config]:https://github.com/someone-stole-my-name/gShort/blob/master/config.json