Forum OpenACS Development: Re: Docker NaviServer and OpenACS suite on GitHub

Collapse
Posted by Gustaf Neumann on

Thanks a lot to both Michael and Claudio for the extensive testing and feedback — this is very helpful.

Michael, you are most likely referring to the oacs-db-inclusive example. This setup is intended as a minimal but usable OpenACS sandbox, suitable for quick testing and experimentation.

Search box → “Client Error – file not found” / “FtsEngineDriver not available!” / missing Packages

In container environments, it is very common to keep images small and only install optional system packages on demand. Originally, the image contained only acs-core, but since this provides a very crude UI, I added a minimal xowiki-based configuration via install.xml.

You can see the configuration file:

  • from the image:

docker run --rm gustafn/openacs:latest cat /var/www/openacs/openacs-xowf-install.xml

  • from a running container:

docker exec oacs-db-inclusive-openacs-1 cat /var/www/openacs/install.xml

it is also possible to provide your own install.xml file.

On first startup, oacs-db-inclusive checks out OpenACS directly from CVS, defaulting to the oacs-5-10 branch. Other branches can be selected via the oacs_tag environment variable.

To summarize, this is an OpenACS usability issue, not a container issue. The standard templates always include a search box. The search package itself is installed by default. What is missing is typically the tsearch2-driver package, which is not installed automatically.

If tsearch2-driver is installed (e.g., via install from local) and search is mounted via the sitemap, search works as expected. There is nothing wrong with the container here, but the default UX for fresh installs could certainly be improved.


Different theme under /acs-admin/site-wide/

A different theme is intentional. The site-wide admin pages use a different theme to make it visually clear that this is not a normal subsite but an administrative area affecting the whole instance. A more beautiful theme would be nicer.


/acs-admin/monitor: 'uptime' command not found

The system package procps is not installed by default. This should ideally be handled more gracefully by OpenACS instead of erroring out.


/acs-admin/posture-overview: can't read "detailURL"

This page works for me without errors. Possibly a transient upstream issue or a configuration difference.


Class graph not rendered (/xotcl/show-object?...)

The graphviz package is not installed by default. Without it, both class graphs and call graphs in api-browser are silently omitted. No errors are shown.


Bootstrap util-user-messages UI glitch

I’m not sure how to reproduce this yet. Likely an OpenACS / theme issue.


Cache flush buttons under /acs-admin/cache/

This is an OpenACS issue. A practical change for OpenACS would be to use /xotcl/cache (when installed).


Regression test results (fails / warnings)

After a fresh install, the regression suite runs cleanly for me:

  • passes: 40 837
  • fails: 0
  • warnings: ~554

Once additional packages are installed, some test failures are unfortunately not unusual. There is certainly room for improvement here -- as always, contributions are welcome.


Theme openacsbootstrap5turquois shows .LRN logo

This is an OpenACS issue. The theme is not actually turquoise and appears to contain leftover dotLRN elements. It probably should not be offered at all.


/admin/nsstats?@page=log.smtpsent: missing smtpsend.log

This comes from the NaviServer nsstats package. The log file is created only after the first mail is sent; until then, the page should behave gracefully instead of erroring out. This should be addressed in NaviServer.


Local port changes on every restart

This is expected behavior when using ephemeral ports. It allows running multiple instances in parallel without port clashes.

If you want fixed ports, specify them explicitly — either via Portainer’s UI or via an .env file (as Claudio did with httpport=8080, https=8443).


Optional system packages

If you want the “missing” functionality out of the box, you can add:

system_pkgs=procps graphviz

to your environment. These packages will then be installed automatically when the image is built.

See also the configuration options documented in: https://github.com/gustafn/docker-ns/blob/main/openacs/README.md


Claudio’s observation (HTTP → HTTPS redirect)

Browsing to localhost:8080 redirects to localhost:8443

This is most likely intentional. Several parts of OpenACS will switch to HTTPS automatically for security reasons when HTTPS is available.


Summary

To summarize: none if these issues are actual container-specific in the reported observations. The containers behave as designed, in particular with respect to minimal base images, optional system packages, and port handling.

Most reported problems fall into the category of OpenACS issues, primarily around usability and robustness of a fresh/minimal installation (search UX, missing optional drivers, error handling when external tools are absent, theme inconsistencies, cache admin behavior, and some admin pages not degrading gracefully). These are areas where OpenACS itself could and should be improved. Some of the reported issues are due to missing docker background.

One additional issue is in NaviServer’s nsstats module, which currently errors out when expected log files (such as smtpsend.log) do not yet exist; this should also be handled more gracefully.

Addressing these points upstream would improve the out-of-the-box experience for fresh OpenACS installs, independent of whether they run in containers or on traditional systems.

Again, many thanks for the careful testing and detailed feedback — it’s very valuable for improving both documentation and defaults.

-g