Skip to content

docs/usermanuals/en/getting-started/installation.md: false claim — An official Docker image ghcr.io/hodetech/forgelm:latest bundles ForgeLM with all extras; run it as `docker run ... ghcr.io/hodetech… (DOC-D3B04B-005) #225

Open

Description

@cemililik

Wave 1 · theme D1-10: Documentation-only fixes · highest severity High · 1 finding(s) · effort docs fix

Summary

docker pull fails because no image exists. A locally built image run with the documented command fails at argument parsing. Users expect all extras and a webhook-receiver service that are not there.

Primary finding

DOC-D3B04B-005 — docs/usermanuals/en/getting-started/installation.md: false claim — An official Docker image ghcr.io/hodetech/forgelm:latest bundles ForgeLM with all extras; run it as `docker run ... ghcr.io/hodetech…

severity High · already tracked: KNOWN-OPEN C31-DOCKER-RUNBOOK docs/roadmap/risks-and-decisions.md:200

Where. docs/usermanuals/en/getting-started/installation.md:98-108 (Turkish mirror: docs/usermanuals/tr/getting-started/installation.md:100-108) · type: false claim

The document says. An official Docker image ghcr.io/hodetech/forgelm:latest bundles ForgeLM with all extras; run it as docker run ... ghcr.io/hodetech/forgelm:latest forgelm --config ...; a docker-compose.yml is published with training + experiment tracking + webhook receiver services.

What the code does. No workflow builds or pushes an image: rg 'ghcr|docker' over .github/workflows/ returns nothing, and README.md:182 says 'no image is published, so build it locally first'. The Dockerfile installs only the base and [qlora] by default; eval and unsloth are opt-in build args, and no other extra is installed (Dockerfile:51-66). ENTRYPOINT is ["forgelm"] (Dockerfile:112), so the documented ... forgelm --config runs forgelm forgelm --config, which argparse rejects with 'invalid choice: forgelm' (reproduced with python -m forgelm forgelm --config ... --dry-run). The compose file is docker-compose.yaml and defines only train and tensorboard, with no webhook receiver (docker-compose.yaml:27-61).

Code references. README.md:182-187, Dockerfile:51-66, Dockerfile:112, docker-compose.yaml:27-61

User impact. docker pull fails because no image exists. A locally built image run with the documented command fails at argument parsing. Users expect all extras and a webhook-receiver service that are not there.

Proposed correction. No image is published. Build locally: docker build -t forgelm --build-arg INSTALL_EVAL=true . then docker run --gpus all -v $PWD:/workspace forgelm --config /workspace/configs/run.yaml (ENTRYPOINT is already forgelm; do not repeat it). Default image extras: base + qlora (eval/unsloth via build args). docker-compose.yaml ships train + tensorboard services.

Turkish mirror. the Turkish page has the same error; fix both in the same PR

Acceptance criteria

  • Each statement is re-checked against the code at fix time.
  • Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
  • Every finding in this issue is resolved or explicitly closed with a reason.

Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlog: knownAlready tracked in docs/roadmapdocumentationImprovements or additions to documentationseverity: highWrong behaviour or a false claim users rely onsource: review-2026-10Found by the October 2026 code and documentation reviewwave: 1Roadmap wave 1: high severity, small effort

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions