GitPedia

Ursho

URL Shortener Service in Go

From douglasmakey·Updated March 26, 2025·View on GitHub·

Redirect Open url in your browser [http://localhost:8080/bN](http://localhost:8080/1) The project is written primarily in Go, distributed under the MIT License license, first published in 2017. Key topics include: go, golang, shorten-urls, shortener, url-shortener.

Synopsis

URL Shortener Service

Run

Run with Docker

bash
docker-compose up

Code Example

Using CURL
Generate shortener\

$ curl -H "Content-Type: application/json" -X POST -d '{"url":"www.google.com"}' http://localhost:8080/encode/
<!-- Response: -->
<!-- {"success":true,"response":"http://localhost:8080/1"} -->

Redirect
Open url in your browser http://localhost:8080/bN

OR

curl http://localhost:8080/1

Get info for url shortener
curl http://localhost:8080/info/1

Response:

json
{ "success":true, "response": { "url":"www.google.com", "visited":true, "count":1 } }

Motivation

..

Installation

You can install it using 'go get' or cloning the repository.

Use go get

# fetches the program
go get github.com/douglasmakey/ursho

# move to the app's directory
cd $GOPATH/src/github.com/douglasmakey/ursho

Cloning the repo

We'll use github.com/user as our base path. Create a directory inside your workspace in which to keep source code:

mkdir -p $GOPATH/src/github.com/douglasmakey cd "$_"

Clone repository or download and unrar in folder
git clone https://github.com/douglasmakey/ursho.git

Use GLIDE Package Management for Golang, for installation all packages

https://github.com/Masterminds/glide

Run glide install in the folder.

Select method of persistence

select the method of persistence, in which you going to work.
storage := &storages.Postgres{}

If selected Postgresql as Storage, create database

sql
CREATE DATABASE ursho_db;

Add your config for the method of persistence and other options in file config.json\

json
{ "server": { "host": "0.0.0.0", "port": "8080" }, "options": { "prefix": "http://localhost:8080/" }, "posgres": { "user": "postgres", "password": "mysecretpassword", "db": "ursho_db" } }

API Reference

..

Tests

..

Contributors

..

License

A short snippet describing the license (MIT, Apache, etc.)

Contributors

Showing top 4 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from douglasmakey/ursho via the GitHub API.Last fetched: 6/27/2026