Liking cljdoc? Tell your friends :D

Luminus-Template

A Leiningen template for projects using Luminus.

The template initializes a base Luminus application.

Requirements

Luminus requires Leiningen version 2.5.3+

Usage

The Luminus template ships out of the box with your latest Leiningen. Run the following command to create a new Luminus project which uses the default profile template:

lein new luminus <your project name>

However, if you would like to attach further functionality to your template you can append profile hints for these extended features:

alternative servers

  • +aleph adds the Aleph server
  • +http-kit adds the fast HTTP Kit web server to the project
  • +immutant adds the immutant web server to the project. Note: this project is no longer funded/maintained
  • +undertow adds the ring-undertow web server to the project

The default server is jetty

databases

service API

  • +graphql - adds GraphQL support using Lacinia
  • +swagger adds support for Swagger-UI
  • +service removes static assets and the layout, adds Swagger support

ClojureScript

misc

  • +boot causes the project to run with Boot instead of Leiningen
  • +auth adds Buddy dependency and authentication middleware
  • +auth-jwe adds Buddy dependency with the JWE backend
  • +oauth adds OAuth dependency
  • +hoplon adds ClojureScript support with Hoplon to the project
  • +cucumber adds support for browser based UI testing with Cucumber and clj-webdriver
  • +sassc adds support for SASS/SCSS files using SassC command line compiler
  • +war adds support of building WAR archives for deployment to servers such as Apache Tomcat (should NOT be used for Immutant apps running on WildFly)
  • +site creates template for site using the specified database (H2 by default) and ClojureScript
  • +kibit add lein-kibit plugin
  • +servlet adds middleware for handling Servlet context
  • +basic generates a bare bones luminus project

To add a profile simply pass it as an argument after your application name, e.g.:

lein new luminus myapp +cljs

You can also mix multiple profiles when creating the application, e.g.:

lein new luminus myapp +auth +postgres

To build as a executable Java ARchive (JAR) standalone, run the following command:

lein uberjar

Or if using the +boot profile:

boot uberjar

To run the resulting standalone executable .jar file, do as you would with any other:

user$ java -jar target/myapp.jar
15-Sep-14 16:06:21 APc47d.4f39.65e6.uhn.ca INFO [myapp.handler] -
-=[myapp started successfully]=-
16:06:21.685 INFO  [org.projectodd.wunderboss.web.Web] (main) Registered web context /
15-Sep-14 16:06:21 APc47d.4f39.65e6.uhn.ca INFO [myapp.core] - server started on port: 3002

Performance Testing

The app can be stress tested by running the Apache benchmark command:

ab -c 10 -n 1000 http://127.0.0.1:3000/

The memory and CPU usage can be inspected by running either jconsole or jvisualvm and attaching them to a running Luminus server.

Other Templates

There is also a public comparison chart of the common templates.

License

Copyright © 2016 Dmitri Sotnikov

Distributed under the MIT License.

Can you improve this documentation? These fine people already did:
Dmitri Sotnikov, Yogthos, supersymmetry, dmitri.sotnikov@gmail.com, Randy Terbush, Jeremy Anderson, Nikola Peric, David Goldfarb, JC, Ben Sima, Daniel Manila, Kevin Greene, Nik Peric, Coby Tamayo, Max Furman, Chinmay Deshpande, Joe Hosteny, Sean Brewer, Abhinav Sharma, Shigeaki Matsumura, Mike Li & Logan Lowell
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close