Skip to content
This repository has been archived by the owner on Jun 24, 2023. It is now read-only.

Latest commit

 

History

History
83 lines (53 loc) · 2.3 KB

README.md

File metadata and controls

83 lines (53 loc) · 2.3 KB

gow

Simple URL shortener with simple analytics.

gow

Motivation

This program is powering our internal url shortener (evlfctry.pro) which is to track link distribution without tracking any personal data.

Technologies

  • Go
  • SQLite
  • Reason React (Web)

Goals

  • Minimal dependencies
  • Minimal memory footprint
  • No personal data tracking

Development

Make sure you have Go & SQLite installed (and its dependencies), if not, you know what's next.

  • Build the application: make
  • Run the server: TOKEN=<token> ./gow

If you want to develop the web as well, you need to open a new terminal session and run npm run dev in web directory.

Environment variables

  • TOKEN - Used for creating via REST_API, default: (empty)
  • HOST - Helpful when you are using reverse proxy, default: localhost
  • PORT - Helpful in case you don't use container technology, default: 3030
  • SLACK_WEBHOOK - (Optional) Slack Webhook URL to send incoming request to Slack, default: (empty)

For now (v0.2.0), authorization is done in Layer 7 (Load Balancer), but I will fix this.

Deployment

There are 2 ways to run this program in Production.

Quick way

  • Pull the image: docker pull evilfactorylabs/gow:<version>
  • Run it: docker run -d -e TOKEN="<token>" -v ~/data:/app/data evilfactorylabs/gow:<version>

As Binary

  • Clone repo
  • Build code: make
  • Run program: TOKEN=<token> ./gow

As Docker Container

  • Build image: docker build -t . evilfactorylabs/gow:latest
  • Run image: docker run -d -e TOKEN="<token>" -v ~/data:/app/data evilfactorylabs/gow:<version>

Roadmap

  • v1.0.0 — stable basic functionality [api, web]
  • v1.1.0 — show total hits on index & stats page [api, web]
  • v1.2.0 — functionality to delete existing slug [api]
  • v1.3.0 — authentication functionality, not rely on token (like now) [api, db]
  • v1.4.0 — make migration easier and more reliable [db]
  • v1.5.0 — fancy chart! [web]

Maintainer(s)

License

(c) 2020 evilfactorylabs, under MIT License.