Up to higher level directory | |||
Name | Date | Size | |
---|---|---|---|
DESIGN.md | 03-Dec-2014 | 10.3K | |
main.cpp | 03-Dec-2014 | 3.2K | |
poly/ | 03-Dec-2014 | ||
README.md | 03-Dec-2014 | 2.6K | |
res/ | 03-Dec-2014 | ||
result.cpp | 03-Dec-2014 | 464 | |
safec++ | 03-Dec-2014 | 108 | |
seccomp_bpf.h | 03-Dec-2014 | 1.7K | |
setup/ | 03-Dec-2014 | ||
sys/ | 03-Dec-2014 | ||
templates/ | 03-Dec-2014 | ||
TODO.md | 03-Dec-2014 | 654 | |
webtry.go | 03-Dec-2014 | 28.4K |
1 WebTry 2 ====== 3 4 Allows trying out Skia code in the browser. Run a local webserver 5 and from the pages it serves try out Skia code and see the results 6 immediately. To make sandboxing easier this must be built w/GPU off. 7 8 Running Locally 9 =============== 10 11 $ GYP_GENERATORS=ninja ./gyp_skia gyp/webtry.gyp gyp/most.gyp -Dskia_gpu=0 12 $ ninja -C out/Debug webtry 13 $ cd experimental/webtry 14 $ go build webtry.go 15 $ ./webtry 16 17 Then visit http://localhost:8000 in your browser. 18 19 Only tested under linux, doubtful it will work on other platforms. 20 21 Full Server Setup 22 ================= 23 24 Create a GCE instance: 25 26 gcutil --project=google.com:skia-buildbots addinstance skia-webtry-b \ 27 --zone=us-central2-b --external_ip_address=108.170.220.126 \ 28 --service_account=default \ 29 --service_account_scopes="https://www.googleapis.com/auth/devstorage.full_control" \ 30 --network=default --machine_type=n1-standard-1 --image=backports-debian-7-wheezy-v20140331 \ 31 --persistent_boot_disk 32 33 Make sure port 80 is accessible externally for the above instance. 34 35 SSH into the instance: 36 37 gcutil --project=google.com:skia-buildbots ssh --ssh_user=default skia-webtry-b 38 39 40 Do once 41 ------- 42 43 The following things only need to be done once 44 45 1. sudo apt-get install git schroot debootstrap 46 2. git clone https://skia.googlesource.com/skia 47 3. Add the following to /etc/fstab and reboot: 48 49 none /dev/shm tmpfs rw,nosuid,nodev,noexec 0 0 50 51 The above will allow ninja to run. See http://stackoverflow.com/questions/2009278/python-multiprocessing-permission-denied 52 53 4. Add the following to the /etc/schroot/minimal/fstab: 54 55 /home/webtry/inout /inout none rw,bind 0 0 56 57 5. Change /etc/monit/monitrc to: 58 59 set daemon 2 60 61 then run the following so it applies: 62 63 sudo /etc/init.d/monit restart 64 65 This means that monit will poll every two seconds that our application is up and running. 66 67 6. Set the TCP keepalive. For more info see: 68 https://developers.google.com/cloud-sql/docs/gce-access 69 70 sudo bash -c 'echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time' 71 72 Do the first time 73 ----------------- 74 75 Do the following the first time you setup a machine, and each time you want to update the code running on the server 76 77 cd ~/skia/experimental/webtry/setup 78 ./webtry_setup.sh 79 80 81 Once, after setup 82 ----------------- 83 84 Do this step only once, but only after running webtry_setup.sh the first time 85 86 sudo debootstrap --variant=minbase wheezy /srv/chroot/webtry 87 88 89 Third Party Code 90 ---------------- 91 92 * res/js/polyfill.js - Various JS polyfill libraries. To rebuild or update 93 see polyfill/README.md. 94 95