enlivenapp / pubvana
Pubvana CMS v3 - Publishing Nirvana
Requires
- php: ^8.2
- enlivenapp/flight-csrf: ^0.2
- enlivenapp/flight-sessions: ^0.1
- enlivenapp/flight-shield: ^0.3
- enlivenapp/migrations: ^0.3
- enlivenapp/vision: ^1.0
- ezyang/htmlpurifier: ^4.19
- flightphp/active-record: ^0.7
- flightphp/core: ^3.0
- flightphp/runway: ^1.2
- league/commonmark: ^2.6
- league/html-to-markdown: ^5.1
- phpmailer/phpmailer: ^7.1
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- flightphp/tracy-extensions: ^0.3.0
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^11.0
- tracy/tracy: ^2.10
- vimeo/psalm: 6.4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-04 05:07:49 UTC
README
Pubvana CMS
Pubvana v3 is a full-featured CMS built on the FlightPHP micro framework with plugins, Vision template engine, and shared-host friendly setup for personal blogs and small to medium businesses.
v2
v3
Notice:
v3 is currently in Alpha developement. Thing change rapidly, and no update ability is available yet(you'd be stuck with composer for updates). If you need a stable release right now consider Pubvana v2. Thanks for considering Pubvana!
Prerequisites
- PHP 8.2+ with required extensions
- MySQL 5.7+ or MariaDB 10.3+
- Composer (getcomposer.org)
- A web server (Apache with mod_rewrite, or Nginx)
Create an empty MySQL database and a user with full privileges on it. You'll need the database name, username, and password for setup. Composer is optional in production builds (see Release Download .zip file).
Automated Installation
See the Pubvana Website for v2 web installer or v2 Docker Compose on Github.
Manual Installation (v3)
Production (clone and install): Browser and Docker based installers coming soon.
cd ~/public_html/ git clone https://github.com/Pubvana-CMS/pubvana.git . composer install
Development:
git clone https://github.com/Pubvana-CMS/pubvana.git
cd pubvana
composer install
Configuration
Generate a session key if you don't have one (don't reuse keys):
php -r 'echo bin2hex(random_bytes(32));'
Copy the sample environment file and edit it:
cp .env.example .env
Edit .env: At minimum, set these values:
APP_ENV=production
DB_HOST=127.0.0.1
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASS=your_database_password
SITE_URL=https://your-domain.com/
SESSION_ENCRYPTION_KEY=<64 hex characters>
Initialize the Database
php runway migrate:all
This runs the foundation packages (sessions, Shield, CSRF), core migrations, and every enabled plugin's migrations and seeds.
Create an Admin User
php runway shield:user create -n yourusername -e you@example.com php runway shield:user password -e you@example.com php runway shield:user addgroup -e you@example.com -g superadmin
Web Server
Point your web server to the public/ directory. If you use Apache or LiteSpeed, the included .htaccess handles clean URLs and security. For Nginx, add a location block that rewrites to public/index.php.
Log In
Visit https://your-server/auth/login and sign in with the admin credentials you created.
CLI Commands
| Command | Description |
|---|---|
php runway migrate:all |
Run all pending migrations and seeds |
php runway routes |
List all registered routes |
php runway shield:user create -n <name> -e <email> |
Create a user |
php runway shield:user password -e <email> |
Set a user's password |
php runway shield:user addgroup -e <email> -g <group> |
Assign a user to a group |
Project Structure
pubvana/
app/
config/ - Bootstrap, routes, services, env handling
Controllers/ - Admin and public controllers
Database/ - Core migrations and seeds
Models/ - Core models
Services/ - ExtensionRegistry, PluginLoader, PluginView, etc.
Views/admin/ - Admin templates (.php)
plugins/ - One folder per plugin
themes/ - Theme folders with Vision templates
docs/ - Architecture and developer docs
Plugin and theme assets are served by AssetService at /assets/{type}/{name}/{path}. Nothing gets copied to public/.
Developer Documentation
- Coming Soon
Features
- Posts and pages with draft/published/scheduled workflow
- WYSIWYG editor (Jodit) for all content types
- Plugin system with enable/disable from the admin panel
- Vision templates for public pages (no PHP execution)
- Region and block system with drag-and-drop placement
- Media library with image editing
- Built-in SEO (meta, sitemaps, schema, LLMs.txt)
- Comment system with moderation
- URL redirect manager with 404 tracking
- Form builder with submissions
- Server-side analytics with daily rollups
- Search across all content types
- Role-based access control (Shield)
- SMTP email with encrypted credentials
- Dark mode admin UI (Tabler/Bootstrap 5)
Stack
| Layer | Technology |
|---|---|
| Framework | FlightPHP 3.0 |
| Authentication | enlivenapp/flight-shield |
| Database | enlivenapp/flight-active-record |
| Admin UI | Tabler (Bootstrap 5 + Alpine.js) |
| Public Templates | Vision (no PHP execution) |
| Content Editor | Jodit |
| PHPMailer |
Security
Reporting a Vulnerability
Do not open a public issue for security vulnerabilities. Use GitHub Security Advisories to report them privately. We aim to respond within 48 hours and will credit reporters in the changelog.
Production Hardening
- Set
APP_ENV=productionin.env - Set
FORCE_HTTPS=truein.env - Use a strong password for your admin account
- Set
SITE_URLto your actual domain - Ensure
.envhas permissions600and is not committed to version control - Point your web server's DocumentRoot to
public/
Bug Reports and Feature Requests
Use the Issues Tracker.
Links
License
Pubvana is released under the MIT Open Source License. See LICENSE for details.
Contributors
- Enliven Applications
