You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.7 KiB
Org Mode
63 lines
2.7 KiB
Org Mode
#+TITLE: 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
|
|
|
|
- [[https://www.docker.com/][Docker]]
|
|
- [[https://clojure.org/releases/downloads][Clojure Version 1.10+]]
|
|
- [[https://github.com/clojure-emacs/cider][Emacs and CIDER]]
|
|
|
|
** 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
|
|
|
|
- [[https://www.java.com/download/ie_manual.jsp][Java]]
|
|
- [[https://www.docker.com/][Docker]]
|
|
|
|
** 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 [[file:../Makefile][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 [[https://github.com/tachyons-css/tachyons/][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.
|