====== Pure Blog ====== A flat-file PHP blogging platform: [[https://pureblog.org/|pureblog.org]], [[https://github.com/kevquirk/pureblog|kevquirk/pureblog]]. Markdown posts, a browser admin UI, RSS, search, and tags. No database, no Node. Write in the browser admin or drop ''.md'' files in ''content/posts/'' directly. ===== What It Is ===== * Flat-file content: posts and pages are Markdown files with front matter on disk * Distraction-free admin dashboard for writing and organizing * Draft previews, tag archives, pagination, built-in search, RSS feed * One-click updater in ''/admin'' (needs ''php-curl'' and ''php-zip'') Everything worth keeping is plain files under ''content/'' and ''config/'', so backups are a tarball or a git repo. ===== Serving It ===== Pure Blog's docs assume Apache (it ships an ''.htaccess''). The alternatives: * **nginx + php-fpm**: both from Ubuntu repos, nothing third-party. nginx is ~5 MB, the default php-fpm pool is ~30-90 MB under load. Fine on 4 GB RAM. * **Caddy + php-fpm**: viable if you want Caddy parity, but needs the external apt repo. * **''php -S'' built-in server**: fine for a quick local test (''php -S 127.0.0.1:8000 -t /var/www/pureblog /var/www/pureblog/index.php''; index.php doubles as the router for clean URLs). Not for real serving. * **Apache + mod_php**: the ''.htaccess'' works unchanged, but uses more memory. ===== Public Access Notes ===== * Restrict ''/admin'' to the LAN if the site is public: an ''allow/deny'' block in nginx covers the admin path. * Custom routes are configured in Admin > Settings > Site > Custom routes: one ''path | template'' per line. Templates are stored inside ''content/includes/'' so they deploy with the content. * A health-check ''curl -sf http://127.0.0.1/'' probe is enough for monitoring. ===== Where It Fits ===== A middle point between a static generator and a database CMS: you get a real admin UI and drafts, but the content is still portable Markdown you can read in any editor. It uses far less memory than WordPress or Ghost; more than [[indieweb:tiny_ssg|the tiny SSGs]] because it needs a PHP runtime. ===== See Also ===== * [[indieweb:tiny_ssg|Minimal Static Site Generators]] * [[indieweb:bashblog|bashblog]] * [[indieweb:blogging|Blogging Platforms]] * [[indieweb:start|IndieWeb Index]] * [[start|Return to wiki home]]