developmentseed / jekyll-hook

No Longer Maintained | A server that listens for GitHub webhook posts and renders a Jekyll site
BSD 3-Clause "New" or "Revised" License
508 stars 83 forks source link

heroku #18

Open levelos opened 10 years ago

levelos commented 10 years ago

Any thoughts on deploying and running on Heroku? I don't have a ton of experience, but I'm running into challenges on combining the Node and Ruby (Jekyll) dependencies. It builds alright, but then keeps dying and I can't pinpoint the reason why other than the mixed dependencies.

scisco commented 10 years ago

@levelos Are you interested in deploying jekyll-hook on Heroku or deploying a jekyll-powered website? If it's the latter, this guide should be helpful: http://blog.crowdint.com/2010/08/02/instant-blog-using-jekyll-and-heroku.html

Heroku does not allow write access on its storage. Thus it'd be impossible to directly build a Jekyll site on Heroku. However, you can always build your site somewhere else and then upload it to Heroku.

I think it would also be a great feature if jekyll-hook can automatically push a built site to Heroku. If I get a chance I will try to add this feature.

levelos commented 10 years ago

Thanks for the response @scisco. I actually meant the former, deploying jekyll-hook on Heroku. So are you saying that even ephemeral writes, e.g. to a temp directory, are not allowed on Heroku?

I did get the jekyll-hook deployed and running, but still need to test the build process. I needed to deploy a multi-buildpack so the Heroku environment supported both Ruby and Node.

scisco commented 10 years ago

@levelos You are right. It does allow ephemeral writes. I will run some tests later today when I get a chance and will let you know if I find a way.

levelos commented 10 years ago

That'd be great. I have a divergent fork going, but maybe we can do something more collaborative.

An unrelated challenge I'm working through on Heroku is configuring deployment keys for accessing private repos. It seems you need to write the pub and private keys every time you rebuild the environment. Scriptable, but I haven't thought through a good approach yet in case you have any thoughts.