docs: add TLS setup section to README
This commit is contained in:
@@ -54,6 +54,14 @@
|
|||||||
- `muxplex upgrade` — smart version check + auto-update + service restart
|
- `muxplex upgrade` — smart version check + auto-update + service restart
|
||||||
- `muxplex config` — CLI settings management
|
- `muxplex config` — CLI settings management
|
||||||
|
|
||||||
|
### HTTPS / TLS
|
||||||
|
|
||||||
|
- `muxplex setup-tls` — set up TLS certificates for HTTPS (auto-detects best method)
|
||||||
|
- **Tailscale** *(Phase 2)* — automatic HTTPS via Tailscale funnel
|
||||||
|
- **mkcert** *(Phase 2)* — locally-trusted development certificates via mkcert
|
||||||
|
- **Self-signed fallback** — generates a self-signed cert when no other method is available
|
||||||
|
- **Clipboard API** — HTTPS is required for clipboard access in most browsers
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
@@ -140,6 +148,7 @@ muxplex upgrade [--force] Smart update with version check
|
|||||||
muxplex doctor Check dependencies + config
|
muxplex doctor Check dependencies + config
|
||||||
muxplex show-password Show current auth password
|
muxplex show-password Show current auth password
|
||||||
muxplex reset-secret Regenerate signing secret
|
muxplex reset-secret Regenerate signing secret
|
||||||
|
muxplex setup-tls [--method auto] Set up TLS certs for HTTPS
|
||||||
```
|
```
|
||||||
|
|
||||||
### Service management
|
### Service management
|
||||||
@@ -174,6 +183,22 @@ muxplex --port 9000
|
|||||||
muxplex serve --host 0.0.0.0
|
muxplex serve --host 0.0.0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### HTTPS / TLS setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Auto-detect the best TLS method and set up certificates
|
||||||
|
muxplex setup-tls
|
||||||
|
|
||||||
|
# Use self-signed certificates explicitly
|
||||||
|
muxplex setup-tls --method selfsigned
|
||||||
|
|
||||||
|
# Override TLS cert/key for a single run (without saving to config)
|
||||||
|
muxplex serve --tls-cert /path/to/cert.pem --tls-key /path/to/key.pem
|
||||||
|
|
||||||
|
# Check TLS configuration and dependencies
|
||||||
|
muxplex doctor
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@@ -197,6 +222,8 @@ All settings are stored in `~/.config/muxplex/settings.json`.
|
|||||||
| `federation_key` | `""` | Server-to-server authentication key for federation |
|
| `federation_key` | `""` | Server-to-server authentication key for federation |
|
||||||
| `remote_instances` | `[]` | Remote muxplex instances to aggregate |
|
| `remote_instances` | `[]` | Remote muxplex instances to aggregate |
|
||||||
| `multi_device_enabled` | `false` | Enable multi-instance federation |
|
| `multi_device_enabled` | `false` | Enable multi-instance federation |
|
||||||
|
| `tls_cert` | `""` | Path to TLS certificate file (empty = HTTP) |
|
||||||
|
| `tls_key` | `""` | Path to TLS private key file (empty = HTTP) |
|
||||||
|
|
||||||
**Priority:** CLI flags > `settings.json` > defaults.
|
**Priority:** CLI flags > `settings.json` > defaults.
|
||||||
|
|
||||||
|
|||||||
@@ -117,3 +117,83 @@ def test_readme_documents_hover_preview():
|
|||||||
assert "hover" in readme_lower and "preview" in readme_lower, (
|
assert "hover" in readme_lower and "preview" in readme_lower, (
|
||||||
"README must mention hover preview"
|
"README must mention hover preview"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# ── TLS / HTTPS documentation tests ───────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_has_https_tls_feature_subsection():
|
||||||
|
"""README must have an 'HTTPS / TLS' subsection under Developer Tools."""
|
||||||
|
assert "HTTPS / TLS" in README, (
|
||||||
|
"README must contain an 'HTTPS / TLS' feature subsection"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_cli_reference_includes_setup_tls():
|
||||||
|
"""README CLI Reference block must include the setup-tls command."""
|
||||||
|
assert "setup-tls" in README, (
|
||||||
|
"README CLI Reference must include 'setup-tls' command"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_configuration_table_has_tls_cert_row():
|
||||||
|
"""README Configuration table must document the tls_cert setting."""
|
||||||
|
assert "`tls_cert`" in README, (
|
||||||
|
"README Configuration table must include tls_cert row"
|
||||||
|
)
|
||||||
|
assert "Path to TLS certificate" in README or "TLS certificate file" in README, (
|
||||||
|
"README must describe tls_cert as a TLS certificate path"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_configuration_table_has_tls_key_row():
|
||||||
|
"""README Configuration table must document the tls_key setting."""
|
||||||
|
assert "`tls_key`" in README, (
|
||||||
|
"README Configuration table must include tls_key row"
|
||||||
|
)
|
||||||
|
assert "Path to TLS private key" in README or "TLS private key file" in README, (
|
||||||
|
"README must describe tls_key as a TLS private key path"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_examples_show_tls_commands():
|
||||||
|
"""README examples must show TLS setup commands."""
|
||||||
|
assert "setup-tls" in README, (
|
||||||
|
"README must show setup-tls in its examples"
|
||||||
|
)
|
||||||
|
# Check that the examples demonstrate at least the basic setup-tls usage
|
||||||
|
assert "muxplex setup-tls" in README, (
|
||||||
|
"README examples must show 'muxplex setup-tls' command"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_phase_2_items_noted():
|
||||||
|
"""README must note Phase 2 items (Tailscale, mkcert) as upcoming."""
|
||||||
|
assert "Tailscale" in README, (
|
||||||
|
"README must mention Tailscale as a Phase 2 TLS method"
|
||||||
|
)
|
||||||
|
assert "mkcert" in README, (
|
||||||
|
"README must mention mkcert as a Phase 2 TLS method"
|
||||||
|
)
|
||||||
|
assert "Phase 2" in README, (
|
||||||
|
"README must note Phase 2 items as upcoming"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_tls_cert_has_empty_default():
|
||||||
|
"""README must show tls_cert default as empty string."""
|
||||||
|
# The config table must show the empty string default for tls_cert
|
||||||
|
assert "`tls_cert`" in README, "README must document tls_cert"
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_tls_key_has_empty_default():
|
||||||
|
"""README must show tls_key default as empty string."""
|
||||||
|
# The config table must show the empty string default for tls_key
|
||||||
|
assert "`tls_key`" in README, "README must document tls_key"
|
||||||
|
|
||||||
|
|
||||||
|
def test_readme_tls_setup_tls_entry_with_method_flag():
|
||||||
|
"""README CLI Reference must show setup-tls with --method flag."""
|
||||||
|
assert "--method" in README, (
|
||||||
|
"README must document the --method flag for setup-tls"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user