Hivemind is an experimental knowledge-management system built to help Khan Academy's Long-term Research group share intellectual context.
In the course of our research, we review lots of papers, books, games, toys, etc. We’re mining for quotes, great ideas, other promising resources, inspiration. When we find something great, that becomes part of our research team’s shared intellectual context—one of the most valuable things we build!
Disclaimers: The project is still very young, and it's probably not useful outside of Khan Academy. It's still in a rough prototype stage, intentionally not yet robustly architected.
First, install Meteor: curl https://install.meteor.com/ | sh
This app requires valid credentials for Amazon S3, Google OAuth, and SMTP.
If you're at Khan Academy, copy the secrets from Phabricator into settings.json
in the root of the project directory. If you're not, modify settings.template.json
to use your secrets.
Install local dependencies with npm install
Run a local server with meteor --settings settings.json
.
Aside from a heroku account, you need mongodb and a heroku buildpack to get hivemind working for yourself. Create a new app on heroku, let's pretend you called it hivehive. This section assumes no knowledge of heroku. You will need to install the heroku toolbelt to run command line heroku commands instead of using their web interface to init
.
-
For the buildpack, you will want the one with the horse. You can set it up by typing the following in the project dir:
heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git
optionally, you can set that url in the
settings
tab of your app via the heroku dashboard -
For mongo, you can use the mLab Mongo add-on at the sandbox tier (up to 500MB) for free (but you may need to verify your heroku acct using a credit card). You'll get a url for connecting to mongo. mLab will add a mongo url to your heroku project's environmental variables. The horse buildpack prefers the
MONGO_URL
environmental variable but you can useMONGODB_URI
. -
The
ROOT_URL
environmental variable will behttps://hivehive.herokuapp.com/
yes, the protocol is https. -
To deploy via git, you can add heroku as a remote like so
heroku git:remote -a hivehive # or via git proper git add remote heroku https://git.heroku.com/hivehive.git
-
Copy your
settings.json
file into theMETEOR_SETTINGS
environmental variable in the heroku dashboard. -
To actually deploy, you "simply" push to the heroku master branch, like so:
git push heroku master
This process easily takes a few minutes at best. Have a lemonade.
The site will now work, but you will need to make sure that your s3 bucket is world-readable. If not, hivemind will successfully upload media to your bucket (assuming your iam access/secrets are good and the policy you assigned to your user is valid), but your meteor server will be full of apparently broken links.
If you are looking for a free smtp service, mailgun has a very generous free tier.
(Intentionally not yet linking to the instance publicly—still evolving…)
The Long-term Research Hivemind currently runs on Heroku. Ask Andy for push access, then:
- Install the Heroku toolbelt.
- Add Heroku's remote in your git checkout:
heroku git:remote -a ka-hivemind
- Push your branch to Heroku:
git push origin heroku