Skip to content

johnstcn/freshcomics

Repository files navigation

FreshComics

FreshComics crawls webcomics frequently so that folks who follow them can stay up to date.

It is written in GoLang and consists of a frontend and a crawler (backend).

The frontend is quite barebones and just lists the most recently seen comics for all known sites. This updates periodically in the background, configurable via environment variable.

The crawler backend exposes a web UI to easily manage definitions for crawling comic sites. Crawl frequency and backoff are configurable via environment variables.

Dependencies

Local:

  • Vagrant/Virtualbox
  • Ansible 2.x

System:

  • Systemd
  • Postgresql 9.6
  • Nginx

Golang:

  • github.com/azer/snakecase
  • github.com/dustin/go-humanize
  • github.com/fiorix/freegeoip
  • github.com/gorilla/mux
  • github.com/jmoiron/sqlx
  • github.com/kelseyhightower/envconfig
  • github.com/tdewolff/minify
  • gopkg.in/xmlpath.v2
  • golang.org/x/net

Local Setup

The following will bring up a Ubuntu 16.04 VM in Vagrant with a private IP of 192.168.12.34 running the frontend and crawler via systemd.

  • vagrant up
  • cd deploy/staging
  • ansible-playbook staging.yml

You can then visit the crawler UI at http://admin.freshcomics.192.168.12.34.xip.io and the frontend at http://freshcomics.192.168.12.34.xip.io.