Page

Documentation

This documentation is written like a compact markdown knowledge base. Use it as the working map for installing, operating, and extending DesertCMS.

Overview

  • Public site: generated static files served by OpenBSD httpd.
  • Admin app: Perl CGI behind slowcgi for editing, uploads, settings, backups, and rebuilds.
  • Storage: SQLite database plus private data directories for originals, backups, themes, and site-specific state.
  • Deployment target: OpenBSD with httpd, pf, acme-client, slowcgi, tar, SQLite, and an image processor.

Quick Install

perl install/openbsd-install.pl --dry-run --domain example.com

doas perl install/openbsd-install.pl --domain example.com

doas perl /usr/local/www/desertcms/tools/openbsd-validate.pl --domain example.com

Runtime Layout

/usr/local/www/desertcms/ application code
/etc/desertcms.conf main instance config
/var/desertcms/ main instance data
/var/desertcms/originals/ private originals
/var/desertcms/backups/ backup archives
/var/www/htdocs/desert-archive/ generated public site
/var/www/acme/ ACME challenge root
/var/www/run/desertcms.sock slowcgi socket

Publishing Model

  • Create or edit pages and posts in the admin editor.
  • Publish writes static HTML into the public webroot.
  • Rebuild regenerates pages, indexes, sitemap, robots.txt, map data, redirects, and public theme assets.
  • Navigation and redirect rules are stored in the database and emitted into the generated site artifacts.

Media Rules

  • Original files stay under the private originals directory.
  • Public pages reference generated display derivatives only.
  • Alt text is editable in the admin media screen.
  • Large uploads require the httpd request body limit included in the generated configuration.

Operations Cheat Sheet

doas rcctl restart desertcms_slowcgi

doas httpd -n && doas rcctl reload httpd

doas su -m _desertcms -c 'env DESERTCMS_CONFIG=/etc/desertcms.conf perl /usr/local/www/desertcms/bin/desertcms-maint.pl rebuild'

doas su -m _desertcms -c 'env DESERTCMS_CONFIG=/etc/desertcms.conf perl /usr/local/www/desertcms/bin/desertcms-maint.pl backup'

Contributor Sites

Contributor sites are separate DesertCMS instances with their own config, database, public root, admin account, and generated files. The root-owned queue worker provisions, enables, disables, destroys, and rewrites webserver config after validating it.

Downloads

Use the Download page for release archives and checksums. The source archive is best for development. The OpenBSD runtime bundle is the operational package for a server install.

LinkDownload Source

desertcms-source-2026-06-29.tar.gz - 217.6 KB

LinkDownload OpenBSD runtime bundle

desertcms-openbsd-runtime-2026-06-29.tar.gz - 193.0 KB