Skip to content

Migrate to Fess 15.7 with OpenSearch and docsearch static theme#1

Open
marevol wants to merge 3 commits into
masterfrom
feature/fess-15.7-opensearch-docsearch-theme
Open

Migrate to Fess 15.7 with OpenSearch and docsearch static theme#1
marevol wants to merge 3 commits into
masterfrom
feature/fess-15.7-opensearch-docsearch-theme

Conversation

@marevol

@marevol marevol commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Migrates the docker-docsearch deployment to Fess 15.7 with OpenSearch 3.7.0, and replaces the legacy JSP-based docsearch UI with the new docsearch static theme from fess-themes. All Fess settings now live as -D flags in compose.yaml instead of a mounted system.properties file.

Changes

Stack upgrade

  • Fess 14.8.0ghcr.io/codelibs/fess:15.7.0.
  • Search engine: Elasticsearch 7.17.7 → OpenSearch 3.7.0 (ghcr.io/codelibs/fess-opensearch:3.7.0). Service es01search01, ES_HTTP_URLSEARCH_ENGINE_HTTP_URL, dictionary/data paths moved under /usr/share/opensearch/....
  • Added healthchecks to both services; fess01 now waits for search01 to be healthy.

Static theme

  • Removed the legacy JSP view / CSS / image overrides under data/fess/.../{WEB-INF/view,css,images}/docsearch.
  • setup.sh now syncs the docsearch static theme from the fess-themes repository into data/fess/usr/share/fess/app/themes/docsearch (mounted into the container). Source is configurable via FESS_THEMES_DIR (local checkout) or FESS_THEMES_REPO/FESS_THEMES_REF.
  • The theme is activated with -Dfess.system.theme.default=docsearch.

Configuration via -D flags

  • All settings previously in the mounted system.properties are now -D flags in FESS_JAVA_OPTS:
    • fess_config.properties keys use -Dfess.config.<key>.
    • Dynamic/system settings use -Dfess.system.<key>.
  • Dropped virtual.host.value (theme activation now handled globally by theme.default) and purge.by.bots (identical to the Fess 15.7 built-in default).

Plugins

  • Removed the fess-script-groovy plugin download — the Groovy engine has been bundled in Fess core since 15.0.

Notes / verification

  • compose.yaml validated; FESS_JAVA_OPTS renders as the expected flag list.
  • setup.sh / git_pull.sh pass bash -n; theme sync produces a valid themes/docsearch/ (theme.yml with name: docsearch).
  • Healthcheck uses /api/v2/health, which is provided by Fess core in 15.7 (the /api/v1/* surface moved to the separate fess-webapp-v1-api plugin) and matches the official fess:15.7.0 image healthcheck.
  • On Linux, OpenSearch requires vm.max_map_count >= 262144 (documented in README).

Test plan

  • bash ./bin/setup.sh
  • docker compose -f compose.yaml up -d
  • Confirm search01 becomes healthy, then fess01 starts
  • Confirm the docsearch static theme is served at / and /themes/docsearch/

marevol added 3 commits June 27, 2026 18:15
- Upgrade Fess 14.8.0 -> 15.7.0 and switch the search engine from
  Elasticsearch 7.17 to OpenSearch 3.7.0 (ghcr.io/codelibs/fess-opensearch:3.7.0);
  rename the service es01 -> search01 and ES_HTTP_URL -> SEARCH_ENGINE_HTTP_URL.
- Replace the legacy JSP-based docsearch view/CSS/image overrides with the
  docsearch static theme, synced from the fess-themes repository by setup.sh
  and mounted at /usr/share/fess/app/themes/docsearch.
- Activate the theme with -Dfess.system.theme.default=docsearch.
- Move all Fess settings out of the mounted system.properties file into -D
  flags in compose.yaml (-Dfess.config.* for config keys, -Dfess.system.* for
  dynamic/system properties).
- Drop the fess-script-groovy plugin download; the Groovy engine has been part
  of Fess core since 15.0.
- Add healthchecks for both services and gate fess01 on search01 health.
- Update README and .gitignore accordingly.
Keep fess_config.properties overrides as -Dfess.config.* flags, but move
dynamic system settings (theme.default=docsearch, login.required, etc.) back
into a mounted /opt/fess/system.properties file instead of -Dfess.system.*
flags.

setup.sh seeds the live (git-ignored) system.properties from the tracked
system.properties.template on first run; existing files are preserved so
Fess can rewrite them at runtime and git pull does not conflict.
The system.properties backup/restore dance git_pull.sh existed for is gone, so
the script was just a thin git pull + setup.sh wrapper. Document the update
steps in README instead, noting that the git-ignored system.properties is
preserved across updates.
@marevol marevol force-pushed the feature/fess-15.7-opensearch-docsearch-theme branch from b1d5e8c to 38e6e21 Compare June 27, 2026 10:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant