summaryrefslogtreecommitdiff
path: root/docs/OPERATIONS.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/OPERATIONS.txt')
-rw-r--r--docs/OPERATIONS.txt45
1 files changed, 31 insertions, 14 deletions
diff --git a/docs/OPERATIONS.txt b/docs/OPERATIONS.txt
index 2cf4693..5b1da25 100644
--- a/docs/OPERATIONS.txt
+++ b/docs/OPERATIONS.txt
@@ -103,8 +103,11 @@ EXPORT AND BACK UP PRODUCTION
cd ~/stack
./bin/stack backup --include-images
- The command briefly pauses the three services while copying consistent
+ The command briefly pauses Caddy, cgit, and SearXNG while copying their
application files, then resumes them before compression and encryption.
+ Chat remains unpaused so SQLite online backups can complete during active
+ writes. Consistent snapshots cover both chat and chat-local databases; raw
+ SQLite journals and server lock files are excluded.
It uses the published public key, verifies the recipient fingerprint,
checks bare Git repositories, saves exact images, and produces:
@@ -261,8 +264,9 @@ MAKE AND DEPLOY A RELEASE
cd ~/stack
cargo stack release
- Release reruns the full check, builds a static Rust binary locally,
- builds the cgit container locally, and packages the configured image set.
+ Release reruns the full check, builds static Rust management and chat
+ binaries plus the browser WASM module, packages corresponding sources,
+ builds cgit/chat containers locally, and saves the configured image set.
Outputs are dist/stack-release-TIMESTAMP.tar.gz and its .sha256 file.
No .env, live data, .git history, or previous backup is included.
@@ -291,8 +295,16 @@ MAKE AND DEPLOY A RELEASE
cd ~/stack/var/incoming
sha256sum -c stack-release-TIMESTAMP.tar.gz.sha256
cd ~/stack
- ./bin/stack activate var/incoming/stack-release-TIMESTAMP.tar.gz
+ mkdir -p var/incoming/bootstrap
+ tar -xzf var/incoming/stack-release-TIMESTAMP.tar.gz -C var/incoming/bootstrap stack/bin/stack
+ var/incoming/bootstrap/stack/bin/stack --root "$PWD" activate var/incoming/stack-release-TIMESTAMP.tar.gz
./bin/stack status
+ rm -rf -- var/incoming/bootstrap
+
+ Use the management binary from the verified new release for activation.
+ Older binaries can reject a new service schema before installing it. This
+ bootstrap path handles the upgrade from three services to the chat-enabled
+ release without installing a compiler or overwriting private configuration.
Activation verifies the release and platform, replaces public source and
the binary, loads exact images, preserves .env and var/data, and replaces
@@ -310,9 +322,11 @@ RECOVERY LIMITS AND SECRET ROTATION
Changing CPU architecture requires a native release build. Registry access
is needed only when images are omitted or rebuilding for another target.
- Current persistent state is files, Git repositories, and Caddy state.
- When adding a database, add its supported flush/dump procedure to the
- export workflow and test recovery before relying on that database's backup.
+ Current persistent state includes files, Git repositories, Caddy state,
+ and encrypted chat records in SQLite. Chat uses the SQLite online backup
+ API; recovery testing must reopen both participants' unchanged identity
+ files and decrypt history. See CHAT-PRODUCTION.txt for this release's tests.
+ Future databases need their own supported snapshot and recovery procedure.
If changing the OpenPGP backup recipient, publish its public key, update
the command's default fingerprint, and test encryption and restoration.
@@ -324,11 +338,14 @@ RECOVERY LIMITS AND SECRET ROTATION
The current command intentionally accepts only its verified format-2
archives. Fresh format-2 production backups replace the normal workflow.
-LICENSE PAGE IN CGIT
+CENTRAL THIRD-PARTY LICENSE PAGE
+
+ cargo-about generates web/THIRD-PARTY-LICENSES.html. Caddy serves the rendered
+ document at https://doan.luuduct.ai/THIRD-PARTY-LICENSES.html, using the
+ configured SITE_HOST for other deployments. Website and chat license links
+ use that same canonical page. Local previews use the local main-site origin.
- The stack repository's About tab renders only
- web/THIRD-PARTY-LICENSES.html. Source and Raw links retain the normal cgit
- views and preserve revision queries. Other files are not rendered as HTML.
- The rendered document is isolated in a sandboxed frame, with scripts and
- external resources blocked. The standalone website license page remains
- available at /THIRD-PARTY-LICENSES.html.
+ cgit no longer has a custom license renderer, Lua filter, or license About
+ tab. The generated file remains accessible through its normal Source and Raw
+ views in the repository. The old chat /THIRD-PARTY-LICENSES.html URL redirects
+ to the canonical site page. Source exports retain license texts for offline use.