Alexis Queen Show menu Show searchbar

It's come to my attention recently that the Homebrewery hasn't been updated in half a year, and somebody online was asking about the possibility of hosting it locally. So I've put together a quick guide, as I had to jump through a few hoops to get it to work.

Note: Saving brews doesn't currently work with this guide, as to do that you also need to setup their "NaturalCrit" website locally too. (Well, the save button works and gives you a link, but since it doesn't tie it to an account, you lose that link forever.) I haven't had time to do try setting up NaturalCrit as of writing this post, but the steps are likely similar. Until then, you can always just save your work in a text editor, then just copy and paste into the Homebrewery when you need to view it or create a PDF.

Update: I've also been informed that saving to GM Binder works well too. Alongside that, any other editor that takes Markdown will work (although the Homebrewery's use of horizontal rules is different, so results may vary).

Getting the Source

You can download the v2.7 source code from GitHub here.

Alternatively, if you're familiar with Git you can run the commands below.

git clone https://github.com/stolksdorf/homebrewery
cd homebrewery
git checkout origin/v2.7.x

Make sure it's the v2.7 source – this is what the actual website runs.

Installing dependencies

You will need to install Node.js and MongoDB locally first. Instructions for each platform (Win/Mac/Linux) are on their sites, it's not too tricky in theory.

NPM packages

I had to update the package.json file for it to work  – some of the dependencies have had breaking changes in the last few months (if you're only hosting locally this should be fine).

Replace the entirety of that file with the below.

{
  "name": "homebrewery",
  "description": "Create authentic looking D&D homebrews using only markdown",
  "version": "2.7.5",
  "scripts": {
    "dev": "node scripts/dev.js",
    "quick": "node scripts/quick.js",
    "build": "node scripts/build.js",
    "phb": "node scripts/phb.js",
    "prod": "set NODE_ENV=production&& npm run build",
    "start": "node server.js"
  },
  "author": "stolksdorf",
  "license": "MIT",
  "dependencies": {
    "babel-preset-env": "^1.1.8",
    "basic-auth": "^1.0.3",
    "body-parser": "^1.14.2",
    "classnames": "^2.2.0",
    "codemirror": "^5.22.0",
    "cookie-parser": "^1.4.3",
    "express": "^4.13.3",
    "jwt-simple": "^0.5.1",
    "lodash": "^4.11.2",
    "marked": "^0.3.5",
    "moment": "^2.11.0",
    "mongoose": "4.10.8",
    "nconf": "^0.8.4",
    "pico-flux": "^1.1.0",
    "pico-router": "^1.1.0",
    "react": "^15.0.2",
    "react-dom": "^15.0.2",
    "shortid": "^2.2.4",
    "striptags": "^2.1.1",
    "superagent": "^1.6.1",
    "vitreum": "4.3.0"
  }
}

Once you've added the above, run npm install to install the packages you need.

Building and Running

To build the files, you just need to run npm run build (and pray it works).

To run the server locally, start MongoDB first, then run npm run server. It should tell you what port it's running on (default 8000). From there, navigate to http://localhost:8000 in your browser, and you're good.

Note: If you already run a webserver & database locally, you will need to run this command with environment variables – on Mac/Linux this is just running env PORT="8181" MONGODB_URI="mongodb://localhost:27018/naturalcrit" npm run server – I can't comment for Windows. (Replace port numbers with what you set them up to be – if you're running servers already I'm sure you can figure this out on your own.)

In theory that should be it – if any errors come up you may want to check online for them. The Homebrewery itself has very little in documentation on setting it up (apart from a briefer version of the steps above), so I hope this helps someone.