Search Results

All Results 6970
Sort By
Resource Type
Applicable Versions
Deployment Approach
Capability
Feature
Installing on WildFly
Installing on WildFly Liferay DXP 2025.Q3+/Portal 2026.Q1+ For pre-Jakarta Liferay versions, see Installing Earlier Versions on WildFly. Installing on WildFly requires installing the DXP WAR,...
Running Liferay for the First Time
Running Liferay for the First Time Once you've installed Liferay DXP/Portal and configured a database for it, it is ready to run. Start the Server Run the startup script bundled with your...
Container Lifecycle and API
Container Lifecycle and API At a high level, the container starts Tomcat with Liferay deployed on it. Additionally, however, the container entry point provides an API for executing these use cases:...
Docker Image Versions
Docker Image Versions Liferay Docker image tags begin with a Liferay software version and end with an image version. [Liferay software version] [image version] For example, Liferay DXP 7.4.13...
Setting Up JNDI on Tomcat
Setting Up JNDI on Tomcat Liferay 7.4+ To set up JNDI resources, you must put the necessary JDBC drivers in the Tomcat lib folder (i.e. tomcat-9.0.56/lib). For example, if you use an Oracle...
Using Liferay Docker Images
Using Liferay Docker Images Docker Hub hosts Liferay DXP and Liferay Portal Docker images, bundled with Tomcat on Linux. The Liferay Docker Hub pages provide image details and tags for the...
Configuring Containers
Configuring Containers Everything that is configurable in a Liferay installation is configurable in a Liferay Docker container. Here are the most common things to configure: JVM Options Portal...
Licensing DXP in Docker
Licensing DXP in Docker If you're using a DXP trial license that's expiring or you have a new license (activation key) you must install, you can replace your container's existing license. Here's...
Running Scripts in Containers
Running Scripts in Containers If there's more that you want to do in the Liferay container beyond setting up Tomcat and Liferay files, deploying arifacts, and applying patches, you can use scripts....
Maintaining a Liferay Installation
Maintaining a Liferay Installation Starting with Liferay DXP 7.3 SP3+ and 7.4 GA1+, Liferay adopted a new release model for delivering updates and fixes. This new approach is referred to as Bundle...
Patching Liferay
Patching Liferay Liferay DXP uses Bundle Releases for its latest releases. Please see Updating Liferay if you are applying an Update. All Hotfixes are patches. If you're applying a Hotfix,...
Installing Apps and Other Artifacts to Containers
Installing Apps and Other Artifacts to Containers Applications and other artifacts (such as DXP activation keys) are installed to DXP Docker containers via the container's /mnt/liferay/deploy...
Patching DXP in Docker
Patching DXP in Docker Liferay patches fix DXP issues and the Patching Tool applies the patches. On Docker Hub, Liferay provides images pre-populated with each new Fix Pack, Security Fix Pack, and...
Providing Files to the Container
Providing Files to the Container The Liferay container uses the files you provide to execute the following use cases: Configure Liferay with .properties Files and .config files Configure Tomcat...
Upgrading to a New Docker Image
Upgrading to a New Docker Image As new Liferay versions are released as Docker images, you can upgrade to them. Upgrading Liferay describes the process. Always back up your data and installation...
Using Liferay Util Param
Using Liferay Util Param The param tag lets you set a parameter for an included JSP page. This configuration requires two JSPs. JSP A, the main view of the app, includes JSP B and sets its...
Using Localized Messages in an MVC Portlet
Using Localized Messages in an MVC Portlet Liferay's localization framework is for creating localized messages in your MVC portlet. Deploy the Sample Code Then, follow these steps: Download...
Client Extensions
Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 When you want to extend Liferay, either by modifying its look and feel or by calling functions outside of Liferay, you...
Instance Settings YAML Configuration Reference
Instance Settings YAML Configuration Reference You can use an instance settings client extension to configure a wide variety of Liferay configurations. Each configuration is referenced by its PID...
Core Frameworks
Core Frameworks
Using React
Using React Build your own solutions using Liferay and React.
Remote Applications with Headless APIs
Remote Applications with Headless APIs Available 7.4+ After creating and publishing objects, headless REST APIs are automatically generated. Here you'll see how to integrate these endpoints to...
Using Object Data with React Charts
Using Object Data with React Charts Here you'll use Objects, Headless APIs, and custom element remote applications to create a dynamic chart for data dashboards. First, you'll set up a new DXP...
Packaging Client Extensions
Packaging Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Client extension projects are built as deployable archives called Liferay Universal File Format Archives...
Configuration as Code
Configuration as Code Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Liferay instance configurations are deployable with client extensions. For example, you can deploy OAuth2...
OAuth Headless Server YAML Configuration Reference
OAuth Headless Server YAML Configuration Reference You can define an OAuth headless server client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines...
OAuth User Agent YAML Configuration Reference
OAuth User Agent YAML Configuration Reference You can define an OAuth user agent client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines an OAuth...
Categorizing a Configuration
Categorizing a Configuration When you register a configuration interface, the UI for your application is generated in System Settings → Platform → Third Party. If you prefer a different section and...
Configuration Framework
Configuration Framework Setting and Accessing Configurations Categorizing a Configuration Scoping Configurations Portlet Level Configuration Configuration Form Renderer DDM Form Annotations ...
Completely Custom Configuration
Completely Custom Configuration A configuration UI is generated automatically when you create a configuration interface. But in some cases you want a completely custom UI for your configuration....
Configuration Model Listener Reference
Configuration Model Listener Reference Use model listeners in your own configurations to listen for events and execute code in response. Creating a model listener requires only three steps: ...
DDM Form Annotations
DDM Form Annotations The auto-generated configuration interface UI may be too simplistic for some configurations. You can use the Dynamic Data Mapping (DDM) form annotations to customize your...
Hiding the Configuration UI
Hiding the Configuration UI Liferay generates a configuration UI automatically after a configuration interface deploys. But you may have certain use cases where you want to hide the UI. For...
Portlet Level Configuration
Portlet Level Configuration With the configuration framework, you can set your application's configuration for different levels of scope. Where Instance and Site-scoped configurations use...
Configuration Form Renderer
Configuration Form Renderer When you create a configuration interface, a configuration UI is automatically generated. But in some cases you want customize the look and feel of the UI. For example,...
Field Options Provider
Field Options Provider You can populate a drop-down list manually in the @Meta.AD annotation of the configuration interface. But you can also populate the option labels and values automatically...
Job Scheduler UI Reference
Job Scheduler UI Reference Liferay Self-Hosted Liferay PaaS Job Scheduler Triggers View, create, and manage Job Scheduler Tasks. The Job Scheduler Triggers tab lists all tasks added to the...
Data Set Sorting
Data Set Sorting Liferay DXP 2024.Q1/Portal GA112 Currently, this feature is behind a release feature flag (LPS-164563). While managing data sets, you can set default sorting rules for Data Sets...
Module Life Cycle
Module Life Cycle In OSGi, all components, Java classes, resources, and descriptors are deployed via modules (OSGi bundles). The MANIFEST.MF file describes the module's physical characteristics,...
OSGi and Modularity
OSGi and Modularity Modularity makes writing software, especially as a team, fun! Here are some benefits to modular development on Liferay: Liferay's runtime framework is lightweight, fast, and...
Contributing to Liferay Development
Contributing to Liferay Development The first thing to do in learning to fix bugs or contributing a feature is to become familiar with how to build the system. The Liferay Portal build system now...
Job Scheduler Dispatch Framework Reference
Job Scheduler Dispatch Framework Reference Liferay Self-Hosted Liferay PaaS Liferay Job Scheduler is a flexible framework built on top of Liferay's Scheduler Engine. You can use it to add,...
Micro Frontends
Micro Frontends Micro frontends extend the concept of microservices to the frontend side of development. You can build a fully-featured and powerful browser application that uses a microservice...
Bundle Classloading Flow
Bundle Classloading Flow The OSGi container searches several places for imported classes. It's important to know where it looks and in what order. Liferay DXP's classloading flow for OSGi bundles...
Building Liferay Source
Building Liferay Source This section aims to provide instructions for building Liferay Portal from source as quickly as possible. Using a nightly snapshot bundle no longer requires a full build...
APIs as OSGi Services
APIs as OSGi Services After you've learned what a module is and how to deploy one, you can use modules to define APIs and implement them. Liferay APIs are OSGi services, defined by Java interfaces...
Configuring Dependencies
Configuring Dependencies Liferay provides a container where modules can publish and consume functionality through their Java packages. Modules can leverage packages from other modules or...
Finding Artifacts
Finding Artifacts To use external artifacts in your project, you must configure their dependencies in your build.gradle Gradle script. Before specifying an artifact as a dependency, you must first...
Organizing the Source
Organizing the Source It is important to have a solid understanding of how the Liferay source is organized when working on fixing a bug or adding a new feature to the product. The Liferay Source...
Resolving Third Party Library Package Dependencies
Resolving Third Party Library Package Dependencies An application can rely on multiple OSGi modules. Resolving their Java package dependencies can be challenging. In a perfect world, every package...
Exporting Packages
Exporting Packages In OSGi, packages are private by default. You must explicitly exporting a package so other modules can import and use them. Here's how to export packages: Open your bnd.bnd...
Importing Packages
Importing Packages You often find yourself in a position of needing functionality provided by another module. To access this functionality, you must import packages from other modules into your...
Module Projects
Module Projects Liferay applications and customizations are OSGi modules: .jar files containing Java code and some extra configuration for publishing and consuming APIs. A module project comprises...
Getting Started
Getting Started Liferay DXP is a powerful, open source, enterprise-ready platform for building and deploying web applications. However, all of that power and functionality can make it difficult to...
Managing Web Content Structures
Managing Web Content Structures You can manage structures from the structures page: Open the Site Menu (Site Menu) and go to Content & Data → Web Content. Select the Structures tab. Open the...
Web Content Templates
Web Content Templates With Web Content Templates, you can define how content appears, ensuring that your web content aligns with your brand and functional requirements. Learn how to create...
Embedding Widgets in Web Content Templates
Embedding Widgets in Web Content Templates You can embed core or custom widgets, instanceable or not, in web content templates. Below is an example of embedding a web content widget in FreeMarker:
Mapping Web Content Templates to Fragments
Mapping Web Content Templates to Fragments By default, you can map web content structure fields holding a single value (such as date, numeric, image, number, or text) to fragments. For multi-value...
Using Taglibs in Web Content Templates
Using Taglibs in Web Content Templates Liferay's taglibs are accessible when developing templates in FreeMarker. There is no need to instantiate these taglibs within your FreeMarker template;...
Creating Your First Site
Creating Your First Site Sites are collections of pages that contain and display content. This article walks through creating a new Site based on an existing out-of-the-box template. Creating a...