focus is an experimental collaboration platform.
Its first major component, vaporpad
(design doc), is a
low-latency collaborative editor inspired by and derived from
etherpad-lite, sharejs, and
ot.v.
Warning: focus is not yet feature-complete and has known issues that make it pre-alpha quality.
focus depends on nix and nixpkgs for fine-grain dependency management.
After installing nix, focus can be checked out by running:
export GOPATH=$(pwd)/go
PKG=github.com/mstone/focus
mkdir -p $GOPATH/src/$(dirname $PKG)
(cd $GOPATH/src/$(dirname $PKG); git clone --recursive https://$PKG)
cd $GOPATH/src/$PKG
to create a fresh GOPATH workspace containing a suitable source checkout.
To build focus from a clean checkout, run:
make
To enter a focus dev-shell configured for interactive development, run:
make dev
Then edit and run commands like:
go generate
go build -i
go build
goconvey
to build from your (potentially dirty) working tree.
Want to deploy via docker? No problem, just run:
make docker
docker load < result
docker run -v $(pwd)/data:/data -p 127.0.0.1:3000:3000 focus /bin/focus -api=ws://localhost:3000/ws -bind=0.0.0.0:3000 -log=/data/focus.log -dsn=/data/focus.db
and customize as needed with your particular deployment settings!