mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-10 22:43:37 +00:00
Reframe the deployment docs around the actual product story: Fabro runs as a server, and the only deployment question is where that server runs (laptop vs self-hosted Docker). Drop the Render, Fly.io, and DigitalOcean guides and their config files; keep Railway as the managed shortcut. - New: administration/deployment.mdx (overview, two-mode framing) - New: administration/self-host-docker.mdx (compose-first how-to) - Move: administration/deploy-server.mdx -> reference/server-operations.mdx (it was operational reference, not deploy guidance) - Delete: deploy-render.mdx, deploy-fly-io.mdx, deploy-digital-ocean.mdx - Delete: render.yaml, fly.toml, railway.toml, Dockerfile.deploy - docker-compose.yaml: load .env if present so users can drive the stack from a single env file end-to-end - Update internal links and the docs-test that pinned the old path
70 lines
2.5 KiB
Rust
70 lines
2.5 KiB
Rust
use crate::helpers::read_repo_file as read_doc;
|
|
|
|
#[test]
|
|
fn active_server_docs_describe_the_unix_socket_default() {
|
|
let architecture = read_doc("docs/public/reference/architecture.mdx");
|
|
assert!(
|
|
architecture.contains("~/.fabro/fabro.sock"),
|
|
"architecture doc should mention the default Unix socket bind"
|
|
);
|
|
|
|
let api_overview = read_doc("docs/public/api-reference/overview.mdx");
|
|
assert!(
|
|
api_overview.contains("~/.fabro/fabro.sock"),
|
|
"API overview should mention the default Unix socket bind"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn security_doc_does_not_require_jwt_keys_for_the_current_web_flow() {
|
|
let security = read_doc("docs/public/administration/security.mdx");
|
|
assert!(
|
|
security.contains("SESSION_SECRET"),
|
|
"security doc should still mention the session secret"
|
|
);
|
|
assert!(
|
|
!security.contains("FABRO_JWT_PRIVATE_KEY"),
|
|
"security doc should not mention removed JWT key settings"
|
|
);
|
|
assert!(
|
|
!security.contains("FABRO_JWT_PUBLIC_KEY"),
|
|
"security doc should not mention removed JWT key settings"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn server_operations_doc_links_to_the_cli_target_section_slug() {
|
|
let server_operations = read_doc("docs/public/reference/server-operations.mdx");
|
|
assert!(
|
|
server_operations.contains("/reference/user-configuration#cli-target-section"),
|
|
"server-operations doc should link to the Mintlify slug for the [cli.target] section"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn changelog_marks_removed_mutual_tls_as_historical() {
|
|
let changelog = read_doc("docs/public/changelog/2026-03-03.mdx");
|
|
assert!(
|
|
changelog.contains("removed inbound mutual TLS listener support"),
|
|
"historical changelog should clarify that inbound mutual TLS is no longer supported"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn github_docs_describe_webhooks_as_strategy_dependent() {
|
|
let github = read_doc("docs/public/integrations/github.mdx");
|
|
assert!(
|
|
!github.contains("enables browser OAuth and webhooks"),
|
|
"GitHub integration docs should not imply app auth alone enables webhook delivery"
|
|
);
|
|
assert!(
|
|
!github.contains("| Webhooks | No | Yes |"),
|
|
"GitHub strategy matrix should describe webhook delivery as strategy-dependent"
|
|
);
|
|
|
|
let server_configuration = read_doc("docs/public/administration/server-configuration.mdx");
|
|
assert!(
|
|
!server_configuration.contains("enables the GitHub App flow, browser OAuth, and webhooks"),
|
|
"server configuration docs should not imply app auth alone enables webhook delivery"
|
|
);
|
|
}
|