You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Schmitt, Max a140bce699 - moved to prism JS 8 years ago
.vscode Fix #7 8 years ago
build Fix #7 8 years ago
config Fix #7 8 years ago
handlers fixed broken CI build 8 years ago
static - moved to prism JS 8 years ago
store added Makefile 8 years ago
.gitignore - Removing sourcemaps bevore we embed it 8 years ago
.travis.yml Should fix #24 8 years ago
LICENSE.md - Added LICENSE.md 8 years ago
Makefile Moved coveralls report command to the travis ci file, instead of the makefile 8 years ago
README.md fixed broken CI build 8 years ago
descriptor.json Added #13 8 years ago
main.go changed iferr to short forms 8 years ago

README.md

Golang URL Shortener (Work in Progress)

Build Status GoDoc Go Report Card Coverage Status License Waffle.io - Columns and their card count Download

Main Features

  • URL Shortening
  • Visitor Counting
  • Expirable Links
  • URL deletion
  • Authorization System via OAuth 2.0 from Google (more providers following)
  • High performance database with bolt
  • Easy ShareX integration
  • Dockerizable

Server Installation

Standard

Download the package for your architecture and operating system from bintray and extract it.

Docker

TODO

Configuration

The configuration is a JSON file, an example is located here. If your editor supports intellisense by using a schema (e.g. VS Code) then you can simply press space for auto completion. The config parameters should be really self explaining, but here is a detailed description for all of these:

OAuth

Google

Visit console.cloud.google.com and create or use an existing project, go to APIs & Services -> Credentials and create there an OAuth Client-ID for the application type Webapplicaton. There you get the Client-ID and the ClientSecret for your configuration. It's important, that you set in the Google Cloud Platform YOUR_URL/api/v1/callback as authorized redirect URL.

Clients

General

In general the POST endpoints can be called, by using one of the following techniques:

  • application/json
  • application/x-www-form-urlencoded
  • multipart/form-data

For all the endpoints which are on /api/v1/protected there is the Authorization header required.

ShareX

For ShareX usage, we refer to the menu item in the frontend where your configuration will be generated. There are further information for the detailed use.

Why did you built this

Just only because I want to extend my current self hosted URL shorter with some features and learn about new techniques like:

  • Golang unit testing
  • React
  • Makefiles
  • Travis CI
  • Key / Value databases

Utils

Update Config Documentation

yarn global add jsonschema-md
go run build/schema.go
jsonschema-md.cmd build/schema.json > build/schema.md

After that adjust the title to Configuration and the description to Golang URL Shortener Configuration.