skia2/experimental/webtry
2014-04-10 14:13:23 +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 Cleaned up the start page, added wait cursor, disabled Run button while waiting for results. 2014-04-09 22:54:02 +00:00
DESIGN.md Rename README and DESIGN so their markdown gets picked up my GitHub. 2014-04-10 14:13:23 +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