Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master


A library for starting a web server to serve a Ring handler with sensible default options and environment variable overrides.


When starting in development mode (i.e. LEIN_NO_DEV is not set):

  • The server finds a free port to start on
  • It automatically reloads changed files
  • It renders exceptions and their stacktraces in HTML
  • A web browser is automatically opened to the started server

In production:

  • You can specify the port via the PORT environment variable
  • You can add hooks to run on startup and shutdown.


Add the following dependency to your project.clj file:

[ring-server "0.4.0"]


Simple usage:

(use 'ring.server.standalone)
(serve your-handler)

You can also specify a map of options:

(serve your-handler {:port 4040})

The following options are supported:

  • :port - The port to start the server on, overrides $PORT

  • :join? - Whether to wait until the server stops (default true)

  • :init - A function executed when the server starts

  • :destroy - A function executed when the server stops

  • :open-browser? - True if you want a browser to be opened to the server. Defaults to true in development mode, false in production mode.

  • :browser-uri - A path to append to the target URL if opening a browser (default none). The full URI will be constructed like: http://{host}:{port}{browser-uri}

  • :stacktraces? - True if you want a stacktrace to be displayed in the browser when an exception is raised. Default to true in development, false in production.

  • :stacktrace-middleware - Override the default Ring stacktrace middleware with a custom middleware function.

  • :auto-reload? - True if you want your source files to be automatically reloaded when they are modified. Defaults to true in development, false in production.

  • :reload-paths - A seq of source paths to reload. Defaults to [\"src\"]. Only relevant if :auto-reload? is true.

  • :auto-refresh? - True if you want your browser to automatically refresh when source files are changed. Defaults to false.


Copyright © 2015 James Reeves

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.