Can I store all the cookbooks, roles, environments on a different machine or may be GITHUB account and use chef solo to pull them and run them on the host machine.
As long as your solo.rb points to the directory where the files are ultimately located (i.e. "cookbook_paths" : "/path/to/cookbooks"), it does not matter how you get them there.
For instance, I recently had a scenario where I needed to download a .zip of my cookbooks directory from Bitbucket (a service similar to Github) to the node before running chef-solo.