This post discusses the high-level folder structure of the Kaltura core server. Developers, IT and engineers who maintains Kaltura are invited to join the discussion below and ask questions regarding best practices or maintenance.
Each folder represents a “logical module” -
The most important thing to keep in mind while going over the Kaltura server folders is the difference between the core code (“server” side) and “client” code.
For example, the alpha folder dedicated to server core code, therefore it has access to all core components and plugins including direct access to the database.
On the other hand, there is the batch folder, the batch folder holds client code. Batches can’t directly interact with the database, this code operates as a client to the core server – and access it through the API. This makes it easy to decouple and manage Kaltura batches (like Endcoding Engines) on remote servers.
The following diagram outlines the main folders in the Kaltura server code, a short description of each and the references between the modules.
- KDL is the Kaltura Decision Layer. This holds the media transcoding and encoding logic.
- API v2 is the legacy Kaltura API. It is maintained for backward compatibility. API v2 is deprecated and should not be used.
- Plugins (found in the plugins folder) can directly access all other folders in the core server and is used to extend every core aspect of the Kaltura server.
- Batches are another form of Plugins that were built to leverage sophisticated API based structure that allows decoupling batch clients and deployment on remote servers.
- The start folder is the welcome page shown in the root of the web when Kaltura CE is installed.
- The service_config folder holds old service ct files, configurations and permissions for the old API v2.
- The OLD_PATHS folder is deprecated, it holds the old web folder with the first version of the player and editor. The folder is only kept for backward compatibility purposes.
- The scripts folder holds scripts and utilities for server maintenance. These are not are fully tested for QA and are not recommended for use unless otherwise strictly instructed (for example when migrating or upgrading). Some great tools are the permissions folder util that core developers use to add new permissions to the server on server updates and new builds.
Follow next posts as we’ll cover in more depth each of the modules that makes the Kaltura Core.
Have questions? don’t be shy, have your say below : )