diff --git a/.gitignore b/.gitignore
index cf11b31..f0d939b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,9 +8,14 @@ pom.xml
/.lein-*
/.env
*.log
+/.calva/
# Links to other places:
resources/public/docs/mw-*/uberdoc.html
# Artefacts:
mw_ui.log
pom.xml
+
+buildall.tmp.*/
+
+.nrepl-port
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..afcd747
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,3 @@
+FROM tomcat:alpine
+COPY target/microworld.war $CATALINA_HOME/webapps/
+
diff --git a/README.md b/README.md
index 2e99c39..68bca8d 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,13 @@
-## Part of the overall MicroWorld system
+## Part of the overall Microworld system
*mw-ui* is not a stand-alone project. To use it you also need at least
[mw-parser](https://github.com/simon-brooke/mw-parser) and
[mw-engine](https://github.com/simon-brooke/mw-engine). There will be other
modules in due course.
-You can see MicroWorld in action [here](http://www.journeyman.cc/microworld/) -
-but please don't be mean to my poor little server. If you want to run big maps
-or complex rule-sets, please run it on your own machines.
-
## What this is about
-
+
MicroWorld is a rule driven cellular automaton. What does that mean? Well, it's
a two dimensional world made up of squares called **cells**. The world develops
in steps, and at each step, each cell is modified by applying the rules.
diff --git a/project.clj b/project.clj
index e280238..871fe1a 100644
--- a/project.clj
+++ b/project.clj
@@ -1,4 +1,4 @@
-(defproject mw-ui "0.1.5-SNAPSHOT"
+(defproject mw-ui "0.1.5"
:description "Web-based user interface for MicroWorld"
:url "http://www.journeyman.cc/microworld"
:manifest {
@@ -8,22 +8,29 @@
"build-signature-timestamp" "unset"
"Implementation-Version" "unset"
}
- :dependencies [[org.clojure/clojure "1.6.0"]
- [mw-engine "0.1.5-SNAPSHOT"]
- [mw-parser "0.1.5-SNAPSHOT"]
- [lib-noir "0.8.4"]
- [ring-server "0.3.1"]
- [selmer "0.6.8"]
- [com.taoensso/timbre "3.2.1"]
- [com.taoensso/tower "2.0.2"]
- [markdown-clj "0.9.44"]
- [environ "0.5.0"]
- [noir-exception "0.2.2"]]
-
+ :dependencies [[org.clojure/clojure "1.8.0"]
+ [mw-engine "0.1.5"]
+ [mw-parser "0.1.5"]
+ [lib-noir "0.9.9"]
+ [ring-server "0.5.0"]
+ [selmer "1.11.3" :exclusions [cheshire
+ com.fasterxml.jackson.core/jackson-core
+ com.fasterxml.jackson.dataformat/jackson-dataformat-smile
+ com.fasterxml.jackson.dataformat/jackson-dataformat-cbor]]
+ [hiccup "1.0.5"]
+ [com.taoensso/timbre "4.10.0" :exclusions [org.clojure/tools.reader]]
+ [com.taoensso/tower "3.0.2"]
+ [markdown-clj "1.0.1"]
+ [environ "1.1.0"]
+ [noir-exception "0.2.5"]]
+ :main mw-ui.repl
:repl-options {:init-ns mw-ui.repl}
:plugins [[lein-ring "0.8.11"]
[lein-environ "0.5.0"]
- [lein-marginalia "0.7.1"]]
+ [lein-marginalia "0.7.1"]
+ [io.sarnowski/lein-docker "1.1.0"]]
+ :docker {:image-name "simonbrooke/microworld"
+ :dockerfile "Dockerfile"}
:ring {:handler mw-ui.handler/app
:init mw-ui.handler/init
:destroy mw-ui.handler/destroy
@@ -37,8 +44,8 @@
:stacktraces? false
:auto-reload? false}}
:dev {:dependencies [[ring-mock "0.1.5"]
- [ring/ring-devel "1.3.0"]
- [pjstadig/humane-test-output "0.6.0"]]
+ [ring/ring-devel "1.6.3" :exclusions [ring/ring-codec]]
+ [pjstadig/humane-test-output "0.8.3"]]
:injections [(require 'pjstadig.humane-test-output)
(pjstadig.humane-test-output/activate!)]
:env {:dev true}}}
diff --git a/resources/templates/base.html b/resources/templates/base.html
index 35c830b..2be5573 100644
--- a/resources/templates/base.html
+++ b/resources/templates/base.html
@@ -45,7 +45,9 @@
{% endif %}
{% if error %}
{{error}}
+
+{{error}}
+