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 clone
this repository and cd into itcd ember-cli-blog
npm install
to install npm dependenciesember s
to 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.js
local_couch
andremote_couch
to your CouchDB instance name. - update
config/environment.js
ENV.rootURL
in the production environment - To use deploy create a file
.env.deploy.production
in the root of this project containing something likedb=https://username:password@my.couchcluster.com/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.production
file)
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