node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



Hapi plugin for Hoodie’s server core module

Build Status Coverage Status Dependency Status devDependency Status

@hoodie/server integrates Hoodie’s server core modules:


var Hapi = require('hapi')
var hoodie = require('@hoodie/server').register
var PouchDB = require('pouchdb-core').plugin(require('pouchdb-mapreduce')).plugin(require('pouchdb-adapter-memory'))
var server = new Hapi.Server()
  host: 'localhost',
  port: 8000
  register: hoodie,
  options: { // pass options here 
    PouchDB: PouchDB,
    paths: {
      public: 'dist'
}, function (error) {
  if (error) {
    throw error
  server.start(function (error) {
    if (error) {
      throw error
    console.log(('Server running at:',


option default description
adminPassword - Password to login with admin account '.hoodie' Data path
paths.public 'public' Public path
PouchDB PouchDB constructor. See also custom PouchDB builds.
account {} Hoodie Account Server options. account.admins are generated based on adminPassword option above. account.usersDb is hardcoded to _users at this point. account.secret is stored in hoodie-store/hoodie and will be generated if it does not yet exist.
store {} Hoodie Store Server options. store.couchdb, store.PouchDB are set based on the PouchDB option above. store.hooks.onPreAuth is set to bind user authentication for Hoodie Account to Hoodie Store.


Local setup

git clone
cd hoodie-server
npm install

Run all tests

npm test


Have a look at the Hoodie project's contribution guidelines. If you want to hang out you can join our Hoodie Community Chat.


Apache 2.0