@@ -48,26 +48,78 @@ or a reproducible build, that's the gap this repo fills.
4848
4949## The WebGUI (foresters)
5050
51- A familiar point-and-click FVSOnline interface, with no local R, FVS, or Fortran
52- install required.
51+ A familiar point-and-click FVSOnline interface in your browser — **no local R,
52+ FVS, or Fortran install**. You only need a container runtime; the prebuilt image
53+ is *pulled* from GitHub Container Registry, not built.
54+
55+ **Requirements (any OS):** a container runtime (Docker Desktop, OrbStack, or
56+ Podman) + a few GB of free disk for the image. The commands use `docker`; if you
57+ installed Podman, just replace `docker` with `podman`. The container works in
58+ `/work`, so mount a host folder there to keep your projects/outputs.
59+
60+ ### macOS
61+ 1. Install **[Docker Desktop](https://www.docker.com/products/docker-desktop/)** or
62+ **[OrbStack](https://orbstack.dev)**, and open it (the runtime must be running).
63+ 2. In **Terminal**:
64+ ```bash
65+ docker pull ghcr.io/roopsydaisy/fvs-containers-webgui:ie
66+ mkdir -p ~/fvs-projects
67+ docker run --rm -p 3838:3838 -v "$HOME/fvs-projects:/work" ghcr.io/roopsydaisy/fvs-containers-webgui:ie
68+ ```
69+ 3. Open **<http://localhost:3838>**. Stop it with **Ctrl-C** in Terminal.
70+
71+ ### Windows
72+ 1. Install **[Docker Desktop](https://www.docker.com/products/docker-desktop/)**
73+ (accept the WSL 2 backend) and open it.
74+ 2. In **PowerShell**:
75+ ```powershell
76+ docker pull ghcr.io/roopsydaisy/fvs-containers-webgui:ie
77+ mkdir $HOME\fvs-projects -Force
78+ docker run --rm -p 3838:3838 -v "${HOME}\fvs-projects:/work" ghcr.io/roopsydaisy/fvs-containers-webgui:ie
79+ ```
80+ 3. Open **<http://localhost:3838>**. Stop it with **Ctrl-C**.
81+
82+ ### Linux
83+ 1. Install **[Docker](https://docs.docker.com/engine/install/)** or Podman
84+ (`sudo apt install podman` / `sudo dnf install podman`).
85+ 2. ```bash
86+ docker pull ghcr.io/roopsydaisy/fvs-containers-webgui:ie
87+ mkdir -p ~/fvs-projects
88+ docker run --rm -p 3838:3838 -v "$HOME/fvs-projects:/work" ghcr.io/roopsydaisy/fvs-containers-webgui:ie
89+ ```
90+ On **SELinux** systems (Fedora/RHEL) add `:z` to the mount: `-v "$HOME/fvs-projects:/work:z"`.
91+ 3. Open **<http://localhost:3838>**.
92+
93+ > **Notes.** The first `pull` downloads a few GB and can take a few minutes; later
94+ > runs are instant. If port 3838 is busy, map another: `-p 8080:3838`, then open
95+ > `http://localhost:8080`. If `docker pull` fails with `unauthorized`/`denied`,
96+ > the GHCR package isn' t public yet — make ` fvs-containers-webgui` public in the
97+ > repo' s **Packages** settings, or `docker login ghcr.io` with a GitHub token
98+ > (`read:packages` scope).
99+
100+ <details><summary><b>Build it yourself (maintainers)</b></summary>
101+
102+ To build the image from source instead of pulling (e.g. for a new FVS variant):
53103
54104```bash
55105podman build -f docker/Dockerfile --target webgui -t fvs-webgui:ie --build-arg FVS_VARIANT=ie .
56106podman run --rm -p 3838:3838 -v "$PWD/myproject:/work" fvs-webgui:ie
57- # then open http://localhost:3838
58107```
59-
60- On **macOS**, run the same image via Docker Desktop or OrbStack — the container' s
61- port 3838 is forwarded to the Mac, so you just open the URL in your browser.
108+ </details>
62109
63110## The command line (scripted runs)
64111
112+ Pull the engine image and run a keyword file by hand (no build):
113+
65114```bash
66- podman build -f docker/Dockerfile --target cluster -t fvs-engine:ie --build-arg FVS_VARIANT=ie .
67- podman run --rm -v " $PWD :/work" fvs-engine:ie FVSie --keywordfile=mykeys.key
115+ docker pull ghcr.io/roopsydaisy/ fvs-containers- engine:ie
116+ docker run --rm -v "$PWD:/work" -w /work ghcr.io/roopsydaisy/ fvs-containers -engine:ie FVSie --keywordfile=mykeys.key
68117# FVS writes FVSOut.db and report files next to your keyword file
69118```
70119
120+ For many keyword files in parallel on HPC, use the cluster runner in
121+ [fvs-hpc-toolkit](https://github.com/RoopsyDaisy/fvs-hpc-toolkit).
122+
71123## The cluster (big simulation campaigns)
72124
73125Pull the published engine image to an Apptainer `.sif` and fan runs out with a
0 commit comments