Git Product home page Git Product logo

gshort's Introduction

gShort

Build Dependencies License

Screenshot

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.

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:[email protected]/ (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's People

Contributors

someone-stole-my-name avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gshort's Issues

Disable Recaptcha

Is there any way to disable recaptcha completely? It's an important privacy feature to me.

[Feature Request] Add support for embedded databases

Can't we use an embedded database like RocksDB or SQLite to store the data? The latter might be more lightweight but the former allows for concurrent access, so I prefer RocksDB. There are a bunch more available options, it's your call.

This reduces dependencies, so there'll be less friction to adopting gShort 'cause we don't have to bother bringing up an external MongoDB instance. Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.