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.
Routing
- +reitit - adds Reitit Clojure/Script router support
web servers
Luminus defaults to using the ring-undertow webserver, however the following alternative servers are supported:
- +jetty - adds Jetty server support to the project
- +aleph - adds Aleph server support to the project
- +immutant - add Immutant 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 - +xtdb - adds
db.core
namespace and XTDB dependencies
ClojureScript
- +cljs - adds ClojureScript support
- +hoplon adds ClojureScript support with Hoplon to the project
- +reagent - adds ClojureScript support with Reagent
- +re-frame - adds ClojureScript support with re-frame
- +kee-frame - adds ClojureScript support with kee-frame
- +shadow-cljs - adds Clojurescript support with shadow-cljs, replacing the default cljsbuild and figwheel setup
service API
- +graphql - adds GraphQL support using Lacinia
- +swagger - adds support for Swagger-UI
- +service - create a service application without the front-end boilerplate such as HTML templates
miscellaneous
- +boot - uses Boot as build tool and creates
build.boot
instead ofproject.clj
- +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
- +cucumber - a profile for cucumber with 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 - adds Kibit static code analyzer support
- +servlet - adds middleware to support the servlet context for running inside Java application servers
- +basic - generates a bare bones luminus project
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