---
title:  Apache Geode Documentation
---

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

This documentation describes product concepts and provides complete setup instructions for Apache Geode <%=vars.product_version%>. 
Source files are available from the [Apache Geode Github repository](https://github.com/apache/geode/tree/develop/geode-docs) 
and instructions on how to build this documentation are available in the [Geode project README file](https://github.com/apache/geode/blob/develop/geode-book/README.md).

You can also find additional documentation about Geode on the [Apache Geode Wiki](https://cwiki.apache.org/confluence/display/GEODE/Index).
