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.
 
 
 
 
 
 
Nicolas Massé 1795b5dec4 fix project compilation on recent GO versions 5 years ago
.github Create FUNDING.yml 6 years ago
.vscode Fix #7 8 years ago
build Refactored project layout (fix: #109) (#111) 8 years ago
cmd/golang-url-shortener Refactored project layout (fix: #109) (#111) 8 years ago
config integrate PR mxschmitt/golang-url-shortener#132 5 years ago
deployments clarifying cf manifest and adding to gitignore (#123) 7 years ago
internal integrate PR mxschmitt/golang-url-shortener#132 5 years ago
web integrate PR mxschmitt/golang-url-shortener#132 5 years ago
.gitignore fix: compilation: switched to packr2 7 years ago
.travis.yml fix: bundling of static assets 7 years ago
CONTRIBUTING.md Create CONTRIBUTING.md 7 years ago
LICENSE Rename LICENSE.md to LICENSE 8 years ago
Makefile fix project compilation on recent GO versions 5 years ago
README.md fix project compilation on recent GO versions 5 years ago
go.mod integrate PR mxschmitt/golang-url-shortener#132 5 years ago
go.sum integrate PR mxschmitt/golang-url-shortener#132 5 years ago

README.md

Golang URL Shortener

Build Status GoDoc Go Report Card Coverage Status License Download Docker Pulls

Main Features

  • URL Shortening
  • Visitor Counting
  • Expirable Links
  • URL deletion
  • Multiple authorization strategies:
    • Local authorization via OAuth 2.0 (Google, GitHub, Microsoft, and Okta, or generic OIDC like Keycloak)
    • Proxy authorization for running behind e.g. Google IAP
  • Easy ShareX integration
  • Dockerizable
  • Multiple supported storage backends
    • High performance local database with bolt
    • Persistent non-local storage with redis

Webinterface

Short URLs


Generate ShareX Configuration

Documentation

Why did you built this

Only because I just want to extend my current self hosted URL shorter (which was really messy code) with some more features and learn about new techniques like:

  • Golang unit testing
  • React
  • Makefiles
  • Travis CI
  • Key / Value databases
  • Dockerfile and Docker Image Creation

Compilation from Source

test -n "$GOPATH" || echo "GOPATH is not set"
export GO111MODULE=auto
go get github.com/mxschmitt/golang-url-shortener
cd $GOPATH/src/github.com/mxschmitt/golang-url-shortener
git remote add mine git@github.com:nmasse-itix/golang-url-shortener.git
git pull mine master
make