Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,26 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html)

## [Unreleased]

## [0.83.0] - 2026-10-29

Needs DirXMLDev 0.59.0.

### Fixed

- A large project no longer runs the server out of memory on the schema and provisioning pages
(#177). Each of their requests read and parsed the whole tree again, and a page sends several at
once. They now read the tree the outline keeps, read again only when its files change.
- The warning that `hosted.properties` "is readable by other users" no longer shows on a folder
that ignores `chmod`, such as a Windows folder mounted into the container, where its advice
can't be followed (DirXMLDev 0.59.0).

### Changed

- The server may use three quarters of the container's memory (`-XX:MaxRAMPercentage=75`); Java's
default is a quarter. `IDM_JAVA_OPTS` in `idmweb.env` still overrides it (`-Xmx4g`). The first
log line says how much it has (`heap up to … MB`), and the quickstart and hosted install say
what to do when the log shows `OutOfMemoryError`.

## [0.82.0] - 2026-10-28

Needs DirXMLDev 0.58.0.
Expand Down
3 changes: 3 additions & 0 deletions docs/hosted-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,7 @@ An agent (CI, a coding agent, a script) does not install anything:
customer keeps logs; set `audit.keep=0` if nothing may be deleted.
- Sessions are kept in `<data.dir>/sessions.json` (owner-only): a restart signs nobody out, and
each person gets their last project and branch back on their next session.
- Memory: the server takes up to three quarters of the container's memory (its first log line
says `heap up to … MB`). Size the container for the largest project; `IDM_JAVA_OPTS=-Xmx…` in
`idmweb.env` sets the heap instead.
- `bin/smoke-container.sh` runs the image end to end on a workstation with Docker.
12 changes: 12 additions & 0 deletions docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,18 @@ command there (`docker exec idmweb idm vault.status --env lab`) binds as you do
- **One per machine:** the container is named `idmweb`.
- **The server log:** `docker logs idmweb` (add `--tail 200` for the end). When the page reports
"an internal error", the stack trace is there; attach it to an issue.
- **Memory:** the server takes up to three quarters of the container's memory; its first log line
says how much (`heap up to … MB`). Docker's own limit can be as little as 2 GB, which a large
project can fill: the log then shows `OutOfMemoryError`. Give Docker more memory
(Docker Desktop: **Settings → Resources**; WSL: `memory=` in `.wslconfig`), or set the heap
yourself with a line in `idmweb.env`, which `setup` keeps:

```
IDM_JAVA_OPTS=-Xmx4g
```

Then `docker compose -f "$HOME/idmweb/compose.yml" up -d` again. The same setting reaches
`docker exec idmweb idm …`.
- **Moving to a server for a team:** [hosted-install.md](hosted-install.md) is the same image
behind a proxy with TLS and your identity provider. Push the folder's `repo.git` to GitHub or
GitLab and point the server's project at it.
Expand Down
4 changes: 3 additions & 1 deletion hosted/docker/bin/idmweb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#!/bin/sh
# The web server inside the container, on the same class path as idm.
set -e
# Java takes a quarter of the container's memory unless told: let the server have three
# quarters (#177). IDM_JAVA_OPTS comes after, so an -Xmx there wins.
IDM_HOME=${IDM_HOME:-/opt/idmweb}
IDM_LIB=${IDM_LIB:-/opt/idm/lib}
CP="$IDM_HOME/lib/dirxml-dev-web.jar:$IDM_HOME/lib/dirxml-dev.jar:$IDM_HOME/lib/dirxml-simulator.jar:$IDM_HOME/lib/dirxml-trace-core.jar:$IDM_HOME/lib/postgresql.jar:$IDM_HOME/lib/console-auth.jar:$IDM_HOME/lib/jldap.jar"
for j in "$IDM_LIB"/*.jar; do [ -f "$j" ] && CP="$CP:$j"; done
exec java ${IDM_JAVA_OPTS:-} -Didmweb.home="$IDM_HOME" -Didm.home="$IDM_HOME" -cp "$CP" com.pointblue.dirxml.web.Serve "$@"
exec java -XX:MaxRAMPercentage=75 ${IDM_JAVA_OPTS:-} -Didmweb.home="$IDM_HOME" -Didm.home="$IDM_HOME" -cp "$CP" com.pointblue.dirxml.web.Serve "$@"
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.pointblue.dirxml</groupId>
<artifactId>dirxml-dev-web</artifactId>
<version>0.82.0</version>
<version>0.83.0</version>
<licenses>
<license>
<name>MIT License</name>
Expand All @@ -23,7 +23,7 @@
<!-- The DirXMLDev release this server is written against. Install it once with
`mvn -o install -DskipTests` in the DirXMLDev checkout; bin/idmweb then runs
against that checkout's classes, engine jars and simulator. -->
<dirxmldev.version>0.58.0</dirxmldev.version>
<dirxmldev.version>0.59.0</dirxmldev.version>
<simulator.version>1.7.0</simulator.version>
<!-- the DirXML Trace Viewer's library: parser, highlighter, LDAP trace source (its release attaches the jar) -->
<!-- Directory Console's shared libraries (console-auth: OIDC sign-in, TLS trust). Install with
Expand Down
Loading
Loading