Files
novaconium/README.md
T
code 15b32ed256 Make Docker bind mounts actually work; refresh homepage feature grid
App/, cache/, uploads/, and data/ are now bind-mounted by default, so
docker-entrypoint.sh seeds an empty App/ from a build-time backup and
re-chowns the mounted paths to http:http on every start (a bind mount
doesn't inherit a named volume's ownership or get seeded from the image
the way COPY does). Also fixes AllowOverride never actually being
enabled (the sed pattern didn't account for httpd.conf's indentation,
so only DirectoryIndex-served routes worked) and pins Apache/PHP/SQLite
to a dated Arch Linux Archive snapshot for reproducible builds.

Homepage's feature grid was six cards behind what's actually shipped;
brought it in line with the features blog post.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-17 02:43:03 +00:00

2.6 KiB

 _ __   _____   ____ _  ___ ___  _ __ (_)_   _ _ __ ___
| '_ \ / _ \ \ / / _` |/ __/ _ \| '_ \| | | | | '_ ` _ \
| | | | (_) \ V / (_| | (_| (_) | | | | | |_| | | | | | |
|_| |_|\___/ \_/ \__,_|\___\___/|_| |_|_|\__,_|_| |_| |_|

novaconium

A tiny, Hugo-flavored PHP micro-framework. Routes are directories on disk, pages render with Twig, and any page that needs real logic gets an optional PHP "sidecar" file. Pages without a sidecar are pre-rendered once and served as static HTML straight from Apache afterwards. No Composer — Twig is vendored directly into the repo as plain source files.

For a full tour of what's included — routing, sidecars, caching, admin auth, access control, media manager, database, search, RSS, and more — see the Novaconium Features post once the site is running, or /admin/docs (see Documentation below).

Getting started

Requirements:

PHP 8.1+ (uses readonly constructor-promoted properties) and, for production, Apache with mod_rewrite and AllowOverride All. A few optional features (database, content index/search, admin authentication) need the pdo_sqlite extension — see /admin/docs for details once running.

Developers

Run it locally, no Apache needed:

php -S 127.0.0.1:8000 -t public public/router.php

Visit http://127.0.0.1:8000/ — click around the example pages, then open http://127.0.0.1:8000/admin/docs for the complete documentation, rendered live from this same instance.

Webmasters

  • Clone this repo.
  • docker build: docker build -t novaconium .
  • docker compose up -d

Documentation

The full framework documentation lives inside the framework itself, at /admin/docs on any running instance — so it travels with the code, no internet connection needed. That's the canonical reference for everything: requirements, running locally, deploying on Apache or Docker, starting a new project, updating the framework, adding a page, routing, sidecars, libraries, database, session, content index, XML sitemap, RSS feeds, layouts, static caching, SEO, Matomo analytics, admin authentication, access control, draft pages, media manager, styling, and project layout.

AGENTS.md is the short, agent-facing version for coding assistants working in this repo, and novaconium/ISSUES.md is the roadmap/backlog.

Third-party

Twig is vendored in source form under novaconium/vendor/twig/ (no Composer — see /admin/docs/upgrading-twig for how to upgrade it). It's BSD-3-Clause licensed; the full license text ships alongside it at novaconium/vendor/twig/LICENSE.