skia2/experimental/webtry
commit-bot@chromium.org 4f3452d62e Flesh out the list of includes, also fix up README markdown
Currently only pulls in 'core' and 'effects'. Will add in gpu once we add an option to render via Mesa.

BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/232883004

git-svn-id: http://skia.googlecode.com/svn/trunk@14137 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 20:24:14 +00:00
..
setup Initial code for webtry, a web application for allowing users to try out Skia. 2014-04-09 18:59:44 +00:00
sys Initial code for webtry, a web application for allowing users to try out Skia. 2014-04-09 18:59:44 +00:00
templates Flesh out the list of includes, also fix up README markdown 2014-04-10 20:24:14 +00:00
DESIGN.md Flesh out the list of includes, also fix up README markdown 2014-04-10 20:24:14 +00:00
main.cpp Initial code for webtry, a web application for allowing users to try out Skia. 2014-04-09 18:59:44 +00:00
README.md Rename README and DESIGN so their markdown gets picked up my GitHub. 2014-04-10 14:13:23 +00:00
result.cpp Initial code for webtry, a web application for allowing users to try out Skia. 2014-04-09 18:59:44 +00:00
seccomp_bpf.h Sanitizing source files in Housekeeper-Nightly 2014-04-10 03:05:44 +00:00
TODO Initial code for webtry, a web application for allowing users to try out Skia. 2014-04-09 18:59:44 +00:00
webtry.go I got too aggressive on the seccomp cleanup, turns out backports-debian doesn't have the linux/seccomp.h header. 2014-04-09 21:35:18 +00:00

WebTry

Allows trying out Skia code in the browser. Run a local webserver and from the pages it serves try out Skia code and see the results immediately. To make sandboxing easier this must be built w/GPU off.

Running Locally

$ GYP_GENERATORS=ninja ./gyp_skia gyp/webtry.gyp gyp/most.gyp -Dskia_gpu=0 $ ninja -C out/Debug webtry $ cd experimental/webtry $ go build webtry.go $ ./webtry

Then visit http://localhost:8000 in your browser.

Only tested under linux, doubtful it will work on other platforms.

Full Server Setup

Create a GCE instance:

gcutil --project=google.com:skia-buildbots addinstance skia-webtry-b
--zone=us-central2-b --external_ip_address=108.170.220.126
--service_account=default
--service_account_scopes="https://www.googleapis.com/auth/devstorage.full_control"
--network=default --machine_type=n1-standard-1 --image=backports-debian-7-wheezy-v20140331
--persistent_boot_disk

SSH into the instance:

gcutil --project=google.com:skia-buildbots ssh --ssh_user=default skia-webtry-b

The following things only need to be done once

  1. sudo apt-get install git schroot debootstrap
  2. git clone https://skia.googlesource.com/skia
  3. Add the following to /etc/fstab and reboot:

none /dev/shm tmpfs rw,nosuid,nodev,noexec 0 0

The above will allow ninja to run. See http://stackoverflow.com/questions/2009278/python-multiprocessing-permission-denied

  1. Add the following to the /etc/schroot/minimal/fstab:

/home/webtry/inout /inout none rw,bind 0 0

  1. Change /etc/monit/monitrc to:

set daemon 2

then run the following so it applies:

sudo /etc/init.d/monit restart

This means that monit will poll every two seconds that our application is up and running.

Do the following the first time you setup a machine, and each time you want to update the code running on the server

cd ~/skia/experimental/webtry/setup ./webtry_setup.sh

Do these steps only once, but only after running webtry_setup.sh the first time

  1. sudo debootstrap --variant=minbase wheezy /srv/chroot/webtry