42 lines
2.9 KiB
Markdown
42 lines
2.9 KiB
Markdown
# RustProxy 0.27.1 implementation note
|
|
|
|
## Scope
|
|
|
|
0.27.1 improves first-run administration, makes ACME/Certbot setup independent of one distribution packaging layout, and adds per-user list sorting to the main routing views. SQLite remains schema 8; the saved administrator-preference document gains only defaulted fields.
|
|
|
|
## First administrator
|
|
|
|
The initial login/setup screen now shows a directly runnable token command for the default data path:
|
|
|
|
```bash
|
|
rust-proxy --data-dir ./data admin setup-token
|
|
```
|
|
|
|
A standard service-installation example is shown below it:
|
|
|
|
```bash
|
|
rust-proxy --data-dir /var/lib/rustproxy admin setup-token
|
|
```
|
|
|
|
This removes the previous `DATA_DIR` placeholder from the primary command while still documenting the installed-service path.
|
|
|
|
## Managed certificate runtime
|
|
|
|
RustProxy now prefers a private Python environment at `<data-dir>/acme-python`. On startup, and again on demand before an ACME job, it validates that environment and initializes it when missing. The managed environment pins Certbot 5.8.0 plus the Cloudflare, OVH and RFC2136 plugins.
|
|
|
|
Initialization first uses the available `python3`/`python` stdlib `venv`. If a distribution separates `venv` but provides pip, RustProxy installs `virtualenv` only into a temporary directory below its own data directory and uses it to create the managed environment; it does not modify distribution-owned site-packages. The managed environment receives its own pip packages.
|
|
|
|
If managed setup cannot be completed, RustProxy tests a distribution `certbot` from `PATH` and uses it as the fallback when runnable. If Python is unavailable, or neither managed nor system Certbot can be used, the Certificates panel shows an unavailable state and a specific diagnostic. Manual PEM import and use of existing certificate files remain independent of the ACME runtime. This makes minimal systems, including appliances that intentionally omit Python/pip, fail visibly instead of silently.
|
|
|
|
## List sorting
|
|
|
|
The administrator preference document now stores sort column and direction separately for ordinary vhosts, Docker vhosts, 404 hosts and streams. Each page exposes only columns meaningful to that feature and reuses the backend-table column/direction selection pattern. Preferences are account-scoped and reapplied when the administrator session/preferences are loaded.
|
|
|
|
## Compatibility
|
|
|
|
No SQLite migration is required. Schema 8 remains current. Existing saved configuration continues to load; missing sort preferences receive defaults. Historical distribution Certbot packages remain useful as an offline/runtime fallback, while the application-owned environment is the preferred path.
|
|
|
|
## Verification limitation
|
|
|
|
This workspace does not provide Cargo/Rust, so compiler/type/Clippy/unit-test gates must still be run on a Rust-enabled release host. Rust-independent source, JavaScript, documentation, packaging and Go-agent checks are tracked in [TEST_REPORT](TEST_REPORT.md).
|