Setting up Yaydoc on Heroku
Yaydoc takes as its input the information about a user’s repository containing the documentation in Markup files and generates a static website from it. The website also includes search functionality within the documentation. It supports various built-in and custom Sphinx themes. Since the Web User Interface is now prepared with some solid features, it was time to deploy. We chose Heroku for this because of the ease with which we can build and scale the application at free of cost. Yaydoc consists of two components; A Web User Interface and the Generation and Deployment Scripts. The Web UI being developed with NodeJs and the scripts involving Python modules, require us to include the following buildpacks heroku/nodejs heroku/python https://github.com/imujjwal96/heroku-buildpack-pandoc.git We need to set certain Environment Variables in Heroku for proper functioning of the Yaydoc. These include CALLBACKURL - URL where Github must return to after successful authentication CLIENTID - Unique Client-Id generated by Github OAuth Application CLIENTSECRET - Unique Client-Secret generated by Github OAuth Application ENCRYPTION_KEY - Required to encrypt Personal Access Token of the user ON_HEROKU - True, since the application is deployed to Heroku PYPANDOC_PANDOC - Location of Pandoc binaries SECRET - A very secret token Steps for Manual Deployment Install Heroku on your local machine. If you have a linux based Operating Systems, type the following command in the terminal wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh Details for other Operating Systems can be found at https://devcenter.heroku.com/articles/heroku-cli Login to Heroku Server (Create an account if it doesn’t exist) Type in the following command in your server heroku login Enter your credentials and login. Deploy Yaydoc to Heroku Clone the original yaydoc repository or your own fork git clone https://github.com/<username>/yaydoc.git Move to the directory of the cloned repository cd yaydoc/ Create a Heroku application using the following command heroku create <your-app-name> Add buildpacks to the application using the following commands heroku buildpacks:set heroku/nodejs heroku buildpacks:add --index 2 heroku/python heroku buildpacks:add --index 3 https://github.com/imujjwal96/heroku-buildpack-pandoc.git Set Environment Variables using the following commands heroku config:set CALLBACKURL=https://<your-app-name>.herokuapp.com/callback heroku config:set CLIENTID=<github-generated> heroku config:set CLIENTSECRET=<github-generated> heroku config:set ENCRYPTION_KEY=AVERYSECRETTOKENOFSPECIFICLENGTH heroku config:set ON_HEROKU=true heroku config:set PYPANDOC_PANDOC=~/vendor/pandoc/bin/pandoc heroku config:set SECRET=averysecrettoken Now deploy your code git push heroku master Visit the app at the URL generated by its app name heroku open
