466 lines
24 KiB
HTML
466 lines
24 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
|
||
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
|
||
<link rel="canonical" href="https://git.tylconsulting.it/thothii-docs/install/standalone-manual-en/">
|
||
<link rel="shortcut icon" href="../../img/favicon.ico">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
|
||
<title>Mac, Windows, Linux — English - ThothII Docs</title>
|
||
<link href="../../css/bootstrap-3.3.7.min.css" rel="stylesheet">
|
||
<link href="../../css/font-awesome-4.7.0.css" rel="stylesheet">
|
||
<link href="../../css/base.css" rel="stylesheet">
|
||
<link rel="stylesheet" href="../../css/highlight.css">
|
||
<link href="../../stylesheets/extra.css" rel="stylesheet">
|
||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||
<!--[if lt IE 9]>
|
||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||
<![endif]-->
|
||
|
||
<script src="../../js/jquery-3.2.1.min.js"></script>
|
||
<script src="../../js/bootstrap-3.3.7.min.js"></script>
|
||
<script src="../../js/highlight.pack.js"></script>
|
||
|
||
<base target="_top">
|
||
<script>
|
||
var base_url = '../..';
|
||
var is_top_frame = false;
|
||
|
||
var pageToc = [
|
||
{title: "Manual standalone installation", url: "#_top", children: [
|
||
{title: "Verification matrix", url: "#verification-matrix" },
|
||
{title: "Before you start", url: "#before-you-start" },
|
||
{title: "1. Clone a project revision", url: "#1-clone-a-project-revision" },
|
||
{title: "2. Check prerequisites and install the operator command", url: "#2-check-prerequisites-and-install-the-operator-command" },
|
||
{title: "3. Configure and start the local installation", url: "#3-configure-and-start-the-local-installation" },
|
||
{title: "4. Verify the installation", url: "#4-verify-the-installation" },
|
||
{title: "Daily lifecycle", url: "#daily-lifecycle" },
|
||
{title: "Quick diagnosis", url: "#quick-diagnosis" },
|
||
{title: "Acceptance checklist", url: "#acceptance-checklist" },
|
||
{title: "Out of scope for this release", url: "#out-of-scope-for-this-release" },
|
||
{title: "Related documents", url: "#related-documents" },
|
||
]},
|
||
];
|
||
|
||
</script>
|
||
<script src="../../js/base.js"></script>
|
||
<script src="../../javascripts/layout-init.js"></script>
|
||
</head>
|
||
|
||
<body>
|
||
<script>
|
||
if (is_top_frame) { $('body').addClass('wm-top-page'); }
|
||
</script>
|
||
|
||
|
||
|
||
<div class="container-fluid wm-page-content">
|
||
<a name="_top"></a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row wm-article-nav-buttons" role="navigation" aria-label="navigation">
|
||
|
||
<div class="wm-article-nav pull-right">
|
||
<a href="../shell-and-language/" class="btn btn-xs btn-default pull-right">
|
||
Next
|
||
<i class="fa fa-chevron-right" aria-hidden="true"></i>
|
||
</a>
|
||
<a href="../shell-and-language/" class="btn btn-xs btn-link">
|
||
Display mode and language
|
||
</a>
|
||
</div>
|
||
|
||
<div class="wm-article-nav">
|
||
<a href="../standalone-manual-it/" class="btn btn-xs btn-default pull-left">
|
||
<i class="fa fa-chevron-left" aria-hidden="true"></i>
|
||
Previous</a><a href="../standalone-manual-it/" class="btn btn-xs btn-link">
|
||
Mac, Windows, Linux — Italiano
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<h1 id="manual-standalone-installation">Manual standalone installation<a class="headerlink" href="#manual-standalone-installation" title="Permanent link">¶</a></h1>
|
||
<p><a href="../standalone-manual-it/">Versione italiana</a></p>
|
||
<p>This is the verification procedure for preparing THothII as a standalone application in <code>full</code>
|
||
mode on macOS, Windows, and Linux.</p>
|
||
<p>In this document, “standalone” means that the user does not need to install Node.js, Python or Pi
|
||
on the host: the application services and local semantic
|
||
services run through Docker. DWH and LLM providers remain external endpoints configured by the
|
||
installation; this is not an offline package.</p>
|
||
<p>This path uses no graphical installer, native launcher, or Docker Hub image. It starts from a Gitea
|
||
clone and uses explicit terminal commands. Publishing pre-built images is a later step.</p>
|
||
<h2 id="verification-matrix">Verification matrix<a class="headerlink" href="#verification-matrix" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>System</th>
|
||
<th>Recommended terminal</th>
|
||
<th>Runtime</th>
|
||
<th>Test architecture</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>macOS supported by the installed Docker Desktop version</td>
|
||
<td>Bash in Terminal</td>
|
||
<td>Docker Desktop</td>
|
||
<td>Apple Silicon (<code>arm64</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Windows 11</td>
|
||
<td>Ubuntu inside WSL2</td>
|
||
<td>Docker Desktop with WSL2 integration</td>
|
||
<td>x64 (<code>amd64</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Ubuntu Linux 22.04 or 24.04</td>
|
||
<td>Bash</td>
|
||
<td>Docker Engine + Compose v2</td>
|
||
<td>x64 (<code>amd64</code>)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Intel macOS is excluded from the first verification campaign. ARM Linux may be tested when the
|
||
machine’s Docker runtime reports <code>arm64</code>, but it is not part of the minimum matrix.</p>
|
||
<p>Documentation and Mac prerequisite checks have passed. Complete fresh installations on all three
|
||
systems remain pending; this matrix describes the tests to perform, not completed certification.</p>
|
||
<h2 id="before-you-start">Before you start<a class="headerlink" href="#before-you-start" title="Permanent link">¶</a></h2>
|
||
<p>You need:</p>
|
||
<ul>
|
||
<li>access to the THothII Gitea repository and the workspace Git repository;</li>
|
||
<li>Git;</li>
|
||
<li>Docker Desktop on macOS and Windows, or Docker Engine with the Compose v2 plugin on Linux;</li>
|
||
<li>Bash, <code>curl</code>, OpenSSL and <code>shasum</code> (Ubuntu package: <code>libdigest-sha-perl</code>);</li>
|
||
<li>enough disk space to build the images and download the embedding model;</li>
|
||
<li>the DWH and LLM endpoints, plus the credentials required by the installation.</li>
|
||
</ul>
|
||
<p>On Linux, the current user must be able to run Docker. If the system requires <code>sudo</code>, add the user
|
||
to the Docker group according to local policy and open a new session before continuing.</p>
|
||
<p>On Windows, run every command in this guide from Ubuntu under WSL2. In Docker Desktop, enable WSL2
|
||
integration for that distribution. Clone the project inside the WSL2 Linux filesystem, for example
|
||
under <code>~/src</code>, rather than under <code>/mnt/c</code>: this avoids slow builds and path/line-ending issues. Pi
|
||
does not need to be installed on the host.</p>
|
||
<p>Check the runtime before or immediately after cloning:</p>
|
||
<pre class="highlight"><code class="language-sh">docker version
|
||
docker compose version
|
||
docker version --format '{{.Server.Arch}}'</code></pre>
|
||
<p>The last command must return <code>amd64</code>, <code>x86_64</code>, <code>arm64</code>, or <code>aarch64</code>.</p>
|
||
<h2 id="1-clone-a-project-revision">1. Clone a project revision<a class="headerlink" href="#1-clone-a-project-revision" title="Permanent link">¶</a></h2>
|
||
<p>Use the project repository on Gitea:</p>
|
||
<pre class="highlight"><code class="language-sh">mkdir -p "$HOME/src"
|
||
cd "$HOME/src"
|
||
git clone https://git.tylconsulting.it/mptyl/ThothII.git
|
||
cd ThothII
|
||
git rev-parse --short HEAD</code></pre>
|
||
<p>For an SSH clone, when the key is already authorized on Gitea:</p>
|
||
<pre class="highlight"><code class="language-sh">git clone git@git.tylconsulting.it:mptyl/ThothII.git</code></pre>
|
||
<p>Record the hash printed by <code>git rev-parse</code> for a repeatable test. In a later campaign, use the
|
||
maintainer-approved revision/tag rather than implicitly following a mutable <code>main</code> branch.</p>
|
||
<h2 id="2-check-prerequisites-and-install-the-operator-command">2. Check prerequisites and install the operator command<a class="headerlink" href="#2-check-prerequisites-and-install-the-operator-command" title="Permanent link">¶</a></h2>
|
||
<p>From the clone root:</p>
|
||
<pre class="highlight"><code class="language-sh">bash scripts/check-standalone-prerequisites.sh
|
||
export PATH="$HOME/.local/bin:$PATH"
|
||
THT_INSTALL_DIRECTORY="$HOME/.local/bin" bash scripts/install-tht.sh
|
||
tht version</code></pre>
|
||
<p><code>install-tht.sh</code> bootstraps only the native <code>tht</code> operator command; it does not install a desktop
|
||
version of THothII. It uses the repository’s Docker builder, installs the binary for the current
|
||
terminal environment, and installs it in the user directory. Persist <code>$HOME/.local/bin</code> in your
|
||
shell PATH for new terminals too. An existing <code>tht</code> in this directory will be updated.</p>
|
||
<p>On Windows, run these commands inside WSL2. The installed <code>tht</code> binary is the Linux binary inside
|
||
WSL2; the application runtime remains Docker Desktop. Do not use <code>scripts/install-tht.ps1</code> as the
|
||
primary path for this test.</p>
|
||
<h2 id="3-configure-and-start-the-local-installation">3. Configure and start the local installation<a class="headerlink" href="#3-configure-and-start-the-local-installation" title="Permanent link">¶</a></h2>
|
||
<p>Run the remaining blocks in one Bash session from the physical clone root (<code>pwd -P</code>).
|
||
First create two distinct catalog passwords, preserving any existing files:</p>
|
||
<pre class="highlight"><code class="language-bash">umask 077
|
||
mkdir -p deploy/local/secrets
|
||
for name in catalog-runtime-password catalog-migrator-password; do
|
||
target="deploy/local/secrets/$name"
|
||
if [ ! -e "$target" ]; then
|
||
(set -C; openssl rand -hex 32 > "$target") || exit 1
|
||
fi
|
||
done
|
||
export THT_CATALOG_RUNTIME_PASSWORD_SOURCE="$(pwd -P)/deploy/local/secrets/catalog-runtime-password"
|
||
export THT_CATALOG_MIGRATOR_PASSWORD_SOURCE="$(pwd -P)/deploy/local/secrets/catalog-migrator-password"</code></pre>
|
||
<p>Do not regenerate passwords for an initialized catalog. Configure without starting services:</p>
|
||
<pre class="highlight"><code class="language-sh">tht setup --profile local --shell-mode full --shell-default-locale en --configure-only</code></pre>
|
||
<p>Answer the prompts as follows:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Prompt</th>
|
||
<th>Value or rule</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Installation ID</td>
|
||
<td><code>local</code>, unless one clone hosts multiple installations</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Deployment profile</td>
|
||
<td><code>local</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>DWH API endpoint</td>
|
||
<td>An <code>http(s)</code> URL without user, password, query, or fragment; may be empty for a smoke-only test</td>
|
||
</tr>
|
||
<tr>
|
||
<td>LLM API endpoint</td>
|
||
<td>An <code>http(s)</code> URL without credentials; may be empty for a smoke-only test</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Workspace repository URL</td>
|
||
<td>The workspace repository URL, not the THothII source clone</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Workspace branch</td>
|
||
<td>Normally <code>main</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Workspace access</td>
|
||
<td><code>ssh</code> with a deploy key, or <code>https</code> with a protected credential file</td>
|
||
</tr>
|
||
<tr>
|
||
<td>File paths</td>
|
||
<td>Accept the default paths under <code>deploy/local/secrets/</code> for the first test</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Secret templates</td>
|
||
<td>Answer <code>yes</code> when protected files do not exist yet</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Authentication</td>
|
||
<td>Configure the local login required by the installation; never put passwords on a command line</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>The generated configuration is local and ignored by Git:</p>
|
||
<pre class="highlight"><code class="language-text">deploy/local/thothii-installation.yaml
|
||
deploy/local/operator.env
|
||
deploy/local/auth/
|
||
deploy/local/secrets/</code></pre>
|
||
<p>Edit secrets only in protected local files; never commit them. <code>deploy/env/local.env.example</code> is a tracked reference; the
|
||
generated path <code>deploy/local/operator.env</code> is the active path for this installation.</p>
|
||
<h3 id="complete-protected-files">Complete protected files<a class="headerlink" href="#complete-protected-files" title="Permanent link">¶</a></h3>
|
||
<p>If setup created blank templates, enter the values with a local editor:</p>
|
||
<pre class="highlight"><code class="language-sh">chmod 600 deploy/local/secrets/*
|
||
"${EDITOR:-vi}" deploy/local/secrets/thothii.secrets</code></pre>
|
||
<p>The bundle must contain only <code>KEY=VALUE</code> lines for credentials actually used by <code>modelCatalog</code>. The
|
||
allowed names and credential boundary are documented in the local file
|
||
<code>deploy/secrets/README.md</code>. Do not put tokens in URLs, the YAML
|
||
descriptor, the Git repository, or commands copied into the shell.</p>
|
||
<p>For SSH workspace access, also provide the private key and <code>known_hosts</code> file requested by setup.
|
||
For HTTPS access, provide the Git credential file and any required CA. Both must remain protected
|
||
and outside version control.</p>
|
||
<p>Before starting, complete these additional configuration steps:</p>
|
||
<ol>
|
||
<li>Add <code>THT_CATALOG_RUNTIME_PASSWORD_SOURCE</code> and <code>THT_CATALOG_MIGRATOR_PASSWORD_SOURCE</code> to
|
||
<code>deploy/local/operator.env</code>, with the same absolute paths exported above. Setup does not persist
|
||
these two variables. Store paths, not passwords.</li>
|
||
<li>Replace the descriptor's generic <code>modelCatalog</code> with the approved provider/model configuration.
|
||
The generated defaults do not replicate the existing Mac. See <a href="../../general/pi-configuration/">Pi/model configuration</a>
|
||
and the local example <code>deploy/psd/thothii-installation.yaml.example</code>.</li>
|
||
<li>Populate the keys referenced by <code>authentication.apiKeyEnv</code> in <code>thothii.secrets</code>. Providers using
|
||
<code>pi_auth</code> need valid credentials at <code>PI_AUTH_FILE</code>; the <code>{}</code> template is not authentication.</li>
|
||
<li>Complete the workspace Git files. SSH requires an authorized deploy key and verified known-hosts;
|
||
HTTPS requires the credential file and CA bundle expected by the overlay. Blank templates cannot
|
||
provide repository access.</li>
|
||
</ol>
|
||
<p>After editing generated configuration, do not rerun setup: it rejects different existing content.
|
||
Generate the projections and run the explicit migration below. Use <code>THT_GIT_ACCESS=https</code> if that
|
||
was selected during setup. This block targets the fresh <code>local</code> descriptor with only the Git overlay;
|
||
custom installations must include their extra descriptor overlays in the same order.</p>
|
||
<pre class="highlight"><code class="language-bash">INSTALLATION="$(pwd -P)/deploy/local/thothii-installation.yaml"
|
||
tht --installation "$INSTALLATION" installation generate
|
||
THT_PROJECT="thothii-$(printf '%s' "$INSTALLATION" | shasum -a 256 | cut -c 1-12)"
|
||
THT_GIT_ACCESS=ssh
|
||
compose=(
|
||
docker compose --project-name "$THT_PROJECT" --project-directory "$(pwd -P)"
|
||
--env-file "$(pwd -P)/deploy/local/operator.env"
|
||
-f compose.yaml -f deploy/compose.local.yaml
|
||
-f "deploy/compose.git-$THT_GIT_ACCESS.yaml"
|
||
-f deploy/local/generated/compose.models.yaml
|
||
)
|
||
"${compose[@]}" config --quiet
|
||
"${compose[@]}" build core frontend
|
||
"${compose[@]}" up -d catalog-db
|
||
"${compose[@]}" run --rm catalog-migrate
|
||
tht --installation "$INSTALLATION" start</code></pre>
|
||
<p>Stop if a command fails. The project name matches the hash used by <code>tht</code>, preserving volume
|
||
identity. <code>catalog-migrate</code> applies Catalog and Memory migrations; <code>tht start</code> does not run it
|
||
automatically. Initial embedding-model download may take time. Use this installation-specific
|
||
sequence, not <code>run-stack.sh</code> with a different environment/project name.</p>
|
||
<h2 id="4-verify-the-installation">4. Verify the installation<a class="headerlink" href="#4-verify-the-installation" title="Permanent link">¶</a></h2>
|
||
<p>The descriptor generated for the default ID is:</p>
|
||
<pre class="highlight"><code class="language-sh">INSTALLATION="$(pwd -P)/deploy/local/thothii-installation.yaml"
|
||
test -f "$INSTALLATION"
|
||
bash scripts/verify-standalone-install.sh "$INSTALLATION"</code></pre>
|
||
<p>The verifier is read-only: it runs <code>tht doctor --json</code> and <code>tht status</code> without restarting the
|
||
stack, regenerating configuration, or printing secret contents.</p>
|
||
<h3 id="gate-a-platform-smoke-test-on-all-three-computers">Gate A — platform smoke test on all three computers<a class="headerlink" href="#gate-a-platform-smoke-test-on-all-three-computers" title="Permanent link">¶</a></h3>
|
||
<p>Record the following for each machine:</p>
|
||
<pre class="highlight"><code class="language-sh">uname -a
|
||
docker version --format '{{.Server.Version}} {{.Server.Arch}}'
|
||
tht version
|
||
bash scripts/check-standalone-prerequisites.sh
|
||
bash scripts/verify-standalone-install.sh "$INSTALLATION"</code></pre>
|
||
<p>The gate passes when the clone is intact, Docker and Compose are reachable, <code>tht doctor</code> is OK, the
|
||
stack is running, and the frontend responds at the default local URL <code>http://127.0.0.1:8080</code>.
|
||
Doctor also checks workspace and Pi: record their failures separately rather than labeling every
|
||
failure as a platform problem. Check HTTP readiness with:</p>
|
||
<pre class="highlight"><code class="language-sh">curl --fail --silent --show-error http://127.0.0.1:8080/health</code></pre>
|
||
<h3 id="gate-b-functional-verification">Gate B — functional verification<a class="headerlink" href="#gate-b-functional-verification" title="Permanent link">¶</a></h3>
|
||
<p>Run this on at least one machine with available endpoints and credentials:</p>
|
||
<p>First follow <a href="../../operations/workspaces/">Workspace operations</a> to import/prepare the workspace
|
||
and configure the Database and local binding. The source clone does not transfer catalog data,
|
||
secrets or sessions from the Mac. Connect any VPN required by DWH/model endpoints and verify
|
||
that their names are reachable from containers too.</p>
|
||
<ol>
|
||
<li>open <code>http://127.0.0.1:8080</code>;</li>
|
||
<li>sign in with the configured local account;</li>
|
||
<li>verify that the configured workspace is readable;</li>
|
||
<li>start a real question and complete the review gates through final SQL;</li>
|
||
<li>stop and restart the installation, then run <code>verify-standalone-install.sh</code> again.</li>
|
||
</ol>
|
||
<p>A Gate B failure involving DWH, the LLM provider, workspace Git, or credentials does not by itself
|
||
prove a Docker portability problem: record the failed endpoint or component separately.</p>
|
||
<h2 id="daily-lifecycle">Daily lifecycle<a class="headerlink" href="#daily-lifecycle" title="Permanent link">¶</a></h2>
|
||
<p>Use the explicit descriptor when more than one installation may be discoverable:</p>
|
||
<pre class="highlight"><code class="language-sh">INSTALLATION="$PWD/deploy/local/thothii-installation.yaml"
|
||
|
||
tht --installation "$INSTALLATION" status
|
||
tht --installation "$INSTALLATION" start
|
||
tht --installation "$INSTALLATION" start --build
|
||
tht --installation "$INSTALLATION" logs
|
||
tht --installation "$INSTALLATION" doctor --json
|
||
tht --installation "$INSTALLATION" stop</code></pre>
|
||
<p>Use <code>start --build</code> after source changes or to rebuild images from the current checkout. <code>stop</code>
|
||
preserves volumes, sessions, the catalog, Pi state, Qdrant data, and the embedding model. Do not
|
||
use <code>docker compose down --volumes</code> during a normal test: it is destructive and removes local data.
|
||
For upgrades requiring migrations, follow the release runbook before starting the new application.</p>
|
||
<h2 id="quick-diagnosis">Quick diagnosis<a class="headerlink" href="#quick-diagnosis" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Symptom</th>
|
||
<th>Check</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>Docker Engine is not reachable</code></td>
|
||
<td>start Docker Desktop or the Docker service and rerun <code>docker info</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Windows sees Docker but Bash fails</td>
|
||
<td>run the guide inside Ubuntu WSL2 and enable that distribution in Docker Desktop</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>tht: command not found</code></td>
|
||
<td>open a new shell and check <code>command -v tht</code>; rerun the bootstrap if needed</td>
|
||
</tr>
|
||
<tr>
|
||
<td>line-ending or executable-script errors</td>
|
||
<td>use a clone in the WSL2/Linux filesystem and rerun <code>bash scripts/...</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>unsupported architecture</td>
|
||
<td>check <code>docker version --format '{{.Server.Arch}}'</code>; the test requires <code>amd64</code> or <code>arm64</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>missing descriptor or env file</td>
|
||
<td>use <code>deploy/local/...</code> generated by <code>tht setup</code>, not an arbitrary copied file</td>
|
||
</tr>
|
||
<tr>
|
||
<td>healthy stack but workflow failure</td>
|
||
<td>check external URLs, the credential bundle, workspace Git, and authentication separately</td>
|
||
</tr>
|
||
<tr>
|
||
<td>data appears missing</td>
|
||
<td>check that <code>down --volumes</code> was not used; <code>stop</code> does not remove volumes</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="acceptance-checklist">Acceptance checklist<a class="headerlink" href="#acceptance-checklist" title="Permanent link">¶</a></h2>
|
||
<ul>
|
||
<li>[ ] The clone comes from the expected Gitea repository and the revision is recorded.</li>
|
||
<li>[ ] Docker Desktop/Engine and Compose v2 are available.</li>
|
||
<li>[ ] The runtime reports an allowed architecture.</li>
|
||
<li>[ ] <code>tht</code> was built from the repository and responds to <code>tht version</code>.</li>
|
||
<li>[ ] Setup uses <code>profile: local</code>, <code>shell.mode: full</code>, and <code>shell.defaultLocale: en</code>.</li>
|
||
<li>[ ] The descriptor, <code>operator.env</code>, authentication, and secrets exist only under <code>deploy/local/</code>.</li>
|
||
<li>[ ] No secret appears in Git, URLs, public YAML, or recorded commands.</li>
|
||
<li>[ ] Gate A passes on Apple Silicon macOS, x64 Windows WSL2, and x64 Linux.</li>
|
||
<li>[ ] Gate B runs on at least one machine with DWH and LLM available.</li>
|
||
<li>[ ] Stop/start and final verification complete without deleting volumes.</li>
|
||
</ul>
|
||
<h2 id="out-of-scope-for-this-release">Out of scope for this release<a class="headerlink" href="#out-of-scope-for-this-release" title="Permanent link">¶</a></h2>
|
||
<p>The following remain future work:</p>
|
||
<ul>
|
||
<li>publishing pre-built images on Docker Hub;</li>
|
||
<li>reducing prompts through a dedicated non-interactive configuration;</li>
|
||
<li>creating DMG, MSI/EXE, AppImage, or other native installers;</li>
|
||
<li>providing an offline runtime or bundling a local DWH/LLM into the application.</li>
|
||
</ul>
|
||
<h2 id="related-documents">Related documents<a class="headerlink" href="#related-documents" title="Permanent link">¶</a></h2>
|
||
<ul>
|
||
<li><a href="../first-start/">Install and first start</a></li>
|
||
<li><a href="../shell-and-language/">Shell and localization</a></li>
|
||
<li><a href="../../operations/workspaces/">Workspace operations</a></li>
|
||
<li><code>deploy/secrets/README.md</code> (runtime secrets)</li>
|
||
</ul>
|
||
|
||
<br>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row wm-article-nav-buttons" role="navigation" aria-label="navigation">
|
||
|
||
<div class="wm-article-nav pull-right">
|
||
<a href="../shell-and-language/" class="btn btn-xs btn-default pull-right">
|
||
Next
|
||
<i class="fa fa-chevron-right" aria-hidden="true"></i>
|
||
</a>
|
||
<a href="../shell-and-language/" class="btn btn-xs btn-link">
|
||
Display mode and language
|
||
</a>
|
||
</div>
|
||
|
||
<div class="wm-article-nav">
|
||
<a href="../standalone-manual-it/" class="btn btn-xs btn-default pull-left">
|
||
<i class="fa fa-chevron-left" aria-hidden="true"></i>
|
||
Previous</a><a href="../standalone-manual-it/" class="btn btn-xs btn-link">
|
||
Mac, Windows, Linux — Italiano
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<br>
|
||
</div>
|
||
|
||
<footer class="container-fluid wm-page-content">
|
||
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a> using <a href="https://github.com/gristlabs/mkdocs-windmill">Windmill</a> theme by Grist Labs.</p>
|
||
</footer>
|
||
|
||
</body>
|
||
</html> |