blob: 3bbbcb990aaa71a6e7ebeb867330c3611437e2a8 [file] [log] [blame] [view]
# release.projects.playground/client
Source code for the Vanadium playground web client.
As of dec-2014, the playground doc is [here][playground-doc].
## Directory structure
* `browser` - JS modules to be compiled/bundle via `[browserify]`.
* `bundles` - Default playground examples. Each combination of directory and `.bundle` file forms a bundle.
* _Makefile_ - Targets for building the client (browserifying Javascript, compile CSS, etc.).
* `node_modules` - JS dependencies created by `npm install`.
* _package.json_ - Used by `npm install` to resolve and download dependencies.
* `public` - Static assets, including bundle targets for JS/CSS served by `make start`.
* `stylesheets` - CSS to be compiled to `public/bundle.css`.
* _test.sh_ - Script testing correctness of default playground examples.
Requires [npm] and [Node.js].
Build the playground web client:
make
The command above automatically fetches node dependencies, and builds necessary assets for the client bundles to the `public`
directory for serving.
## Local server
Start a server on http://127.0.0.1:8088
make start
This command will also install any dependencies and build the required
bundles.
To run the local dev server with a different configuration you can use
variables:
host=`hostname` port=4080 make start
The client running on localhost needs to have the backend address configured
via the `pgaddr=` query parameter.
## public/bundle.{js,css}
The default make task will build these for you. The `Makefile` already has
globbing targets for bundling JS and CSS in the `browser` and `stylesheets`
directories. See these directories for entry points (index files). Such files
are bundled into single `public/bundle.*` files.
The CSS/JS bundles do not rebuild automatically via the server. If you would
like the effect of automatic building and seeing your changes on browser
refresh you can use the `watch` utility.
watch make
# Deploy
If you do not have access to the vanadium-staging GCE account ping
jasoncampbell@. Once you have access you will need to login to the account via
the command line.
gcloud auth login
To deploy the playground client to https://staging.playground.v.io use the
make target `deploy-staging`.
make deploy-staging
This will sync the public directory to the private Google Storage bucket
`gs://staging.playground.v.io` which gets automatically updated to the nginx
front-end servers. Currently all static content is protected by OAuth. For
more details on the deployment infrastructure see [this doc][deploy] and the
[infrastructure] repository.
[Node.js]: http://nodejs.org/
[npm]: https://www.npmjs.com/
[playground-doc]: https://docs.google.com/document/d/1OYuE3XLc5CvDKoJSJ2mYjb9wm9IzTttZtP8coJ_t0Wg/edit#heading=h.i9kd9dq3kqco
[deploy]: http://goo.gl/QfD4gl
[infrastructure]: https://vanadium.googlesource.com/infrastructure/+/master/nginx/README.md
[browserify]: https://www.npmjs.com/package/browserify