Liferay Forums docs

Home/Marketplace Apps/Liferay Forums/Installing

Developing With a Liferay Workspace

If you build your own Liferay code with a Liferay Workspace, you can add the forum’s projects to it, build them with your code, and deploy them to the workspace’s own Liferay bundle for development.

This isn’t a separate way to install the forum. To install it on a server, in Docker, or on Liferay SaaS, build the zips here, then follow Installing with them. A Liferay PaaS project’s liferay folder is already a workspace: follow On Liferay PaaS.

Tested with the Liferay Workspace Gradle plugin 15.0.0 and Liferay DXP 2026.Q1.4. You need Blade, or run the workspace’s ./gradlew in place of blade gw.

  1. Step 1: Add the Forum’s Projects
  2. Step 2: Build Them
  3. Step 3: Deploy Them to the Workspace’s Bundle
  4. Step 4: Check the Installation
  5. Things to Avoid
  6. Related Information

Step 1: Add the Forum’s Projects

  1. From the latest release, download the forum’s source code, liferay-forums-<version>-source.zip, and unzip it. It unzips to a folder named liferay-forums-<version>, such as liferay-forums-1.0.0.

  2. Copy these three folders into your workspace’s client-extensions folder:

    • client-extensions/liferay-forums-batch
    • client-extensions/liferay-forums-etc-spring-boot
    • client-extensions/liferay-forums-site-initializer

The workspace picks them up as client extension projects, next to your own, with no other change.

Step 2: Build Them

From the workspace’s root folder:

blade gw build

Each zip is written to its project’s dist folder, for example client-extensions/liferay-forums-batch/dist/liferay-forums-batch.zip. They’re the same zips as a release’s.

Step 3: Deploy Them to the Workspace’s Bundle

For the workspace’s Liferay bundle, set up with blade server init. Start it, and wait until it has started. Each project’s deploy task copies only its own zip into the bundle, in bundles/osgi/client-extensions by default.

Never install with blade gw deploy. The workspace-wide deploy deploys every project at once, so the microservice’s zip can arrive before the batch has finished, and every post is then rejected.

If you put the projects in a subfolder, such as client-extensions/forums, the task paths follow it: :client-extensions:forums:liferay-forums-batch:deploy.

  1. The batch. Then wait until the Liferay log shows five lines containing Finished batch engine import task:

     blade gw :client-extensions:liferay-forums-batch:deploy
    
  2. The microservice’s zip:

     blade gw :client-extensions:liferay-forums-etc-spring-boot:deploy
    
  3. Start the microservice, as in Step 4 of Liferay Self-Hosted (Tomcat): unzip client-extensions/liferay-forums-etc-spring-boot/dist/liferay-forums-etc-spring-boot.zip into a folder, and start it with LIFERAY_HOME set to the full path of the bundle. Use a full path: start.sh runs from its own folder.

     LIFERAY_HOME=/home/me/my-workspace/bundles ./start.sh
    
  4. Set up email notifications, as in Email Notifications, then restart the microservice.

  5. The forum site. Once the site exists, remove liferay-forums-site-initializer.zip from bundles/osgi/client-extensions.

     blade gw :client-extensions:liferay-forums-site-initializer:deploy
    

For more forum sites, add a copy of the site initializer project per site, as in Several Sites, and deploy each with its own deploy task.

Step 4: Check the Installation

Continue with Checking the Installation.

Things to Avoid

  • Later workspace-wide deploys skip projects that haven’t changed, so blade gw deploy for your own code doesn’t deploy the forum again. After blade gw clean, or a change to a forum project, it deploys the forum’s zips again, all at once. Then restart the microservice, which gets new credentials, and see Deploying the Batch Again.
  • The workspace’s Docker tasks, such as buildDockerImage and startDockerContainer, put every project in Liferay’s image, and Liferay deploys them while it starts, which is too early for the microservice and the site initializer. For Docker, build the zips here, then follow Liferay Self-Hosted (Docker).