Batoi Press Docs

Installation

Install Batoi Press on standard PHP hosting and understand the directory model.

Installation

Batoi Press is packaged for standard PHP hosting. The browser-facing files live in public_html/; the private CMS engine lives in radpress/.

Batoi Press installation layout A diagram showing browser traffic to public_html and private application files in radpress. Browser public_html/ index.php install.php admin.php assets/ radpress/ private CMS engine Keep radpress outside the web root when hosting allows it.

Requirements

  • PHP 8.1 or newer.
  • Apache rewrite support for clean URLs, or query-string fallback.
  • Writable radpress/config/, radpress/content/, and radpress/data/.
  • ZIP extension for package handling.
  • No database, Composer, Node.js, Docker, Git, or CLI access is required for runtime use.

Install Flow

  • Upload the package contents to the host.
  • Point the web root to public_html/ when possible.
  • Keep radpress/ outside the public web root when the host allows it.
  • Open /install.php.
  • Create the first owner account.
  • Confirm radpress/config/installed.lock was created.

The installer creates or updates:

radpress/config/site.json
radpress/config/users.json
radpress/config/security.json
radpress/config/installed.lock

Web Root Notes

On cPanel-style hosting, public_html/ is usually the web root. If the host does not allow radpress/ outside the web root, keep the included .htaccess files in place so private directories are denied direct access.

Release Package Contents

A release ZIP should contain:

public_html/
radpress/
README.md
LICENSE

Generated runtime state should not be included, especially:

radpress/config/installed.lock
radpress/data/backups/*.zip
radpress/data/cache/*
radpress/data/export/*.zip
radpress/data/log/*.jsonl
radpress/data/sessions/*
radpress/data/tmp/*
radpress/data/versions/*

Build a package with:

php tools/build-release.php

Use --output /path/to/batoi-press.zip when a custom destination is needed.