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: 3 months 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 (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-02-26T20:07:57.000Z (about 4 years ago)
- Last Synced: 2025-01-21T06:12:15.492Z (3 months 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
[](https://travis-ci.org/mxschmitt/golang-url-shortener)
[](https://godoc.org/github.com/mxschmitt/golang-url-shortener)
[](https://goreportcard.com/report/github.com/mxschmitt/golang-url-shortener)
[](https://coveralls.io/github/mxschmitt/golang-url-shortener?branch=master)
[](https://opensource.org/licenses/MIT)
[ ](https://bintray.com/mxschmitt/golang-url-shortener/travis-ci/0.1#files)
[](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)

---

## 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