Eric Ihli 11e45f8f39 | 3 years ago | |
---|---|---|
db | 3 years ago | |
kv | 4 years ago | |
load-balancer | 3 years ago | |
util | 3 years ago | |
web | 3 years ago | |
.dir-locals.el | 4 years ago | |
.gitattributes | 4 years ago | |
.gitignore | 3 years ago | |
Makefile | 4 years ago | |
README.org | 3 years ago |
README.org
DarkLimericks
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
-
Run
./db/run.sh && ./kv/run.sh
to start the docker containers for the database and key-value store.- The
run.sh
scripts only need to run once. They initialize development data containers. Subsequent development can continue withdocker start db && docker start kv
.
- The
- Start a Clojure REPL in Emacs, evaluate the
dev/user.clj
namespace, and run(init)
- Visit
http://localhost:8000
How To Run Software Locally
Steps
-
Run
./db/run.sh && ./kv/run.sh
to start the docker containers for the database and key-value store.- The
run.sh
scripts only need to run once. They initialize development data containers. Subsequent development can continue withdocker start db && docker start kv
.
- The
- The application's
jar
builds with amake
run from the root directory. (See Makefile). - Navigate to the root directory of this git repo and run
java -jar web/darklimericks.jar
- 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 ./ root@darklimericks.com:/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.