{"action":"created","comment":{"url":"https://api.github.com/repos/jsha/blocktogether/pulls/comments/23136277","id":23136277,"diff_hunk":"@@ -6,44 +6,50 @@ See more details at https://blocktogether.org.\n \n # Developer Setup Instructions\n \n-First make a config directory and copy the config files into it:\n-\n-    sudo mkdir /etc/blocktogether\n-    sudo chown YOUR_USERNAME /etc/blocktogether\n-    cp -r config/* /etc/blocktogether/\n-    mv /etc/blocktogether/development.json /etc/blocktogether/config.json\n-\n-You will need Node and MySQL. If you are on Ubuntu or Debian, the\n-easiest way to get these is to run `bash setup.sh`, which will run an apt-get\n-install for the packages you need (plus a few extras mainly used by the prod\n-instance, like gnupg). Setup.sh will also set a MySQL root password if it's your\n-first time installing MySQL - write it down or store it in your password\n-manager. If you already have a MySQL root password set, run\n-`DB_ROOT_PASS=YOUR_PASSWORD bash setup.sh`\n-\n-Next, run `npm install` to get the necessary NPM packages, and create the\n-necessary database tables with:\n-\n-    ./node_modules/sequelize/bin/sequelize --config /etc/blocktogether/sequelize.json -m\n-\n-Now, create an API app at https://apps.twitter.com/app/new. The description and\n-website don't matter; You'll only be using this for testing. However, it is\n-important that you don't leave the 'Callback URL' blank or you won't be able to\n-log in. Fill in any arbitrary URL here - the app will override it at login time.\n-After you've created the app, make sure it is set to have read/write permission.\n-The write permission is necessary to apply blocks, unblocks, and mutes. You may\n-need to add a phone number to your account in order to get read/write\n-permission. After you've set read-write permission, the consumerKey and\n-consumerSecret listed on apps.twitter.com will be different. Copy the new\n-consumerKey and consumerSecret into /etc/blocktogether/config.json in the\n-appropriate fields.\n-\n-You're now ready to start the web frontend:\n-\n-    bash ./run.sh\n-    firefox http://localhost:3000/\n-\n-Log in for the first time using the 'Log in' button, not the 'Sign up' button.\n+First, make sure that you have [Vagrant](https://www.vagrantup.com/) installed.\n+Then, from the blocktogether directory, run:\n+\n+    vagrant up\n+\n+Second, create an app on Twitter for your local version of blocktogether:\n+\n+  1. Head to https://apps.twitter.com/ and click \"Create New App\"\n+  2. Fill out form & click \"Create your Twitter application\". (The description and\n+     website don't matter; You'll only be using this for testing. However, it is\n+     important that you don't leave the 'Callback URL' blank or you won't be able to\n+     log in. Fill in any arbitrary URL here - the app will override it at login time.\n+\n+  3. Under \"Application Settings\" > \"Access level\", click \"modify app permissions\"\n+     and select \"Read and Write\" access. The write permission is necessary to apply\n+     blocks, unblocks, and mutes. (You may need to add a phone number to your\n+     account in order to get read/write permission.)\n+\n+  4. After you've set the read-write permissions, click the \"Keys and Access Tokens\"\n+     tab. (Note that changing your app's permissions will regenerate these keys.)\n+\n+\n+Now, we'll want to save our Twitter credentials to the configfile so BlockTogether\n+can access Twitter's API:\n+\n+  1. From the `blocktogether` directory, run `vagrant ssh`\n+  2. Open the config file for editing: `sudo vim /etc/blocktogether/config.json`\n+     or with your editor of choice (though you might have to apt-get it)\n+  3. Replace the placeholder `consumerKey` and `consumerSecret` fields with your\n+     your new credentials (found under your dev app on https://apps.twitter.com)\n+\n+You're now ready to run BlockTogether locally. :D Start the by first SSH'ing\n+into the Vagrant box. From the root `blocktogether` directory:\n+\n+    vagrant ssh\n+\n+And then from the Vagrant box:\n+\n+    cd /vagrant && ./run.sh\n+\n+You should now be able to access your local version of blocktogether in a browser\n+at http://localhost:3000.\n+\n+Log in for the first time using the 'Log in' button (nope, not the 'Sign up' button).","path":"README.md","position":85,"original_position":85,"commit_id":"49f4d1bbee05910eab5bc878f83b2ef35bc3348d","original_commit_id":"49f4d1bbee05910eab5bc878f83b2ef35bc3348d","user":{"login":"doeg","id":855595,"avatar_url":"https://avatars.githubusercontent.com/u/855595?v=3","gravatar_id":"","url":"https://api.github.com/users/doeg","html_url":"https://github.com/doeg","followers_url":"https://api.github.com/users/doeg/followers","following_url":"https://api.github.com/users/doeg/following{/other_user}","gists_url":"https://api.github.com/users/doeg/gists{/gist_id}","starred_url":"https://api.github.com/users/doeg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doeg/subscriptions","organizations_url":"https://api.github.com/users/doeg/orgs","repos_url":"https://api.github.com/users/doeg/repos","events_url":"https://api.github.com/users/doeg/events{/privacy}","received_events_url":"https://api.github.com/users/doeg/received_events","type":"User","site_admin":false},"body":"@jsha Nothing. :) But both @binaryparadox and I had a moment of momentary confusion when setting it up for the first time (\"Wait shouldn't it be the sign up button\") so I figured some clarification couldn't hurt. ","created_at":"2015-01-18T19:50:43Z","updated_at":"2015-01-18T19:50:43Z","html_url":"https://github.com/jsha/blocktogether/pull/158#discussion_r23136277","pull_request_url":"https://api.github.com/repos/jsha/blocktogether/pulls/158","_links":{"self":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/comments/23136277"},"html":{"href":"https://github.com/jsha/blocktogether/pull/158#discussion_r23136277"},"pull_request":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/158"}}},"pull_request":{"url":"https://api.github.com/repos/jsha/blocktogether/pulls/158","id":27574604,"html_url":"https://github.com/jsha/blocktogether/pull/158","diff_url":"https://github.com/jsha/blocktogether/pull/158.diff","patch_url":"https://github.com/jsha/blocktogether/pull/158.patch","issue_url":"https://api.github.com/repos/jsha/blocktogether/issues/158","number":158,"state":"open","locked":false,"title":"[#143] Set up Vagrantfile","user":{"login":"doeg","id":855595,"avatar_url":"https://avatars.githubusercontent.com/u/855595?v=3","gravatar_id":"","url":"https://api.github.com/users/doeg","html_url":"https://github.com/doeg","followers_url":"https://api.github.com/users/doeg/followers","following_url":"https://api.github.com/users/doeg/following{/other_user}","gists_url":"https://api.github.com/users/doeg/gists{/gist_id}","starred_url":"https://api.github.com/users/doeg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doeg/subscriptions","organizations_url":"https://api.github.com/users/doeg/orgs","repos_url":"https://api.github.com/users/doeg/repos","events_url":"https://api.github.com/users/doeg/events{/privacy}","received_events_url":"https://api.github.com/users/doeg/received_events","type":"User","site_admin":false},"body":"### Changes\r\n- Set up Vagrantfile\r\n- Move setup.sh into bootstrap.sh\r\n- Use nvm to download node and nvm\r\n- .gitignore node_modules for real (hence the huge diff)\r\n-  Update README\r\n\r\n### Notes \r\nThis should hopefully streamline the bootsrapping process a little bit (and hopefully serve as a good starting point for any bash wizards that may come along). It will also make #149 a whole lot easier to work on (since all the vagrant ssh'ing unfortunately makes editing the config files pretty tedious). \r\n\r\nThe Vagrant stuff has been tested on Mac OSX (10.9.4) and Arch. \r\n\r\nI'm happy to fix any bugs or other weirdness that may be present in this pull request so just lemme know! (This stuff definitely ain't my forte.)\r\n","created_at":"2015-01-18T18:14:12Z","updated_at":"2015-01-18T19:50:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jsha/blocktogether/pulls/158/commits","review_comments_url":"https://api.github.com/repos/jsha/blocktogether/pulls/158/comments","review_comment_url":"https://api.github.com/repos/jsha/blocktogether/pulls/comments/{number}","comments_url":"https://api.github.com/repos/jsha/blocktogether/issues/158/comments","statuses_url":"https://api.github.com/repos/jsha/blocktogether/statuses/49f4d1bbee05910eab5bc878f83b2ef35bc3348d","head":{"label":"jsha:doeg-143-vagrantfile","ref":"doeg-143-vagrantfile","sha":"49f4d1bbee05910eab5bc878f83b2ef35bc3348d","user":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"repo":{"id":21215032,"name":"blocktogether","full_name":"jsha/blocktogether","owner":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jsha/blocktogether","description":"Share your blocks and subscribe to others'","fork":false,"url":"https://api.github.com/repos/jsha/blocktogether","forks_url":"https://api.github.com/repos/jsha/blocktogether/forks","keys_url":"https://api.github.com/repos/jsha/blocktogether/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsha/blocktogether/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsha/blocktogether/teams","hooks_url":"https://api.github.com/repos/jsha/blocktogether/hooks","issue_events_url":"https://api.github.com/repos/jsha/blocktogether/issues/events{/number}","events_url":"https://api.github.com/repos/jsha/blocktogether/events","assignees_url":"https://api.github.com/repos/jsha/blocktogether/assignees{/user}","branches_url":"https://api.github.com/repos/jsha/blocktogether/branches{/branch}","tags_url":"https://api.github.com/repos/jsha/blocktogether/tags","blobs_url":"https://api.github.com/repos/jsha/blocktogether/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsha/blocktogether/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsha/blocktogether/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsha/blocktogether/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsha/blocktogether/statuses/{sha}","languages_url":"https://api.github.com/repos/jsha/blocktogether/languages","stargazers_url":"https://api.github.com/repos/jsha/blocktogether/stargazers","contributors_url":"https://api.github.com/repos/jsha/blocktogether/contributors","subscribers_url":"https://api.github.com/repos/jsha/blocktogether/subscribers","subscription_url":"https://api.github.com/repos/jsha/blocktogether/subscription","commits_url":"https://api.github.com/repos/jsha/blocktogether/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsha/blocktogether/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsha/blocktogether/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsha/blocktogether/issues/comments/{number}","contents_url":"https://api.github.com/repos/jsha/blocktogether/contents/{+path}","compare_url":"https://api.github.com/repos/jsha/blocktogether/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsha/blocktogether/merges","archive_url":"https://api.github.com/repos/jsha/blocktogether/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsha/blocktogether/downloads","issues_url":"https://api.github.com/repos/jsha/blocktogether/issues{/number}","pulls_url":"https://api.github.com/repos/jsha/blocktogether/pulls{/number}","milestones_url":"https://api.github.com/repos/jsha/blocktogether/milestones{/number}","notifications_url":"https://api.github.com/repos/jsha/blocktogether/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsha/blocktogether/labels{/name}","releases_url":"https://api.github.com/repos/jsha/blocktogether/releases{/id}","created_at":"2014-06-25T19:09:40Z","updated_at":"2015-01-18T04:02:03Z","pushed_at":"2015-01-18T18:12:38Z","git_url":"git://github.com/jsha/blocktogether.git","ssh_url":"git@github.com:jsha/blocktogether.git","clone_url":"https://github.com/jsha/blocktogether.git","svn_url":"https://github.com/jsha/blocktogether","homepage":null,"size":3298,"stargazers_count":101,"watchers_count":101,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":48,"forks":18,"open_issues":48,"watchers":101,"default_branch":"master"}},"base":{"label":"jsha:master","ref":"master","sha":"8a8e60bcaaac57bcc6076d461c4e3625adbd626e","user":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"repo":{"id":21215032,"name":"blocktogether","full_name":"jsha/blocktogether","owner":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jsha/blocktogether","description":"Share your blocks and subscribe to others'","fork":false,"url":"https://api.github.com/repos/jsha/blocktogether","forks_url":"https://api.github.com/repos/jsha/blocktogether/forks","keys_url":"https://api.github.com/repos/jsha/blocktogether/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsha/blocktogether/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsha/blocktogether/teams","hooks_url":"https://api.github.com/repos/jsha/blocktogether/hooks","issue_events_url":"https://api.github.com/repos/jsha/blocktogether/issues/events{/number}","events_url":"https://api.github.com/repos/jsha/blocktogether/events","assignees_url":"https://api.github.com/repos/jsha/blocktogether/assignees{/user}","branches_url":"https://api.github.com/repos/jsha/blocktogether/branches{/branch}","tags_url":"https://api.github.com/repos/jsha/blocktogether/tags","blobs_url":"https://api.github.com/repos/jsha/blocktogether/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsha/blocktogether/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsha/blocktogether/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsha/blocktogether/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsha/blocktogether/statuses/{sha}","languages_url":"https://api.github.com/repos/jsha/blocktogether/languages","stargazers_url":"https://api.github.com/repos/jsha/blocktogether/stargazers","contributors_url":"https://api.github.com/repos/jsha/blocktogether/contributors","subscribers_url":"https://api.github.com/repos/jsha/blocktogether/subscribers","subscription_url":"https://api.github.com/repos/jsha/blocktogether/subscription","commits_url":"https://api.github.com/repos/jsha/blocktogether/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsha/blocktogether/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsha/blocktogether/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsha/blocktogether/issues/comments/{number}","contents_url":"https://api.github.com/repos/jsha/blocktogether/contents/{+path}","compare_url":"https://api.github.com/repos/jsha/blocktogether/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsha/blocktogether/merges","archive_url":"https://api.github.com/repos/jsha/blocktogether/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsha/blocktogether/downloads","issues_url":"https://api.github.com/repos/jsha/blocktogether/issues{/number}","pulls_url":"https://api.github.com/repos/jsha/blocktogether/pulls{/number}","milestones_url":"https://api.github.com/repos/jsha/blocktogether/milestones{/number}","notifications_url":"https://api.github.com/repos/jsha/blocktogether/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsha/blocktogether/labels{/name}","releases_url":"https://api.github.com/repos/jsha/blocktogether/releases{/id}","created_at":"2014-06-25T19:09:40Z","updated_at":"2015-01-18T04:02:03Z","pushed_at":"2015-01-18T18:12:38Z","git_url":"git://github.com/jsha/blocktogether.git","ssh_url":"git@github.com:jsha/blocktogether.git","clone_url":"https://github.com/jsha/blocktogether.git","svn_url":"https://github.com/jsha/blocktogether","homepage":null,"size":3298,"stargazers_count":101,"watchers_count":101,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":48,"forks":18,"open_issues":48,"watchers":101,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/158"},"html":{"href":"https://github.com/jsha/blocktogether/pull/158"},"issue":{"href":"https://api.github.com/repos/jsha/blocktogether/issues/158"},"comments":{"href":"https://api.github.com/repos/jsha/blocktogether/issues/158/comments"},"review_comments":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/158/comments"},"review_comment":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/jsha/blocktogether/pulls/158/commits"},"statuses":{"href":"https://api.github.com/repos/jsha/blocktogether/statuses/49f4d1bbee05910eab5bc878f83b2ef35bc3348d"}}}}