Skip to content
 
 

Repository files navigation

How to Helma

TL;DR

  • Make sure you have Java 25 or higher installed
  • Download and unpack the latest release
  • Invoke ./bin/helma, resp. ./bin/helma.bat, depending on your platform
  • Direct your web browser to http://localhost:8080

Introduction

Helma is an open source web application framework for fast and efficient scripting and serving of your websites and Internet applications.

Helma is written in Java and employs JavaScript for its server-side scripting environment, removing the need for compilation cycles and reducing development costs while giving you instant access to leverage the whole wealth of Java libraries out there.

Helma pioneered the simple and codeless mapping of application objects to database tables, which has only recently come into vogue with other web frameworks. In addition, an embedded object-oriented database performs automatic data persistence of unmapped objects.

Helma has proven itself to be stable and fast, capable of serving high traffic sites with hundreds of thousands of dynamic pages per day. The Austrian Broadcasting Corporation, popular weblog hosting sites such as antville.org, twoday.net, and blogger.de, among many others, have successfully been deploying Helma for several years now.

Although Helma became a Grande Dame of server-side JavaScript already decades ago when she performed in cozy Finnish clubs, she appears somehow retired nowadays. Nevertheless, she is here to stay for those last ones out there still tinkering with this nostalgic and wonderful piece of software.

System Requirements

You need a Java virtual machine version 25 or higher to run Helma.

Please consult the documentation of your platform how to obtain and install Java.

You also can directly download a Java runtime or development kit from Oracle.

Helma is built with Gradle, the build task depends on the binaries rsync and npx being installed on your system.

Development

Additional Prerequisites

Clone this repository to your machine and run Helma with ./gradlew run.

To update the installation from a build, run ./gradlew update and enter yes at the prompt.

Warning

Please be aware that this step is going to overwrite files in the installation directory – escpecially at a later time when there might be substantial changes. Should this happen by accident you find the previous installation in the backups directory.

Alternatively, you could move or copy the desired files manually from the installation directory build/install/helma.

After all files are put into place start Helma by invoking ./bin/helma.bat or ./bin/helma, depending on whether you are on Windows or Linux / Unix / OS X, respectively. If the java command is not found, try setting the JAVA_HOME environment variable to the location of your Java installation.

You can adjust server-wide settings in the server.properties file. For example, you could set the smtp property to the name of the SMTP server that Helma should use to send e-mail. Applications can be started or stopped by editing the apps.properties file, or through the web interface using the management application that is part of Helma.

If all goes well you should be able to connect your browser to http://localhost:8080 – port 8080 on the local machine, that is.

Helma comes with a version of Jetty, a lightweight yet industrial strength web server, so it serves HTTP on its own without any additional infrastructure.

Deployment

The recommended way to run Helma in production is containerised: one trusted application per image, with isolation between tenants delegated to the container runtime and orchestrator. A Dockerfile is included — build the distribution and image with:

./gradlew distTar
docker build -t helma:latest .
docker run --rm -p 8080:8080 helma:latest

Front the container with a reverse proxy (nginx, Apache, Caddy) for TLS termination. Running directly on a host under a process supervisor (systemd, etc.) is supported as an alternative. See the deployment documentation for details.

Helma runs application JavaScript with the full privileges of the JVM — there is no in-process sandbox. Treat everything in one container as a single trust domain and rely on the runtime for isolation.

Documentation and Further Information

After installing and running Helma, you will be able to access introductions to the features of Helma and the various included development tools. Further information you will find on the helma.org website:

Note

Unfortunately, the Helma website disappeard in the meantime 😿 However, with some archaeological web digging and thanks to the great search engines and archive services out there it is still possible to find useful resources.

About

Fork of the best maintained Helma Object Publisher fork (Antville's)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages