Application Profiles

Contents

  1. Profiles
  2. web servers
  3. databases
  4. miscellaneous

Profiles

Running lein new luminus myapp will create an application using the default profile template. However, if you would like to attach further functionality to your template you can append profile hints for the extended functionality.

web servers

Luminus defaults to using the Immutant webserver, the following alternative servers are supported:

  • +aleph - adds Aleph server support to the project
  • +jetty - adds Jetty support to the project
  • +http-kit - adds the HTTP Kit web server to the project

databases

  • +h2 - adds db.core namespace and H2 db dependencies
  • +sqlite - adds db.core namespace and SQLite db dependencies
  • +postgres - adds db.core namespace and add PostreSQL dependencies
  • +mysql - adds db.core namespace and add MySQL dependencies
  • +mongodb - adds db.core namespace and MongoDB dependencies
  • +datomic - adds db.core namespace and Datomic dependencies

miscellaneous

  • +auth - adds Buddy dependency and authentication middleware
  • +auth-jwe - adds Buddy dependency with the JWE backend
  • +oauth - adds OAuth boilerplate for the clj-oauth library
  • +cider - adds support for CIDER using CIDER nREPL plugin
  • +cljs - adds ClojureScript support
  • +reagent - adds ClojureScript support with Reagent
  • +re-frame - adds ClojureScript support with re-frame
  • +cucumber - a profile for cucumber with clj-webdriver
  • +swagger - adds support for Swagger-UI using the compojure-api library
  • +sassc - adds support for SASS/SCSS files using SassC command line compiler
  • +service - create a service application without the front-end boilerplate such as HTML templates
  • +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 - adds Kibit static code analyzer support

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

lein new luminus myapp +cljs

You can also mix multiple profiles when creating the application, eg:

lein new luminus myapp +cljs +swagger +postgres

Note that some profiles will override others where appropriate. For example, the +re-frame profile has precedence over +reagent, so

lein new luminus myapp +reagent +re-frame
 
is equivalent to
lein new luminus myapp +re-frame