Залил исходники этого простенького сайта на github. Большой ценности они не представляют, но, возможно, помогут интересующимся в GAE, python. В этом посте постараюсь осветить некоторые детали.

GAE предоставляет кое-какие инструменты для разработки, например webapp Framework, который показался мне не очень удобным, но никто не запрещает использовать сторонние библиотеки на python. Я решил воспользоваться случаем и попробовать Flask, слышал о нём раньше, но близко не сталкивался, он оказался хорош.

Вся домашняя страничка представляет собой очень минималистичный блог и пару статических страниц. Бложек хардкорный, и функции будут дописываться по мере необходимости, сейчас нет даже разделения на страницы, пока нечего разделять. Всё что есть, это - добавление/редактирование постов без wysiwyg, фид, слаг, подсветка исходников через highlight.js, комментарии - disqus, которые подумываю убрать. После создания нового поста он отмечается как "скрыт" - эдакий вариант обязательного предпросмотра. В общем продукт только для себя. Авторизацию сделали за нас через гугл аккаунты, администратором считается владелец приложения. Ссылки на авторизацию нет, если что - /login/.

Из странного отмечу то, что приложение можно повесить только на субдомен, именно поэтому сейчас в адресе этой странички вы видите www. Максимум, что можно сделать, так это редирект с yablochkin.net, на нужный субдомен, для этого есть специальный инструмент.

Так как прямого доступа к облаку нет, и поставить дополнительные библиотеки на сервер гугл нельзя, приходится носить всё вместе с проектом. Flask и прочее сейчас лежат в /project/lib/, лучше, конечно, оформить их в git как ссылки на репозитории - submodules, а не тянуть весь код в проект.

Теперь кратко о запуске. Предполагается, что в /google_appengine/ - лежит сам Google App Engine SDK, его надо будет скачать. ./run.sh - запуск сервера для разработки. ./deploy.sh - заливка проекта в облако. При заливке система спросит email и пароль владельца приложения.

Как установить? Регистрируйтесь в gae, создайте приложение через вебморду, при создании указывается уникальное имя приложения, вместе с которым даётся бесплатный домен третьего уровня вида *.appspot.com. Измените имя приложения в исходниках проекта /project/app.yaml - первая строчка - application: eyablochkin. Теперь можно запускать deploy.sh. Готово, сайт уже в интернете.