Hapi plugin for Hoodie’s server core module
@hoodie/server
integrates Hoodie’s server core modules:
var Hapi = require('hapi')
var hoodie = require('@hoodie/server')
var PouchDB = require('pouchdb-core').plugin(require('pouchdb-mapreduce')).plugin(require('pouchdb-adapter-memory'))
var server = new Hapi.Server()
server.connection({
host: 'localhost',
port: 8000
})
server.register({
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:', server.info.uri))
})
})
option | default | description |
---|---|---|
adminPassword | - | Password to login with admin account |
paths.data | '.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 https://github.com/hoodiehq/hoodie-server.git
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.