A powerful open source website content management system.
OpenCms is built in Java and XML from open source components. OpenCms provides compelling features especially suited for large Internet or Intranet websites.
- General OpenCms features
- Online live demo
- Documentation
- Community
- Compatibility
- Installing OpenCms
- Source branches
- Bugs and feature requests
- Contributing
- Security issues
- Creators
- Copyright and license
OpenCms features include:
- The page editor allows WYSIWYG inline editing of web pages and arrangement of content by drag & drop.
- The form based editor allows editing of structured content in a well defined form mask.
- The sitemap editor allows to create new pages and re-arrange the navigation tree by drag & drop.
- Responsive "Mercury" default template based on Bootstrap 4 with many features.
- Headless API for accessing content as JSON from external applications.
- Content creation for mobile devices with preview and device specific content control.
- Structured contents can be defined using a simple XML schema.
- Easy to use "Online / Offline" workflow, changes must be approved before they become visible.
- Link management for all internal resources with broken link detection.
- Integrated image scaling and cropping.
- SEO features with automatic sitemap.xml generation and page alias support.
- Full featured user management that supports the concept of "Organizational Units" (OUs).
- Allows management of multiple websites within one installation.
- Contents can be served dynamically or exported to static HTML files.
- File access to the OpenCms content repository over a shared network / SMB drive.
- CMIS and WebDAV access to the OpenCms content repository.
- Integrates Apache SOLR for powerful content searching and noSQL like queries.
- Full text search for web pages as well as in office documents like PDF, MS Office and Open Office.
- Extensions can be added through a flexible module system.
- The "time warp" feature allows to view resources which are expired or not yet released.
- JSP integration for dynamic functionality in templates, dynamic forms etc.
- ... and much more
See the OpenCms website for further information.
If you want to try out OpenCms, the easiest option is to use our OpenCms Live Demo server.
The live demo provides a personal OpenCms installation exclusively for you. All you need to do is register with a valid email address. We will not use the data you provide for anything else than setting up your personal demo installation!
The OpenCms Documentation Central is the portal to all documentation regarding OpenCms related technology.
Receive updates about the OpenCms development and get in touch with the core developers and community members.
- Subscribe to the OpenCms mailing list for all questions, comments and suggestions regarding OpenCms.
- Follow @OpenCms on Twitter or OpenCms on Facebook.
OpenCms is compatible with Java 21 and 25.
OpenCms 22 is available in two variants:
- The Jakarta EE variant requires a Jakarta Servlet 6.0 compatible web container. It works "out of the box" with Tomcat 10.1, Tomcat 11 or Jetty 12. This is the default variant and the recommended choice for new installations.
- The legacy Java(x) EE variant requires a Java Servlet 4.0 web container such as Tomcat 9 or Jetty 12 in EE 8 mode. This is for existing installations that still depend on
javax.*code. Please note: OpenCms 23 will be Jakarta-only.
See the article OpenCms goes Jakarta for the background of the Jakarta change and the upgrade path.
Others have reported deploying OpenCms successfully on other web servlet containers like WildFly, GlassFish, WebLogic, WebSphere and Resin.
On the database side, we provide support for MySQL, MariaDB, Oracle, PostgreSQL, MS SQL Server, DB2 and HSQLDB.
The easiest way to install OpenCms is to use our official docker image. See alkacon/opencms-docker on Docker hub for full information about running the OpenCms docker image. Images are available for both variants: alkacon/opencms-docker:22.0 for the Jakarta EE variant and alkacon/opencms-docker:22.0-javax for the legacy Java(x) EE variant.
You can install OpenCms "from scratch" manually on your server as well. See the OpenCms installation guide for full information about manually installing OpenCms.
The OpenCms sources are maintained in two branches:
maincontains the Jakarta EE variant. All active development happens here.mastercontains the legacy Java(x) EE variant. It is generated frommainfor the release by converting the sources back to thejavax.*namespace, so pull requests should always targetmain.
Which variant a build produces is controlled by the eeTarget property in gradle.properties (jakarta or javax), which also selects the matching dependency set.
Please report issues and submit feature requests using our GitHub OpenCms issue tracker.
Contributions to the OpenCms core development are most welcome. Please send us your pull requests directly on GitHub..
Please report security issues in OpenCms using the security issue report form on the Alkacon website.
OpenCms is developed by Alkacon Software with the help of an international OpenCms community.
OpenCms is copyright by Alkacon Software GmbH & Co. KG. The OpenCms source code is released under the GNU LGPL.