Announcing www.chefdoc.info - A service for serving cookbook documentation

TL;DR: Announcing http://www.chefdoc.info, a chef cookbook documentation service modeled after the infamous rubydoc.info.

I thought chef cookbooks need a better documentation style than “write a README”, so I created the basis for one. I took yard-chef and rubydoc.info and after some hassle http://www.chefdoc.info was born. This is an early release, so don’t expect too much, but still, I hope you like it. And of course, it’s open source: https://github.com/chefdoc. The production service is running in a Docker container which is available at https://hub.docker.com/u/chefdoc/.

The most important aspect behind all this for me was to start with a very limited, and basic functionality and create documentation guidelines with the community. So apart from code contributions I also need input if a project like this makes sense at all and how it should progress.

Planned features:

  • Support for private supermarkets and chef servers, so you can deploy chefdoc in your own infrastructure and have it document your cookbooks.
  • Support for Definitions, LWRPs and custom resources.
  • Cross linking within a cookbook, eg. link node attributes to where they are defined.
  • Showing a dependency graph in some way.
  • Display available metadata.
  • Add cookbooks file and templates to docs and crosslink them inside the recipe source.
  • If you have CSS/HTML/JavaScript skills and want to contribute to make chefdoc look nicer I would be very glad. :wink:

Notes about the service:

  • I am currently hosting on sloppy.io, but they don’t offer sharing volumes between Docker containers which means I can not cache anything. So I will move to some other hosting service (probably Linode) in the future which should offer a major performance boost.
  • Some cookbooks seem to not work at all. If you find one, please add it to the issue tracker: https://github.com/chefdoc/chefdoc.info/issues/1

Any kind of feedback, especially in form of pull requests is welcome.

2 Likes

Looks good. I would really like to see it in my private network. Sometimes browsing through cookbooks is so tedious.

Looks promising, thanks for sharing this with the community. Support for running on internal infrastructure for cases where cookbooks can’t be publicly released would be nice to see.

Supporting private infrastructure is definitely on my roadmap. If you want to look at some code [1] it would actually be quite simple to support additional endpoints. What would be your use case? What do you use, a Private Supermaket, Chef Server or something else?

[1] https://github.com/chefdoc/chefdoc.info/blob/master/lib/extensions.rb#L44

We don’t use a private supermarket, just a git repo per cookbook and the internal chef server.

Well, some kind of git integration might come in the future but that definitely is not very high on my list. Integration with any chef server v 2.6 (this version includes the universe berks endpoint) or higher will probably come within the next few weeks.
Of course I would also be very happy about a pull request with this feature. :wink: If you got some time I can point you to the steps required.

@sme Using a chef_server as cookbook backend is now supported, als long as the chef server version is at least 12.4. You can find some getting started docs at https://github.com/chefdoc/chefdoc.info/wiki/Getting-started

1 Like

Nice work, will give this a look internally. Thanks again for providing the resource to the community!

@joerg.herzinger Useless post for the thread, but thanks a lot for the efforts, I did initiate this path with yard internally a year ago, but without a central acces it did die a few weeks later.

So thanks for the hard work, I’ll try to free some time for a git* integration in the next weeks.

My version was not so fancy :slight_smile:

Hope will find some time to merge some my features to yours :slight_smile: