b77955e1b1
BUG=skia: Review URL: https://codereview.chromium.org/619943002 |
||
---|---|---|
.. | ||
poly | ||
res | ||
scripts | ||
setup | ||
sys | ||
templates | ||
build | ||
DESIGN.md | ||
gyp_for_webtry | ||
main.cpp | ||
README.md | ||
result.cpp | ||
safec | ||
safec++ | ||
seccomp_bpf.h | ||
TODO.md | ||
webtry.go |
WebTry Server
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 get -d
$ go build webtry.go
$ ./webtry
Then visit http://localhost:8000 in your browser.
Only tested under linux, doubtful it will work on other platforms.
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
Make sure port 80 is accessible externally for the above instance.
SSH into the instance:
gcutil --project=google.com:skia-buildbots ssh --ssh_user=default skia-webtry-b
Do the first time
The following things only need to be done once.
-
SSH into the server as default.
-
sudo apt-get install git schroot debootstrap
-
git clone https://skia.googlesource.com/skia
-
cd ~/skia/experimental/webtry/setup
-
./webtry_setup.sh
-
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
-
Add the following to the /etc/schroot/minimal/fstab:
/home/webtry/inout /inout none rw,bind 0 0
-
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.
-
Set the TCP keepalive. For more info see: https://developers.google.com/cloud-sql/docs/gce-access
sudo bash -c 'echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time'
Once, after setup
Do this step only once, but only after running webtry_setup.sh the first time.
sudo debootstrap --variant=minbase wheezy /srv/chroot/webtry
To update the code
- SSH into the server as default.
- cd ~/skia/experimental/webtry/setup
- git pull
- ./webtry_setup.sh
Third Party Code
- res/js/polyfill.js - Various JS polyfill libraries. To rebuild or update see poly/README.md.