gow

command module
v0.0.0-...-ec82de7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2020 License: MIT Imports: 4 Imported by: 0

README

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL