105 lines
5.9 KiB
Markdown
105 lines
5.9 KiB
Markdown
# Pubblicare immagini e pacchetto operatore / Publish images and operator bundle
|
|
|
|
## Italiano
|
|
|
|
Questo comando è riservato al manutentore. L'utente finale scarica il pacchetto e
|
|
le immagini già compilati. La prima prerelease riguarda **Linux amd64**, utilizzato
|
|
da Ubuntu WSL2 su Windows e successivamente da Omarchy; non certifica ancora il
|
|
percorso completo di installazione o i collaudi manuali.
|
|
|
|
Prerequisiti del manutentore: Git, Node 24/npm, Go indicato in `tools/tht/go.mod`,
|
|
Docker con Buildx e capacità di eseguire Linux amd64, `tar`. Bun viene installato
|
|
dal lock npm e serve soltanto per compilare il pacchetto. Il commit da pubblicare
|
|
deve essere già disponibile sul repository Gitea pubblico.
|
|
Eseguire il produttore su Linux, WSL2 o macOS; la shell Windows nativa non è supportata.
|
|
|
|
La prima [prerelease Linux amd64](https://git.tylconsulting.it/mptyl/ThothII/releases/tag/installation-v0.1.0-install-preview.1)
|
|
è disponibile: `0.1.0-install-preview.1`, con immagini pubbliche
|
|
[core](https://hub.docker.com/r/tylconsulting/thothii-core) e
|
|
[frontend](https://hub.docker.com/r/tylconsulting/thothii-frontend).
|
|
|
|
1. Eseguire `docker login` sul computer di pubblicazione con un account autorizzato
|
|
a creare repository pubblici e pubblicare immagini nel namespace scelto.
|
|
Usare un credential store Docker: il token non va passato sulla riga di comando,
|
|
scritto nel repository o copiato nel pacchetto.
|
|
2. Predisporre nel credential helper Git l'accesso al repository Gitea con diritto
|
|
di creare rilasci e allegati. Il comando riusa quelle credenziali senza stamparle.
|
|
3. Installare le dipendenze del produttore con `cd backend && npm ci`, poi eseguire:
|
|
|
|
```bash
|
|
node scripts/publish-installation.mjs \
|
|
--revision COMMIT_GIA_PUBBLICATO \
|
|
--version 0.1.0-install-preview.1 \
|
|
--namespace tylconsulting \
|
|
--platforms linux/amd64 \
|
|
--output /percorso/privato/rilascio-0.1.0-install-preview.1
|
|
```
|
|
|
|
La directory di output deve essere nuova o vuota e avere un genitore esistente.
|
|
Diventa privata e contiene stato di ripresa, log del produttore, archivi e checksum.
|
|
Non è una directory di installazione. Il produttore usa un worktree temporaneo al
|
|
commit richiesto, così modifiche locali, segreti e workspace non entrano nelle build.
|
|
|
|
Il comando prepara `tylconsulting/thothii-core` e `tylconsulting/thothii-frontend`
|
|
come repository pubblici, costruisce e pubblica le immagini versionate, risolve i
|
|
digest di tutte le immagini e crea gli archivi del comando nativo con Compose e
|
|
risorse di inizializzazione. Catalog migration e workspace maintenance usano lo
|
|
stesso digest core. PostgreSQL, Qdrant e Ollama restano immagini upstream.
|
|
|
|
Prima di rendere pubblico il rilascio Gitea, vengono verificati pull anonimi delle
|
|
immagini, smoke test senza rete di core/frontend, checksum e download degli allegati.
|
|
Una build o un upload incompleto lascia il rilascio **in bozza**. Per riprovare,
|
|
rieseguire lo stesso comando con gli stessi parametri e la stessa directory.
|
|
Immagini già presenti devono appartenere allo stesso commit/versione; allegati
|
|
esistenti devono avere lo stesso checksum. Il produttore non sostituisce versioni
|
|
pubblicate con contenuti diversi. Conservare la directory fino al completamento.
|
|
|
|
Il risultato pubblico comprende `thothii-VERSION-linux-amd64.tar.gz` e
|
|
`SHA256SUMS.txt`. L'archivio contiene `bin/tht`, il validatore affiancato,
|
|
`release-manifest.json`, Compose, SQL/script di inizializzazione e guide. Non
|
|
contiene credenziali, dati dei workspace o database di esempio. La verifica su
|
|
questa macchina di pubblicazione non sostituisce il successivo collaudo Windows.
|
|
|
|
## English
|
|
|
|
This is a maintainer command. Consumers download precompiled images and the native
|
|
operator bundle. The first prerelease targets **Linux amd64** for Ubuntu WSL2 and
|
|
later Omarchy; full installation and real-host acceptance remain separate work.
|
|
|
|
The maintainer needs Git, Node 24/npm, the Go toolchain from `tools/tht/go.mod`,
|
|
Docker Buildx with Linux amd64 execution support, and `tar`. The npm lock supplies
|
|
Bun for producer builds only. Push the selected source commit to the public Gitea
|
|
repository before publication. Use Docker's credential store for `docker login`
|
|
and Git's credential helper for Gitea release/attachment permissions. Never pass
|
|
tokens as command arguments or include them in a checkout or archive.
|
|
Run the producer on Linux, WSL2 or macOS, not a native Windows shell.
|
|
|
|
The first [Linux amd64 prerelease](https://git.tylconsulting.it/mptyl/ThothII/releases/tag/installation-v0.1.0-install-preview.1)
|
|
is available as `0.1.0-install-preview.1`, with public Docker Hub core/frontend images.
|
|
|
|
From `backend`, run `npm ci`, then the command above with an explicit revision,
|
|
version, namespace, platforms and a new private output directory. A temporary Git
|
|
worktree isolates the selected commit. The producer publishes core/frontend to
|
|
Docker Hub and retains PostgreSQL, Qdrant and Ollama upstream. All runtime and
|
|
maintenance services use resolved immutable platform digests.
|
|
|
|
The Gitea release stays a draft until images, anonymous pulls, network-isolated
|
|
smoke checks and uploaded bundle checksums pass. An interrupted run can be retried
|
|
with the same arguments and output directory. Existing images must match the
|
|
source/version, and existing attachments must match their checksum; published
|
|
versions are not overwritten. Producer logs and retry state stay local.
|
|
|
|
Download the matching `.tar.gz` and `SHA256SUMS.txt` from the public Gitea prerelease,
|
|
verify the archive checksum, then extract it. Keep the two executables together.
|
|
The bundle needs no application checkout, Node, Bun, Python or compiler on the
|
|
consumer host. It carries the manifest, Compose and initialization assets, but no
|
|
installation credentials, workspace data or example databases. Linux arm64 can be
|
|
selected explicitly for later release work; it does not imply macOS acceptance.
|
|
|
|
Developer regression checks:
|
|
|
|
```bash
|
|
cd backend
|
|
node --test scripts/release-*.test.mjs
|
|
```
|