Files
neorelay/UPGRADING.md
T
NIA Sanitized Release Publisher 7141326ea0 Sanitized public release v1.0.3
Source-Tag: v1.0.3
Manifest-SHA256: b7b09bf48f9e092ed8ad82f99c0319d6c3837d0a1549bd0cc4a374276c0f3896
2026-07-20 22:35:36 +00:00

85 lines
3.9 KiB
Markdown

# Upgrading NeoRelay
This source kit is a complete, versioned application source set for upgrading
an existing NeoRelay deployment. It is not a deployment-specific patch and it
does not contain infrastructure configuration, credentials, or persistent
state.
## Compatibility
- Upgrade NeoBear, NeoDrop, NeoGuard, and the NeoDrop manager as one tested set.
- Preserve the existing `{{NEODROP_CRYPTO_CONTEXT}}` value exactly. Changing it
makes existing encrypted links unreadable.
- Preserve the existing NeoDrop protocol framing and all operator trust
decisions, including origins, proxy peers, source networks, and state paths.
- `scripts/customize-glowing-bear.pl` targets Glowing Bear revision
`d182657a3b882cfb54e294f9a56fbdd2954d73b0`. Test any other revision before
deployment.
- Do not replace operator-managed WeeChat, IRC, proxy, service, DNS, TLS, or
firewall configuration with values inferred from this kit.
## 1. Verify And Inventory
1. Verify the archive checksum through a trusted channel.
2. Run `sha256sum -c MANIFEST.sha256` from the extracted kit.
3. Record the currently deployed version and hashes of its rendered runtime
files and integration configuration.
4. Inventory every `{{PLACEHOLDER}}` and map it to the existing deployment's
protected source of truth. Do not select new values during an application
update unless the operator has approved a separate configuration change.
## 2. Back Up
Create and test a protected, application-consistent backup of:
- NeoDrop's database and ciphertext object tree as one coordinated snapshot;
- the encrypted manager catalog, catalog key, API token material, and verifier;
- the NeoGuard database and shared authentication key;
- WeeChat configuration, secure data, certificates, and plugin state;
- the current rendered application files and operator integration files.
Stop writers or use storage-specific atomic snapshot procedures. Preserve file
ownership and modes. Confirm that the backup can be restored before upgrading.
## 3. Render A Staging Tree
1. Extract the kit into a new temporary directory, not over the live tree.
2. Resolve placeholders from the existing protected configuration with
context-appropriate validation and escaping.
3. Supply reviewed branding assets and operator-owned integration files.
4. Recreate `MANIFEST.sha256` after rendering.
5. Confirm the rendered tree contains no unresolved placeholders, credentials,
private keys, capability URLs, state, logs, or backups.
The generic source kit intentionally contains documented placeholders. A
rendered deployment artifact must not contain any unresolved placeholders.
## 4. Test
Run the checks listed in `README.md`, compile native plugins against the target
WeeChat headers, and validate the operator's proxy and service configuration.
In staging, verify:
- an existing encrypted link still downloads and authenticates correctly;
- a new upload, metadata read, download, checksum, expiry, and deletion;
- manager catalog registration and access to existing entries;
- NeoGuard authenticated reporting and recovery;
- origin, source-address, and trusted-proxy enforcement;
- startup from a restored copy of existing persistent state.
## 5. Deploy
Install the rendered files into a versioned directory or otherwise retain the
complete previous runtime tree. Deploy the compatible browser, server, manager,
and guard components as one release. Run health checks before restoring normal
traffic or writes, then record the deployed version and rendered manifest.
## 6. Roll Back
If validation fails, isolate the new version and restore the previous runtime
files and integration configuration. Preserve the original crypto context and
credentials. Restore persistent state only if the upgrade performed
incompatible writes; restore NeoDrop metadata and ciphertext together. Verify
an existing encrypted link, manager catalog access, and component health after
rollback.