#Documentation by Category

Below is a categorized list of Ganeti documentation.

# Development process
  * [BuildBot](BuildBot.md): Setup of the public buildbot infrastructure.
  * [DeveloperGuidelines](DeveloperGuidelines.md): Developer guidelines for contributing to Ganeti.
  * [QA](QA.md): Understanding Ganeti QA.
  * [ReleaseProcess](ReleaseProcess.md): How to perform a new Ganeti release.


# Extensions
  * [DrbdDeviceMonitoring](DrbdDeviceMonitoring.md): Monitoring DRBD devices with Nagios.
  * [GanetiInVagrant](GanetiInVagrant.md): Testing or trying out a Ganeti environment inside of Vagrant.
  * [GanetiInVirtualBox](GanetiInVirtualBox.md): Creating a Ganeti environment in VirtualBox.
  * [PerformanceTuning](PerformanceTuning.md): Some tips about improve performance on your cluster.
  * [PhysicalToVirtual](PhysicalToVirtual.md): Physical to virtual transfers using `ganeti-p2v-transfer`.
  * [SystemTemplateWithFAI](SystemTemplateWithFAI.md): How to build a system template that uses FAI for setup of instances.


# Plugins
  * [ExtStorageProviders](ExtStorageProviders.md): A list of Ganeti ExtStorage Providers.
  * [OSDefinitions](OSDefinitions.md): A list of Ganeti OS Definitions.


# Misc
  * [CommonIssues](CommonIssues.md): A troubleshooting guide for issues commonly encountered by Ganeti users.
  * [DistroStatus](DistroStatus.md): Ganeti integration in Linux distributions.
  * [GanetiFAQ](GanetiFAQ.md): Answers to the most frequently asked questions about Ganeti.
  * [Publications](Publications.md): Publications of the Ganeti project on conferences/in journals/etc.
  * [SummerOfCode2013Ideas](SummerOfCode2013Ideas.md): Ideas for Google Summer of Code 2013.
  * [SummerOfCode2014Ideas](SummerOfCode2014Ideas.md): Ideas for Google Summer of Code 2014.
  * [SummerOfCode2015Ideas](SummerOfCode2015Ideas.md): Ideas for Google Summer of Code 2015.
  * [SummerOfCode2016Ideas](SummerOfCode2016Ideas.md): Ideas for Google Summer of Code 2016.

---

[Alphabetical index of documentation](.)
