Sign inSign up

mintjams/cms

By mintjams

•Updated about 22 hours ago

MintJams CMS: JCR 2.0 content repository, Webtop virtual desktop, built-in SAML 2.0 IdP/SP. Beta.

Image
Content management system
0

4.8K

mintjams/cms repository overview

⁠MintJams CMS

MintJams CMS is a lightweight, high-performance Content Management System built on a simplified implementation of the Content Repository for Java Technology API 2.0 (JSR 283).

It bundles a JCR-backed server runtime on Apache Felix alongside a modern, browser-based virtual desktop ("Webtop") for content authoring, enterprise integrations, and system administration. It features zero-configuration SAML 2.0 authentication out of the box.


⁠Key Features

  • JCR-Backed Server Runtime: Runs on Apache Felix with JCR content repository, integrated with Apache Camel and Camunda BPM.
  • Webtop Virtual Desktop: Rich client desktop environment equipped with built-in applications:
    • Content Browser & Identity Manager
    • BPM Console & BPMN / EIP Modeler
    • OSGi Console, Mail, Chat, and collaborative games
  • Zero-Configuration SAML 2.0: Built-in Service Provider (SP) and Identity Provider (IdP) with seamless in-JVM trust.
  • Modern Security:
    • Passkey (WebAuthn) support (face/fingerprint recognition, security keys)
    • Two-Step Verification (TOTP) with single-use recovery codes
    • AES-encrypted credentials store
  • Multi-Architecture Support: Native linux/amd64 and linux/arm64 images (supports x86_64 and Apple Silicon/ARM64 servers without emulation).

⁠Quick Start

Run the container with CMS_PUBLIC_BASE_URL specified (required for SAML SP/IdP URL generation):

docker run -d \
  -p 8080:8080 \
  -e CMS_PUBLIC_BASE_URL=http://localhost:8080 \
  -v cms-repository:/data/repository \
  -v cms-secrets:/data/secrets \
  -v cms-index:/data/index \
  --name mintjams-cms \
  mintjams/cms:latest

Open http://localhost:8080 in your browser.

⁠Docker Compose
services:
  cms:
    image: mintjams/cms:latest
    restart: unless-stopped
    environment:
      CMS_PUBLIC_BASE_URL: "http://localhost:8080"
    ports:
      - "8080:8080"
    volumes:
      - cms-repository:/data/repository
      - cms-secrets:/data/secrets
      - cms-index:/data/index

volumes:
  cms-repository:
  cms-secrets:
  cms-index:

⁠First Login

On the first start, a random password for the built-in admin user is generated and stored in the repository volume. Retrieve it using:

docker exec mintjams-cms cat /data/repository/INITIAL_PASSWORD.txt

Log in as admin, change the password via Preferences, and delete the password file:

docker exec mintjams-cms rm /data/repository/INITIAL_PASSWORD.txt

Alternatively, set the initial password on startup by passing -e CMS_INITIAL_ADMIN_PASSWORD=your_password.


⁠Configuration & Volume Mounts

⁠Environment Variables
VariableRequiredDescription
CMS_PUBLIC_BASE_URLYesPublic base URL (e.g., https://cms.example.org). Used for SAML SP & IdP endpoints.
CMS_INITIAL_ADMIN_PASSWORDNoExplicit password for the admin user on first run.
CMS_CLUSTER_ENABLEDNoSet to true to enable clustered mode.
CMS_JAVA_OPTSNoAdditional JVM options (e.g., -Xmx4g).
⁠Persistent Volumes
Mount PathPurpose
/data/repositoryJCR content, generated SP/IdP keystores (*.p12), and runtime configuration (etc/*.yml).
/data/secretsAES master key used for encrypting keystore passwords and sensitive data. Must be backed up separately.
/data/indexNode-local full-text search index (rebuilt automatically if empty).


⁠Trademarks

All trademarks are the property of their respective owners.


Built with ❤️ by MintJams Inc.⁠

Tag summary

Content type

Image

Digest

sha256:963f692e9…

Size

406.5 MB

Last updated

about 22 hours ago

docker pull mintjams/cms