Search by

blush-dev / blush

justintadlock

The site project for X3P0, a CMS that keeps its data in files by default.

Package info

github.com/blush-dev/blush

Homepage

Issues

Type:project

pkg:composer/blush-dev/blush

Statistics

Installs: 83

Dependents: 0

Suggesters: 0

Stars: 6

1.0.0-beta.1 2022-03-21 04:36 UTC
No longer found in upstream repository

This package is auto-updated.

Last update: 2026-10-18 14:58:14 UTC


README

X3P0 is a flat-file CMS under heavy development. This repository is the site project you fork and customize; the framework lives in x3p0-dev/cms.

The master branch builds toward 1.0.0.

Layout

Path What it holds
config/ Typed PHP config objects (never under user/).
user/content/ Markdown, HTML, and data entries.
user/media/ Images, audio, video, and documents.
user/data/ Content types, relationships, menus, redirects, settings, and other editable data.
public/ The only servable directory: index.php, .htaccess, and published assets.
.htaccess Forwards every request into public/.
src/ The site's own classes (App\).
storage/ Caches, logs, and exports. Not committed.
bin/x3p0 The command-line tool.

Getting started

  1. composer install
  2. Copy .env.example to .env and adjust it.
  3. Serve it:
    • Shared hosting (Apache): upload the whole project into your web root (such as public_html). The root .htaccess serves everything from public/, and nothing else in the project can be requested. If your host lets you point the domain at public/, that works too.
    • Outside the web root (more locked down): upload the project somewhere the web can't reach (such as ~/x3p0), and copy only the contents of public/ into public_html. In that copy of index.php, set $root to the project path and pass paths: ['public' => __DIR__] to HttpRunner.
    • nginx: point the server's root at public/; see nginx.conf.example. nginx ignores .htaccess, so don't serve the project root itself.
    • DDEV: ddev start, then open https://x3p0.ddev.site. It runs Apache with the project root as the web root, just like shared hosting.
    • Built-in server: bin/x3p0 serve, then open http://127.0.0.1:8000.

During development the framework is required from a sibling checkout (../cms) through a Composer path repository.