Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mxschmitt/golang-url-shortener
URL Shortener written in Golang using Bolt DB or Redis. Provides features such as Deletion, Expiration, OAuth and is of course Dockerizable.
https://github.com/mxschmitt/golang-url-shortener
bolt boltdb docker-compose golang oauth redis sharex url-shortener
Last synced: 4 days ago
JSON representation
URL Shortener written in Golang using Bolt DB or Redis. Provides features such as Deletion, Expiration, OAuth and is of course Dockerizable.
- Host: GitHub
- URL: https://github.com/mxschmitt/golang-url-shortener
- Owner: mxschmitt
- License: mit
- Archived: true
- Created: 2017-10-29T22:53:25.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-02-26T20:07:57.000Z (almost 4 years ago)
- Last Synced: 2025-01-21T06:12:15.492Z (5 days ago)
- Topics: bolt, boltdb, docker-compose, golang, oauth, redis, sharex, url-shortener
- Language: Go
- Homepage: https://so.sh0rt.cat
- Size: 606 KB
- Stars: 284
- Watchers: 19
- Forks: 83
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - mxschmitt/golang-url-shortener - URL Shortener written in Golang using Bolt DB or Redis. Provides features such as Deletion, Expiration, OAuth and is of course Dockerizable. (Go)
README
# Golang URL Shortener
[![Build Status](https://travis-ci.org/mxschmitt/golang-url-shortener.svg?branch=master)](https://travis-ci.org/mxschmitt/golang-url-shortener)
[![GoDoc](https://godoc.org/github.com/mxschmitt/golang-url-shortener?status.svg)](https://godoc.org/github.com/mxschmitt/golang-url-shortener)
[![Go Report Card](https://goreportcard.com/badge/github.com/mxschmitt/golang-url-shortener)](https://goreportcard.com/report/github.com/mxschmitt/golang-url-shortener)
[![Coverage Status](https://coveralls.io/repos/github/mxschmitt/golang-url-shortener/badge.svg?branch=master)](https://coveralls.io/github/mxschmitt/golang-url-shortener?branch=master)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Download](https://api.bintray.com/packages/mxschmitt/golang-url-shortener/travis-ci/images/download.svg?version=0.1) ](https://bintray.com/mxschmitt/golang-url-shortener/travis-ci/0.1#files)
[![Docker Pulls](https://img.shields.io/docker/pulls/mxschmitt/golang_url_shortener.svg)](https://hub.docker.com/r/mxschmitt/golang_url_shortener/)## Main Features
- URL Shortening
- Visitor Counting
- Expirable Links
- URL deletion
- Multiple authorization strategies:
- Local authorization via OAuth 2.0 (Google, GitHub, Microsoft, and Okta)
- Proxy authorization for running behind e.g. [Google IAP](https://cloud.google.com/iap/)
- Easy [ShareX](https://github.com/ShareX/ShareX) integration
- Dockerizable
- Multiple supported storage backends
- High performance local database with [bolt](https://github.com/boltdb/bolt)
- Persistent non-local storage with [redis](https://redis.io/)## [Webinterface](https://so.sh0rt.cat)
![Short URLs](https://user-images.githubusercontent.com/17984549/32700384-955d9336-c7c4-11e7-9fab-4141a86a375c.png)
---
![Generate ShareX Configuration](https://user-images.githubusercontent.com/17984549/32700395-cf9f057a-c7c4-11e7-9d2b-7523c8a95a20.png)
## Documentation
- [Installation](https://github.com/mxschmitt/golang-url-shortener/wiki/Installation)
- [Configuration](https://github.com/mxschmitt/golang-url-shortener/wiki/Configuration)
- [Setting up OAuth](https://github.com/mxschmitt/golang-url-shortener/wiki/Setting-up-OAuth)
- [ShareX Usage](https://github.com/mxschmitt/golang-url-shortener/wiki/ShareX)## 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