This README outlines the details of collaborating on this Ember application.
You will need the following things properly installed on your computer.
To get up and running with this project:
- git clonethis repository and cd into it- cd ember-cli-blog
- npm installto install npm dependencies
- ember sto start the server!
Data will be stored in an in memory database and if configured, also replicated to a CouchDB instance.
To setup CouchDB data replication, configure ENV.remote_couch inside ./config/environment.js to point to your CouchDB location.
To setup a CouchDB instance on your own machine:
- install couchDB from http://couchdb.apache.org/
- npm install -g add-cors-to-couchdb
- add-cors-to-couchdb
- update config/environment.jslocal_couchandremote_couchto your CouchDB instance name.
- update config/environment.jsENV.rootURLin the production environment
- To use deploy create a file .env.deploy.productionin the root of this project containing something likedb=https://username:[email protected]/bloggr
- ember s
- Visit your app at http://localhost:4200.
- ember test
- ember test --server
- ember build(development)
- ember build --environment production(production)
To deploy to your CouchDB cluster
- ember deploy production(Set your credentials in the- .env.deploy.productionfile)
ember-simple-auth-pouch authenticator with custom data adapter to setup push replication after login. See /src/simple-auth/authenticators/pouch.js and /src/data/models/application/adapter.js for further details.
Registration required example for write permission: Add users in the normal CouchDB way.
For example by adding the following document to the _users database:
{
  "_id": "org.couchdb.user:test",
  "name": "test",
  "password": "test",
  "roles": [
    "user"
  ],
  "type": "user"
}
After that you can protect your bloggr database from unauthorized writes by adding the following design document to the bloggr database.
{
  "_id": "_design/only_users_write",
  "validate_doc_update": "function (newDoc, oldDoc, userCtx) {\n\tif (userCtx.roles.indexOf(\"user\") == -1 && userCtx.roles.indexOf(\"_admin\") == -1) {\n\t\tthrow({unauthorized: \"Only registered users can save data!\"});\n\t}\n}"
}
For the free CloudStation you have to create an User and a Database and insert the userdocument from above. Make sure to update your config/environment.js remote_couch and rootURL to match your production settings. Typical rootURL values are / and /yourdb/_design/myapp/_rewrite/ If you run your own CouchDB you can use the Hoodie CouchDB User Management App to create users.
There is one secret route setup to demonstrate how to use ember-simple-auth to protect routes. More instructions can be read there.
- ember.js
- ember-cli
- ember-cli-deploy-couchdb
- ember-simple-auth
- ember-simple-auth-pouch
- Development Browser Extensions