Deployment¶
This page describes the directory layout 3forge Enterprise creates, the files it expects, and how the runtime is launched on each platform.
Overview¶
A 3forge Enterprise installation is a single directory tree containing the runtime, its configuration, and its working data. On Linux, a startup script assembles the classpath, applies the JVM options, launches the process, and waits for it to report that startup completed. On Windows, the .exe launcher performs the same steps internally, launches the process, and opens a browser to its configured server.
The runtime ships as one consolidated library, so the script sets a fixed classpath rather than scanning for jars. Additional capabilities are installed as plugins into a dedicated directory.
Directory layout¶
The following directories sit beneath the installation root (amicore):
| Directory | Purpose |
|---|---|
config/ |
Configuration files, including defaults.properties and local.properties |
data/ |
Working data, including the access file and routing files |
keys/ |
Keystores and public keys |
lib/ |
The runtime library |
log/ |
Log output, including rotated files |
persist/ |
Persisted state, including the encryption key file |
plugins/ |
Installed plugin bundles |
resources/ |
Resources served to the browser |
scripts/ |
Start, stop, and tools scripts |
The startup script creates log/, resources/, and plugins/ if they are absent. It does not create the others, so a missing config/ or keys/ directory is a configuration error rather than something the process recovers from.
Classpath¶
The classpath consists of the resources directory followed by the single runtime library:
If the CLASSPATH environment variable is set, it is appended.
Because the library is consolidated, adding a JAR to lib/ does not extend the classpath. Install additional capabilities as plugin bundles in plugins/ instead, where each bundle is loaded in its own child classloader. This isolation means a plugin can depend on a different version of a library than the runtime uses.
JVM options¶
Options are read from amicore_linux.vmoptions in the installation root. If the file is absent, the startup script creates it with defaults:
Edit this file to change the heap size or garbage collector settings. Values in it are applied on the next start.
The script detects the Java version and adjusts accordingly. On Java 11 and later it adds the --add-opens flags the runtime requires, and uses the unified logging form for garbage collection output. On earlier versions it uses the legacy garbage collection flags.
License file¶
The startup script searches for a license in the following order:
$HOME/f1license.txtf1license.txtin the installation rootconfig/f1license.txt
The first file found is used.
Starting and stopping¶
Run the scripts from the scripts/ directory:
start.sh launches the process in the background, records its process identifier, and then polls until the log reports that startup completed. It also checks that the process is still alive on each poll, so a process that exits during startup is reported immediately rather than after a timeout.
On success the script prints the log, script, and configuration directory paths, the address to open in a browser, and the default credentials if the instance is using them. If startup fails, see Troubleshooting.
Stopping on Windows¶
To stop the server normally, rename the .amionemain.prc file in the installation directory to .amionemain.prc.kill. From the installation directory:
The server stops within a few seconds and removes the file. This is the same signal stop.sh sends on Linux.
Installing a plugin¶
-
Obtain the plugin bundle assigned to you from the client portal.
-
Extract the bundle into the
plugins/directory. Each bundle contains a plugin library and the dependency libraries it requires. -
Add the plugin to the relevant plugin list in
config/local.properties, referencing the existing list so the shipped defaults are preserved: -
Restart 3forge Enterprise.