# After the restore.

> A finished restore prints Done and a What's next block built from the nest's own manifest: the command that starts the app, where output lands, and the workflow file that produced the test render. Run renest start --dir <folder> --listen 0.0.0.0 to start the app so your browser can reach it, expose its port in your platform's panel, and copy your outputs off the machine before you terminate it.

Canonical page: https://renest.ai/docs-after-restore.html

<h2 id="closing">A finished restore ends with Done and a What's next block</h2>

<p>The restore starts the app only for its own check, then stops it. Its last lines come
after the JSON report, so they are the last thing on your screen. Every command and path in
them is taken from this nest's own manifest and this machine. Anything the nest doesn't
record is left out, not guessed. For an image nest restored into
<code>/workspace/run</code>, the end looks like this:</p>

<pre>[restore] ✅ Done: … files downloaded, … already here. Took …s. Logs and evidence: /workspace/run/.renest/evidence/…
[restore] Everything is under /workspace/run
[restore] What is yours is under /workspace/run. The toolchain is not part of this nest and is shared with every other rebuild on this machine: …
[restore] What's next:
[restore]   · Start it yourself: cd /workspace/run/ComfyUI &amp;&amp; /workspace/run/.venv/bin/python main.py --listen 127.0.0.1.
[restore]   · That command listens on 127.0.0.1, which answers this machine only — right for the check that just ran, not for your browser. To reach it from outside, change that one value to 0.0.0.0 (or run `renest start --dir /workspace/run --listen 0.0.0.0`, which does it for you).
[restore]   · Started that way it listens on port 8188. On a rented GPU box, reaching it from your own browser also means exposing that port in your provider's panel — the check never did that for you.
[restore]   · Images render into /workspace/run/ComfyUI/output — that is where yours is.
[restore]   · The workflow that produced the test render: /workspace/run/.renest/staging/workflow.json. Drop it into the app to start from what worked.
[restore]   · Moving to another machine? The same restore command works there too — it reuses what is already fetched and carries on.
[restore]   · Or let the tool do it for you: renest start --dir /workspace/run</pre>

<p>Two more lines can appear. <em>One thing still needs you</em> means some places in the
nest point at files of your own that were never packed. <em>Read this before you call it
done</em> means this machine is missing a system library the working run used. See
<a href="docs-troubleshooting.html#libs">If a restore stops</a> for that one.</p>

<p><strong>On the base image, upgrade the tool first.</strong> The copy of
<code>renest</code> built into the <a href="docs-base-image.html">base image</a> is older
than the latest release. It doesn't print the <em>What's next</em> block and has no
<code>renest start</code>. Run <code>uv tool install --upgrade renest</code> before you
restore. If <code>renest --help</code> doesn't list <code>start</code>, your copy is still
the older one.</p>

<h2 id="start">renest start runs the recorded start command for you</h2>

<pre>$ renest start --dir ./run --listen 0.0.0.0</pre>

<p><code>renest start</code> reads what a successful restore left in
<code>&lt;folder&gt;/.renest/start.json</code>. It runs the same command the closing lines
printed: the same program from the nest's own Python environment, the same working folder
and the same environment variables. It prints that command before it runs it.</p>

<ul>
  <li><code>--dir</code>: the folder you restored into. Defaults to the current folder.</li>
  <li><code>--listen 0.0.0.0</code>: changes the address the app listens on, so a browser on
  another computer can reach it. It only changes an address flag the recorded command
  already has (<code>--listen</code>, <code>--host</code> or <code>--bind</code>). If the
  command has none, it stops and says so, instead of adding a flag the app may not
  accept.</li>
  <li><code>--dry-run</code>: prints the command, then stops.</li>
</ul>

<p>It never guesses. If no restore has finished in that folder, or the nest is an older
format that records no start command, it says so. Run the command from the closing lines by
hand instead. Its exit code is the app's.</p>

<h2 id="reach">To reach it from your browser, listen on 0.0.0.0 and expose the port</h2>

<p>ComfyUI nests record the start command the restore's own check needs,
<code>--listen 127.0.0.1</code>. That address answers only the machine itself. Opening the
port in your platform's panel isn't enough on its own. The app also has to listen on
<code>0.0.0.0</code>, which is what <code>--listen 0.0.0.0</code> does.</p>

<p>Then expose the port. When ComfyUI starts, it prints the address and port it listens on.
With no <code>--port</code> in the start command, it uses its own default, 8188. How to
expose a port depends on the platform. On RunPod you add it as an HTTP port on the pod. On
vast.ai you map it when you create the instance. See
<a href="docs-guide-runpod.html#after">Renest on RunPod</a> and
<a href="docs-guide-vast.html">Renest on vast.ai</a>.</p>

<p>If you'd rather not open a port at all, leave the app on 127.0.0.1 and use an SSH
tunnel from your own computer:</p>

<pre>$ ssh -N -L 8188:127.0.0.1:8188 root@&lt;machine-address&gt; -p &lt;ssh-port&gt;</pre>

<p>Then browse to <code>http://127.0.0.1:8188</code> on your own computer.</p>

<h2 id="outputs">Your output lands in the folder the closing lines name</h2>

<ul>
  <li><strong>ComfyUI:</strong> images go to the <code>output</code> folder inside the
  ComfyUI folder, for example <code>/workspace/run/ComfyUI/output</code>. The test render
  from the restore is already there.</li>
  <li><strong>The workflow that worked</strong> is at
  <code>&lt;folder&gt;/.renest/staging/workflow.json</code>. Drag it into ComfyUI to start
  from it. If the nest records where the workflow used to live, the restore also puts a
  copy back there. If a different file is already in that spot, the restore leaves yours
  alone.</li>
  <li><strong>Logs from the restore</strong>, including the app's own start-up log, are in
  <code>&lt;folder&gt;/.renest/evidence/&lt;run&gt;/</code>. The <em>Done</em> line names
  the exact folder.</li>
</ul>

<h2 id="finetune">A fine-tuning nest names the file it produced and the command to train again</h2>

<p>For a kohya_ss or LLaMA-Factory nest, the restore runs the packed training once, to the
end, instead of starting an app. Nothing is left running. The <em>What's next</em> block
then says:</p>

<ul>
  <li><em>Your run's output is at …</em>: the file this nest was packed to produce, such as
  the trained adapter, at the same path under your restore folder. The restore only counts
  as finished if that file appeared.</li>
  <li><em>To run it again (another epoch, a changed config): …</em>: the training command,
  with the folder to run it from.</li>
</ul>

<p>If the nest doesn't name an output file, the block says the run's own log shows where
the output went. That log is <code>entrypoint.log</code> in the evidence folder. Running
<code>renest start --dir &lt;folder&gt;</code> on a fine-tuning nest runs the training
command again.</p>

<h2 id="copy">Copy what you want to keep before you terminate the machine</h2>

<p>A rented machine's disk goes when you terminate it. Your nest is safe in your drive, but
anything you made on the machine, such as new images, a trained adapter or a workflow you
edited, is only on that machine until you copy it off. From your own computer:</p>

<pre>$ scp -P &lt;ssh-port&gt; -r root@&lt;machine-address&gt;:/workspace/run/ComfyUI/output ./my-outputs</pre>

<p><code>rsync -avz -e "ssh -p &lt;ssh-port&gt;"</code> does the same and can resume if the
connection drops. If the restore failed and you want help, run
<code>renest support --dir ./run</code> on the machine and keep what it prints before you
terminate it. See <a href="docs-troubleshooting.html#support">If a restore stops</a>.</p>

<p>If you changed the setup itself and want to keep that, pack it as a new version. See
<a href="docs-capture.html">Capture a run</a>.</p>

<h2 id="move">On another machine, the same restore command carries on</h2>

<p>A restore code from the console works on any machine until it expires. Paste the same
command on a new machine and it restores there. Run it again on the same machine and it
reuses every file already on disk that matches its checksum. If the code has expired, issue
a new one from the nest's page in your drive.</p>
