This repository is the central repository for the Chef server.
If you want to file an issue about Chef Server or contribute a change, you're in the right place.
If you need to file an issue against another Chef project, you can find a list of projects and where to file issues in the community contributions section of the Chef docs.
You can build a Chef Server package locally with vagrant and test-kitchen.
cd omnibus/
make dev dev-build
Once the build is complete, the package should be in omnibus/pkg. By default the dev-build target will create an Ubuntu 10.04 build.
This repository contains the core services that make up the Chef Server.
|-- oc-chef-pedant: A comprehensive test suite for the Chef Server API
|-- omnibus: Omnibus build configuration for the Chef Server
|-- scripts: Utility scripts
`-- src
|-- bookshelf: S3-compatible engine for storing cookbook data
|-- chef-mover: data migration orchestrator used in upgrades
|-- chef-server-bootstrap: ruby tool to instantiate key data structures in a new chef server
|-- oc-id: OAuth2 provider for extensions like Analytics or Supermarket
|-- oc_bifrost: Chef Server's authorization service
|-- oc_erchef: The core REST API server
`-- opscode-expander: a service that transforms Chef data before sending it to Solr for indexing
- knife-ec-backup, used to ease migrations from Open Source Chef Server 11 (and below)
- knife-opc, used to provide administrative command-line control to the Chef Server from the console
- Erlang
- PostgreSQL
- RabbitMQ
- Redis
- Solr4
- Nginx (openresty with lpeg library addition)
- Runit for service supervision
If you're looking to contribute to certain parts of the Chef server, familiarity with the following related tools is also beneficial, depending on the area.
- rebar (used for dependency management in Erlang)
- keepalived (used for HA setups in the server)
- sqitch (database migrations)
- lua (routing rules in openresty)