This is the repo for Sean Grove's personal site, https://www.riseos.com/.
It also serves as a (currently very messy) example of a site built in OCaml, using the the Mirage libraries, and deployed as a unikernel.
Make sure you have opam installed, and that you're using at least OCaml 4.02.3
(simple as opam switch 4.02.3
).
To auto-rebuild the javascript on osx, install fswatch and run fswatch -o client.ml | xargs -n1 -I{} ./rebuild_js.sh
in a terminal. It works pretty well, though there can be random delays in the rebuild for some reason.
mirage configure --net=socket --http_port=3000 --https_port=3001 --unix --show_errors=true
make clean
make
./mir-riseos
docker run -it -v `pwd`:/src/riseos sgrove/riseos /bin/bash
yes | env FS=crunch mirage configure --xen --no-argv --dhcp=true --show_errors=false --report_errors=true --mailgun_api_key="<>" --error_report_emails=sean@bushi.do
make clean
make xen
make client
These mirage issues affect this repo, the sooner they're closed the better (keeping track for myself so I can unpin packages):
- Functoria: need a way to disable Bootvar
- Missing
strtod
- No way to specify package versions/pins in config.ml
- The liquid parser is a total hack right now, and needs 1.) to be improved to support the full liquid spec and 2.) Split off into its own library for others to use.
- The code needs to be extracted into a single, turn-key dev and deploy solution, with a
three steps to your first unikernel in production
guide:- git clone the repo
- Edit to add your credentials
- Run the (simple) deploy script
- Add instructions and examples section
- The code was originally a fork of, and is still hugely based off of, Drup's No. repo.
All images and blog materials are copyright Sean Grove 2016.