Apache Website Template release 0.0.1

This is a source or binary distribution of Apache Website Template.

The LICENSE and NOTICE files contain license information.

README.md explains the purpose of this project, how to generate and
deploy a simple web site based on this template, and how to create a
web site for your project based on this template.
