Modular content-management system built on Nette, Doctrine ORM, Latte, and reusable dravencms/* packages. This repository is the project skeleton and package synchronizer entry point; applications select the feature packages they need.
- A PHP version supported by the selected DravenCMS packages.
- Composer.
- MySQL/MariaDB or PostgreSQL for the standard database configuration.
- A writable
temp,log,www/data, andwww/webtempsetup for the web/PHP process. - Node/npm only when rebuilding package frontend assets.
composer create-project dravencms/dravencms my-project
cd my-projectInstall the application packages required by the project. A typical administration-enabled installation starts with:
composer require dravencms/admin dravencms/frontend dravencms/recaptchadravencms/admin brings in the shared application, database, user, form, grid, locale, and related dependencies. dravencms/recaptcha satisfies the CAPTCHA implementation required by the user package; dravencms/antiq-captcha is the self-hosted alternative.
Feature packages can then be added independently, for example:
composer require dravencms/file dravencms/tag dravencms/gallery dravencms/seoComposer runs packager:sync after install and update operations. The packager copies public assets and installs each package's dravencms.config.neon into the application package configuration.
Create the local configuration:
cp app/config/config.local.neon.example app/config/config.local.neonSet the connection values:
parameters:
database:
driver: pdo_mysql
host: 127.0.0.1
port: 3306
user: app
password: secret
dbname: appKeep production credentials outside version control.
For a disposable development database, create the schema, proxies, and default fixture data:
php bin/console orm:schema-tool:create
php bin/console orm:generate-proxies
php bin/console database:default-data:loadUse versioned Doctrine migrations for existing and production databases. The default-data command purges mapped data before loading fixtures and must not be run against a database that needs to be preserved.
When dravencms/structure is installed, generate its presenter classes as required by that package:
php bin/console cms:presenters:generateRun the application with PHP's built-in server:
php -S localhost:8000 -t www www/index.phpOpen http://localhost:8000/admin for the administration interface. Use the bundled Nginx/Apache configuration as a starting point for a real web server; the PHP development server is not intended for production.
The User package fixtures create an administrator account with these public development credentials:
Username: admin@example.com
Password: adminExample
Replace or disable this account immediately. Never deploy an application where these credentials remain usable.
Core infrastructure:
dravencms/application,database,console,logging, andwebloaderdravencms/base-form,base-grid,translation, andfrontenddravencms/admin,user,locale, andlocation
Optional modules in this repository set:
dravencms/file,gallery,tag,partner,seo, andcookie-consentdravencms/captchawithrecaptchaorantiq-captchadravencms/templated-email
Each package README documents its configuration, integration points, fixtures, and operational warnings.
DravenCMS is licensed under the LGPL-3.0 license unless a package states a more specific SPDX variant.