There are many different moving parts that come together to make the October CMS platform work. By default October CMS uses a modular structure where most programming features are found in either the modules or plugin directory. The only required module is the system module.

Root Directory

Bootstrap Directory

The bootstrap directory contains the app.php bootstrapper file that loads the Laravel framework. The directory also contains the custom autoloader used by the application, this is pulled in by any script that needs to load files within the application. You should not typically need to modify any files within this directory.

Config Directory

The config directory contains all the application configuration files. Each file controls how the application functions and it is a good idea to get familiar with each file and its contents. These belong to your application and can be modified however you wish, they will not be touched during system updates.

Modules Directory

The modules directory contains the core packages that are included with October CMS, providing core functionality that is common across the system. Modules are loaded automatically based on their presence in the file system by default, however, you can manually specify which modules to load with the system.load_modules configuration item. The system module must be loaded at a minimum for the application to operate.

Plugins Directory

The plugins directory contains packages that extend the core functionality of October CMS. Similar to modules, they can modify the platform by introducing new features or by extending other plugins. Plugins are loaded automatically when they are found in the filesystem, however, you can manually disable plugins using the system.disable_plugins configuration item.

Storage Directory

The storage directory contains log files, cache files, sessions and other files generated by October CMS. The inner directory is segregated in to app, cms, framework, logs and temp.

The app storage directory contains application specific storage items, such as media files, file uploads and automatically generated resources, such as resized files and combined asset files. The framework storage directory is used by the Laravel framework to store its generated files and caches. The cms storage directory is used by the October CMS platform to store its generated files and caches. The logs storage directory contains your application's log files. The temp storage directory is a working directory used by the application.

Themes Directory

The themes directory contains static file content that is used to manage the front end structure of your website. The active theme is set using the cms.active_theme configuration item.

Vendor Directory

The vendor directory contains packages are included via Composer in either the project's /vendor directory or can sometimes be found in plugin-specific /vendor directories. The project vendor directory takes priority over and plugin vendor directories that appear in the system.

Modules Directory

System Module

The system module contains the core functionality of October CMS and is a required module. It has shared logic that is used by other modules.

CMS Module

The cms module introduces functionality for rendering frontend pages and loading themes. It is responsible for routing to pages, rendering partials and handling AJAX requests.

Backend Module

The backend module is responsible for rendering backend pages and orchestrating menus, layouts and other administrative features.

Editor Module

The editor module introduces a code editor to the backend interface of October CMS. It allows you to manage the website theme directly in the backend.

Media Module

The media module introduces a media management feature to the backend interface of October CMS. It allows you to upload media files for inclusion in other areas.

Next: Deployment

Previous: Configuration