Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 2.73 KB

README.org

File metadata and controls

62 lines (37 loc) · 2.73 KB

DarkLimericks

https://darklimericks.com

The world’s largest metal limericks archive on the Web.

This is just meant to be a live demo of a Clojure phonetics library (https://github.com/eihli/phonetics) and a Hidden Markov Model use-case for a Tightly-packed Trie (https://github.com/eihli/clj-tightly-packed-trie).

I also borrowed some functionality from a NLP/rhyme-related codebase that is not yet ready for release (https://github.com/eihli/prhyme).

How To Initialize Development Environment

Required Software

Steps

  1. Run ./db/run.sh && ./kv/run.sh to start the docker containers for the database and key-value store. a. The run.sh scripts only need to run once. They initialize development data containers. Subsequent development can continue with docker start db && docker start kv.
  2. Start a Clojure REPL in Emacs, evaluate the dev/user.clj namespace, and run (init)
  3. Visit http://localhost:8000

How To Run Software Locally

Requirements

Steps

  1. Run ./db/run.sh && ./kv/run.sh to start the docker containers for the database and key-value store. a. The run.sh scripts only need to run once. They initialize development data containers. Subsequent development can continue with docker start db && docker start kv.
  2. The application’s jar builds with a make run from the root directory. (See Makefile).
  3. Navigate to the root directory of this git repo and run java -jar web/darklimericks.jar
  4. Visit http://localhost:8000

Development

Requires Tachyons CSS. There is a symlink in web/resources/public to the pre-built tachyons.css and tachyons.min.css found in the repo.

Build .jar with clojure -X:depstar uberjar :jar prhyme.jar.

Deployment

Since I’m developing this independently, it’s not a very robust deployment system.

It’s nice to have some parts of the repo available on the server; the db/kv scripts for example.

But obviously the album images and the data in the db/kv are going to be different between local and prod.

You can use rsync with --exclude to only sync over the code bits.

rsync --exclude '*/data/*' --exclude '*/images/*' -aLP ./ [email protected]:/root/darklimericks/

Note the -L to follow symlinks. Locally, I’m symlinking tachyons.css.

The other shortcut I’m taking is that images are stored and served relative to the path of the running application.

That means you need to launch the jar file from the web directory.