Go Url

Url Shortener for use inside organisation
Alternatives To Go Url
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Kutt6,870
3 months ago156mitTypeScript
Free Modern URL Shortener.
Pckd681
6 months ago21mitJavaScript
The ⚡️ analytics-intensive, self-hostable link-shortener with a beautiful UI | AKA free bit.ly alternative 🚀
Shlink Web Client181
11 hours ago23mitTypeScript
A React-based client application for Shlink
Onurl65
10 days agogpl-3.0TypeScript
URL Shortener created w/ Next.js, TypeScript, Prisma
Shorest47
a year agoRust
A URL Shortener written in Rust and Svelte.
Url Shortener32
4 years agomitJavaScript
Extremely powerful URL Shortener with open stats
Fireshort29
2 months ago10mitJavaScript
A URL Shortener made using React.JS and Google Firestore
Go Url21
8 months ago6July 04, 20213mitGo
Url Shortener for use inside organisation
Chi_url21
4 months agomitJavaScript
URL SHORTENER written in Python
Shortly18
2 months ago14mitJavaScript
URL shortener with React, Apollo and GraphQL
Alternatives To Go Url
Select To Compare


Alternative Project Comparisons
Readme

Go URL

CircleCI Cypress Dashboard dependencies

A simple URL shortener written in Go with a React frontend and Postgres database.

Features

  • Shorten urls based on a user defined key
  • Alias a key to point to another short url
  • Open multiple pages at once by separating keys with a comma
  • Alias a key to point to multiple other keys
  • Use variables in URLs
  • Opensearch integration to provide suggestions directly to browser
  • Frontend to view most popular searches and search to find existing links
  • Frontend to allow anyone to add and edit links
  • Optional authentication using Azure AD or Okta
  • Slack / command integration
  • Slackbot integration

Demo

Getting Started

The recommended way to test and deploy is using Docker. You will need to run both the go-url app, and the Postgres DB.

Start Postgres

docker run -d -P --name db -e POSTGRES_PASSWORD=password -e POSTGRES_DB=go -e POSTGRES_ADDR=db:5432 postgres:11.3-alpine

Start App

docker run -p 1323:1323 -e HOSTS=localhost -e APP_URI=http://localhost:1323 --link db alexbrazier/go-url

Alteratively use the docker-compose file and run:

docker-compose up

Development

Open http://localhost:8080/go

Run Postgres manually or with Docker

docker-compose up postgres

Install node (via nvm), yarn & go

brew install nvm yarn go
nvm install

Start frontend

cd frontend
yarn
yarn start

Start API

cd api
dep ensure
POSTGRES_PASS=password HOSTS=localhost APP_URI=http://localhost:3000 go run server.go

Enviroment Configuration

Env Var Required Default Example Description
HOSTS yes go.domain.com,go2.domain.com List of comma separated hosts that the server will be able to be accessed from
BLOCKED_HOSTS go.domain.com,go2.domain.com List of hosts you want to block from being linked - HOSTS are already included to stop recursive calls
APP_URI yes https://go.domain.com Default URI of app - used to link back to app
PORT 1323 Port the app will run on
DEBUG false Enable more logging
JSON_LOGS false Use JSON logs where possible
POSTGRES_ADDR localhost:5432 Postgres db address
POSTGRES_DATABASE go Postgres db name
POSTGRES_USER postgres Postgres user
POSTGRES_PASS password Postgres password
SLACK_TOKEN xoxb-xxxxxxxxx-xxxxxxxx-xxxx Slack OAuth token to enable slackbot
SENTRY_API_DSN Sentry DSN for go API
SENTRY_FRONTEND_DSN Sentry DSN for react frontend
SLACK_SIGNING_SECRET xxxxxxxxxxx Slack signing secret to enable Slack /go command
SLACK_TEAM_ID Txxxxxxxx Slack team id to restrict slash command responses to single team
ENABLE_AUTH false Enable Azure auth or not - if enabled, all other fields must be filled in
AUTH_EXPIRY_SECONDS 2592000 Auth cookie expiry (default 30 days)
SECURE_COOKIES true Use secure https only cookies
AD_TENANT_ID Azure AD tenant ID
AD_CLIENT_ID Azure AD client ID
AD_CLIENT_SECRET Azure AD client secret
OKTA_CLIENT_ID Okta client ID
OKTA_CLIENT_SECRET Okta client secret
OKTA_ISSUER https://dev-123.oktapreview.com/oauth2/default Okta issuer url
SESSION_TOKEN Secret session token to store the user sessions
ALLOWED_IPS 110.1.10.2,1.1.22.0/24 IP addresses or CIDRs that are always allowed access, even with auth enabled
ALLOW_FORWARDED_FOR false Retrieve origin IP from X-Forwarded-For header. Only enable if source is trusted, e.g. via Cloudfront
FORWARDED_FOR_TRUST_LEVEL 1 Number of levels to trust X-Forwarded-For header - should map to number of proxies used

FAQ

Slackbot is posting multiple replies messages to a single message

When enabled, the Slackbot will be running on every node in a load balanced system. Either disable load balancing, or run a separate instance just for the Slackbot.

Popular Url Shortener Projects
Popular Reactjs Projects
Popular Applications Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Reactjs
Go
Golang
Postgres
Azure
Slack
Slack Bot
Url Shortener