Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit



Failed to load latest commit information.
Latest commit message
Commit time

Netrunner in the browser

Hosted at Example of gameplay.


Card implementation status

Card rules implementation status



(There's a docker section down there!)

Install Leiningen, NodeJS and MongoDB.

This project runs on Java 8. If you're on OSX or Linux, we recommend using jenv to manage your java environment.

You can check your setup by running:

$ lein version
Leiningen 2.9.6 on Java 16.0.1 OpenJDK 64-Bit Server VM

Your exact version numbers below may vary, but we require Java 1.8+.

Populate the database and create indexes using:

$ lein fetch [--no-card-images]
1648 cards imported

$ lein create-indexes
Indexes successfully created.

You can optionally pass --no-card-images if you don't want to download images from NetrunnerDB, as this takes a while. See lein fetch help for further options.

To install frontend dependencies, run:

$ npm ci
added 124 packages, and audited 125 packages in 2s

To compile CSS:

$ npm run css:build
compiled resources/public/css/netrunner.css

Optionally you can say npm run watch:css to watch for changes and automatically recompile.

Compile ClojureScript frontend:

$ npm run cljs:build
[:app] Compiling ...
[:app] Build completed. (238 files, 0 compiled, 0 warnings, 22.18s)

Finally, launch the webserver and the Clojure REPL:

$ lein repl

and open http://localhost:1042/.

Using Docker

You'll need to install Docker and Docker-Compose. After that, just run $ docker-compose up --build in the project directory (or do the GUI-equivalent of this). If this fails because it "couldn't fetch dependencies", try again, it was just a networking error.

It can take a while. You'll see lots of messages, so just wait until you see something like netrunner-server-1 | nREPL server started on port 44867. After that, you can visit http://localhost:1042/ and the server should be running.

While coding clojure it's important to have a REPL connection going. The server's REPL is configured to always run on port 44867, so you can connect using $ lein repl :connect nrepl://localhost:44867 (or the program of your preference, like your code editor).

Now, let's populate the database and create indexes. First, let's open a terminal inside the server container: $ docker exec -it netrunner-server-1 /bin/bash. Now, inside this new therminal, we'll run these two commands: The --no-card-images is optional, and removing it causes the card images to be downloaded, which can be slower.

 $ lein fetch --no-card-images
    1648 cards imported

 $ lein create-indexes
    Indexes successfully created.

After this, just restart the server by running (restart) in the REPL.

To do testing, you run them inside the container: $ docker exec -it netrunner-server-1 /bin/bash and then $ lein kaocha.


To run all tests:

$ lein kaocha
Ran 2640 tests containing 44704 assertions.
0 failures, 0 errors.

To run a single test file:

$ lein kaocha --focus
Ran 216 tests containing 3536 assertions.
0 failures, 0 errors.

Or a single test:

$ lein kaocha --focus
Ran 1 tests containing 29 assertions.
0 failures, 0 errors.

For more information refer to the development guide.

Further reading

License is released under the MIT License.