lexislav / station0
Grand zero flat file CMS — core library.
v0.2.1
2026-04-27 20:48 UTC
Requires
- php: ^8.2
- ext-pdo_sqlite: *
- delight-im/auth: ^9.0
- league/commonmark: ^2.4
- monolog/monolog: ^3.5
- php-di/php-di: ^7.0
- phpmailer/phpmailer: ^7.0
- slim/csrf: ^1.3
- slim/psr7: ^1.6
- slim/slim: ^4.13
- slim/twig-view: ^3.3
- symfony/yaml: ^8.0
- twig/twig: ^3.8
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- phpunit/phpunit: ^10.5
README
Lightweight flat-file CMS built on PHP 8.2+. Pages are stored as plain text files on disk — no database migrations, fully Git-friendly. SQLite is used only for authentication.
Stack
- Framework: Slim 4
- Templates: Twig 3
- Markdown: League/CommonMark (GFM + front matter)
- Auth: Delight\Auth (SQLite)
- DI: PHP-DI 7
Requirements
- PHP ≥ 8.2 (with
pdo_sqliteextension) - Composer
Installation
composer create-project lexislav/station0-skeleton mysite
cd mysite
php -S localhost:8080 -t public public/index.php
On first visit to http://localhost:8080/admin, a setup form lets you create the first admin account in the browser.
This package
lexislav/station0 is the core library — it contains the PHP classes, admin templates, and CLI binary. It is installed into vendor/ by the skeleton project.
For a ready-to-use project skeleton, see lexislav/get-station0.
CLI (via skeleton)
php vendor/bin/console user:create <username> <email> [role] php vendor/bin/console user:reset-password <email> php vendor/bin/console cache:clear
Package structure
admin/templates/ Admin Twig templates
bin/console CLI binary (exposed via composer bin)
config/roles.php Role definitions
src/ PHP source (namespace Station0\)
License
MIT