

using GAE and DryDrop to host static sites for free - harper
http://www.nata2.org/2011/01/26/how-to-use-app-engine-to-host-static-sites-for-free/

======
StavrosK
I posted the same thing yesterday, but it went nowhere. I guess I should have
included the word "FREE!" in the title.

Anyway, here it is. As the blog post explains [1], I created a small Flask app
that will let you host multiple static sites/domains _on one GAE instance_
without having to learn Git or push to Github or anything. Just download the
app [2], put the static files and media in the appropriate directories,
configure the URLs and deploy.

[1] [http://blog.stochastictechnologies.com/easily-host-
multiple-...](http://blog.stochastictechnologies.com/easily-host-multiple-
static-sites-on-one-app)

[2] [https://github.com/stochastic-technologies/static-
appengine-...](https://github.com/stochastic-technologies/static-appengine-
hoster)

~~~
ovi256
Don't think that your post was wasted. Maybe this guy saw it and decided to
submit this one, or maybe the author saw it and decided to write his version.

Also, I like your version of the static hoster way more. Really simple, no
git/github. I think friends that use Dreamweaver could use this.

~~~
StavrosK
Thanks, that's the exact expected use case. You don't need to host your static
sites on servers that you might want to move/decommission in the future, you
can just host them all on one GAE instance for free.

------
pamelafox
I use GAE + Github for several of my tiny websites. I don't use DryDrop as I
hadn't heard of it, and I like being able to control the app.yaml myself
(particularly useful for when I have a sudden urge to port static sites over
to Django, which happens surprisingly often). Also, it looks like DryDrop may
actually use script handlers instead of static file handlers, which wouldn't
be as performant for my simple stuff.

The trickiest part of using GAE for static files is setting up the app.yaml,
since it's different from just FTPing files and having them show up on your
server. Here's an example app.yaml for a completely static site, where the
root redirects to index.html, and the rest is mapped to a static directory
(with nested directories in it): <https://gist.github.com/774838>

~~~
harper
this was originally how i hosted simple sites on app engine. It works wonders.

------
yatsyk
GitHub pages[1] is other great option for static site hosting. You are pushing
to github repo and your site is regenerating. Jekyll [2] is used as static
site generator. I'm using GH Pages for HNresources.com hosting. If I need
quickly update site I could change source page on project page on github.com
site without even using git.

One question according to GAE hosting: If your application wasn't requested
for some time it is unloaded from memory and first request after that require
more time. Is it still apply to static sites?

* [1] <http://pages.github.com/>

* [2] <https://github.com/mojombo/jekyll>

~~~
pamelafox
(I am not on the App Engine team, but researched it recently to give a talk
about it)

If the request is going through a static handler (as declared in app.yaml),
then the request won't go to the Apps frontend servers at all, it will go to
the static file servers. So, no, the app unloading shouldn't be relevant for
static files.

I made this diagram for a recent talk that somewhat shows that:
[http://www.slideshare.net/wuzziwug/writing-apps-the-
googley-...](http://www.slideshare.net/wuzziwug/writing-apps-the-googley-
way/16)

EDIT: It looks like DryDrop may actually use script handlers, not static
handlers, in the app.yaml, so app unloading would apply.

~~~
ryankanno
Thanks for the link to the talk. Interesting stuff! :D

------
rb2k_
I like the idea of having a git backend for site data, but in the case of the
author: why not just use a regular host? There are some pay-for-what-you-use
hosts (e.g. <https://www.nearlyfreespeech.net/>).

~~~
MindTwister
Well, <https://www.nearlyfreespeech.net/> supports git, bash, sh etc, if you
follow the instructions from the comments further down you can use git as a
backend ^^

~~~
MindTwister
Actually I was wrong, I read it here:
[http://stackoverflow.com/questions/279169/deploy-php-
using-g...](http://stackoverflow.com/questions/279169/deploy-php-using-git)

------
nolite
What do you use as a origin server for your static media? And how does
cloudfront work.. when its cached on the CDN, how long does it stay there?
Don't you have to pay for files stored on the CDN? Oh, and where's your
drydrop fork? :)

Thanks for the post, really nice

~~~
harper
I use my www as the origin for the static media. I assume that cloudfront
files stay in the CDN until they are invalidated. I haven't tested how long
they stay. I imagine that if there are no requests, they go away after awhile.

You do have to pay for cloudfront usage. I am not sure the breakdown of custom
origin vs s3 is - but i imagine it is similar.

Here yea go: <https://github.com/harperreed/drydrop>

------
RK
I think you can do the same with GAE + Dropbox.

See Option B here:

[http://www.labnol.org/software/dropbox-with-custom-
domain/18...](http://www.labnol.org/software/dropbox-with-custom-
domain/18349/)

------
ryankanno
This is pretty genius. Free static web hosting, ftmfw. :)

