Copyright (C) 2026 Doan Luu Duc Tai This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . PROJECT CONVENTIONS License: GNU Affero General Public License, version 3 or later. SPDX identifier: AGPL-3.0-or-later. Copyright holder: Doan Luu Duc Tai , 2026. Every nontrivial first-party source, configuration, template, and prose file carries the AGPL copyright and permission header. LICENSE is the unmodified license text. Binary public keys and empty WKD policy files retain their protocol format. Generated Cargo.lock retains Cargo's own metadata as well as the project notice. Do not add explanatory source comments. Express intent through structure and names. Legal headers are the required exception. Use .txt for prose documentation. The generated HTML license page is an explicit exception. Rust documentation attributes provide crate metadata without comments. Keep configured secrets only in the root .env. Never commit .env or var/. Only the root .env.example is published; environment variants and nested examples are ignored. .env.example lists required keys with placeholders. Public hostnames, public GPG keys, paths, configuration, and source belong in Git. TLS account/certificate private keys, databases, and other generated private state are persistent data in var/data, not .env configuration. The GPG secret key and revocation certificate remain outside this project. STRICTNESS Preserve the requested Rust and Clippy deny groups, including pedantic and nursery. The one additional exception is redundant_pub_crate: its advice to make internal binary items public conflicts with unreachable_pub, which remains denied. Internal interfaces remain explicitly crate-private. No unsafe code, unwrap, expect, todo, debug output, arithmetic shortcuts, or broad warning suppression is introduced. cargo-deny rejects duplicate crate versions, wildcard requirements, unknown registries, unknown Git sources, and yanked versions. There are no duplicate version skip exceptions. Its AGPL allowance is scoped to this package. The dependency allowlist retains the requested permissive licenses and Zlib; an unused allowance may produce an informational audit warning. Human license names follow https://www.gnu.org/licenses/license-list.html. In particular, display Expat License for SPDX MIT. Do not alter original copyright notices, legal texts, crate metadata, or machine SPDX identifiers. cargo-about covers Rust dependencies. Supporting container applications and their operating-system packages carry additional upstream licenses. PORTABILITY All first-party project files and state live below stack/. Standard host integration consists of packages, subordinate UID/GID allocations, one low-port sysctl setting, user linger, and a systemd user-service link. Host SSH keys, firewall policy, accounts, and disks are host administration, not application export contents. Releases currently contain a static x86_64 Linux command and native linux/amd64 container images. They are portable across compatible x86_64 Linux machines. An ARM machine needs a native release build; the command rejects mismatched production images. Development mode may fetch/build native images on an architecture mismatch. Container source and Rust source are public so new targets can be added without restoring an OS.