PieCrust can be used either as a static website generator or as a dynamic CMS. This section is about using the static generation feature to publish a completely static website. For how to deploy a PieCrust website as a dynamic CMS, see the deployment documentation.

To publish your website, you need to “bake” it, and then place the output of this bake on a public server somewhere.


When you “bake” your website, PieCrust will generate all the pages, posts, assets, and other pieces of content you made into simple files on disk. To do this, simply run:

$ chef bake

You should see some information about how many pages PieCrust baked, how much time it took to do so, etc. Without any arguments, the output is placed inside the _counter directory at the root of your website.

You can specify another output directory:

$ chef bake -o /path/to/my/output

For other parameters, refer to the help page for the bake command by running chef help bake.

At this point, you only need to copy or upload the output files (everything inside _counter, or whatever other output directory you specified) to a place where people will be able to access them. This is typically a public directory on machine that will serve it via HTTP using software like Apache or Nginx.


PieCrust is also capable of publishing your website more or less automatically for the most common types of setup. This is done with the publish command.

You can specify various “publish targets” in your website configuration. By default, a target will first bake your website into a temporary directory, and then execute some steps that depend on the target type.

For example, the following configuration has one target (upload) that runs rsync to copy the output of the bake to some web server:

        type: rsync

You can then run:

$ chef publish upload
Deploying to upload
[   863.1 ms] baked 4 user pages.
[     5.3 ms] baked 1 theme pages.
[    79.2 ms] baked 0 taxonomy pages.
[    84.8 ms] processed 3 assets.
[  1210.9 ms] Baked website.
building file list ... done

sent 29965 bytes  received 20 bytes  19990.00 bytes/sec
total size is 22189128  speedup is 740.01
[   991.5 ms] Ran publisher rsync
[  2203.3 ms] Deployed to upload

Of course, the output will vary based on your website, your target, whether you previously published that target or wiped the PieCrust cache, etc.

For more information about the different types of publish targets available in PieCrust, refer to the publishers reference.