# Welcome to goiardi’s documentation!

Goiardi is an implementation of the Chef server (http://www.chef.io) written in Go. It can either run entirely in memory with the option to save and load the in-memory data and search indexes to and from disk, drawing inspiration from chef-zero, or it can use MySQL or PostgreSQL as its storage backend. Cookbooks can either be stored locally, or optionally in Amazon S3 (or a compatible service).

Like all software, it is a work in progress. Goiardi now, though, should have all the functionality of the open source Chef Server, plus some extras like reporting, event logging, and a Chef Push-like feature called “shovey”. It does not support other Enterprise Chef type features like organizations at this time. When used, knife works, and chef-client runs complete successfully. Almost all chef-pendant tests successfully successfully run, with a few disagreements about error messages that don’t impact the clients. It does pretty well against the official chef-pedant, but because goiardi handles some authentication matters a little differently than the official chef-server, there is also a fork of chef-pedant located at https://github.com/ctdk/chef-pedant that’s more custom tailored to goiardi.

Many go tests are present as well in different goiardi subdirectories.

The goiardi manual is licensed under a Creative Commons Attribution 4.0 License (http://creativecommons.org/licenses/by/4.0/).

- Dependencies
- Installation
- Configuration
- Binaries and Packages
- Upgrading
- Supported Platforms
- Authentication
  - Fresh start
  - Server saved data without authentication enabled
- General Database Options
  - MySQL mode
  - Postgres mode
  - Note regarding goiardi persistence and freezing data
- Import and Export of Data
- Search
  - Ersatz Solr Search
  - Postgres Search
  - Search index trimming
- Event Logging
- Reporting
  - Purging Reports and Statuses
- Berks Universe Endpoint
- Serf
- Shovey
  - Shovey requirements
  - Shovey Installation
  - Shovey In More Detail
- The Shovey API
  - HTTP API
  - Shovey job control
  - Streaming output
  - Node status
- serf API
  - Node status
  - Shovey command
- Logging
  - Log levels
- WebUI
- Metrics
- S3 File Uploads
  - Configuration
    - goiardi options
    - S3 credentials
  - Testing it out
  - Converting from local file store to S3
- Secret Handling
  - Configuration
  - Populating
- CHANGELOG

# Indices and tables

- Index

- Module Index

- Search