The button only works with GitHub repos at this time, but if you can place the button on other sites by using the ?template= parameter to point back to the GitHub repo. If you would like to have an app.json in a non-GitHub repo (or any source in a tarball for that matter), you can use the app-setup API (https://devcenter.heroku.com/articles/platform-api-reference...) to do the deployment.
Right now buttons only work with source code hosted on GitHub (although the button can be added anywhere). We want to extend that to other source code hosting services, though.
The challenge is that we have to resolve the [app.json][1] file to generate the deploy UI.