rBook (short for 'recipe book') is a configurable recipe management system written in PHP for MySQL that you run on your own website. Some of the features include:

Add and edit recipes
rBook features a rich recipe editor that allows you to specify title, source, categories, ingredients, ingredient sets, and steps. Form navigation is done easily with keyboard or mouse. Ingredients and steps can be resorted by dragging and dropping.
rBook supports the ability to attach multiple images to a recipe (although the default view only shows one of them). Requires ImageMagick.
Recipe Multiplier
When viewing a recipe, users can click on the quantity to give them a slider control that allows them to adjust the proportions.
Optimization for mobile devices
rBook changes features based on their appropriateness for a mobile device. Recipes can be viewed and grocery lists can be edited
Grocery Lists
rBook features a grocery list capability. Ingredients can be dragged from a recipe into the grocery list and modified directly on the server. There is also a dedicated grocery list page that allows you to sort the grocery list items (via drag-n-drop of course). The grocery list can be edited from a mobile device.
Recipes can be assigned 1 or more categories that can be searched on. Categories can be made up on-the-fly as a recipe is being edited or via an admin interface
Administrative Tools
rBook features an administrative interface that is available in the sidebar of a administrative user.
Users can be directly created by an administrative user (from the admin interface) or can be invited by a regular user (if invitations are turned on). Users fall into three categories: admin users, members and guests. Guest users can only view recipes.
The entire repository (users, recipes, categories, etc.) can be exported into an XML file and re-imported into the tool. This is available to admin users.
Multi-language support
All the strings and images are externalized and can be easily translated. Currently there are translations available for English, German, and Estonian.