On this page

Self-hosting Guide

Installation and operations for authorized Aevyra administrators.

Self-hosting prerequisites

Obtain the complete authorized release and its deployment configuration instructions. A source-review export is not an installable distribution: it can omit required configuration, assets, dependencies, and services.

Prepare:

The bundled enterprise SSO runtime installer specifically requires Linux x86-64, Python 3.12, /usr/bin/xmlsec1 with its OpenSSL backend, and the supplied verified offline SSO wheelhouse. This is a narrower requirement than the base Python runtime.

Capacity depends on selected services, evidence volume, and concurrent assessments. Validate sizing with representative authorized workloads before production use.

Install the runtime

Run from the complete release directory. The following installs the base environment; it does not provision production databases, identity registrations, proxy configuration, or application services.

bash scripts/install.sh
source .venv/bin/activate

For deployments using the optional connectors:

CRYPTO_AGILITY_INSTALL_CONNECTORS=1 bash scripts/install.sh

For deployments requiring the bundled enterprise SSO runtime, first meet its platform prerequisites, then use a Python 3.12 interpreter:

PYTHON=python3.12 CRYPTO_AGILITY_INSTALL_SSO=1 bash scripts/install.sh

Use the release's deployment instructions to configure and supervise the API and evidence worker. Both must use the intended environment and compatible release. Installing dependencies alone does not enable asynchronous collection.

Configure production services

Keep credentials in protected service environment files or an approved secret manager. Keep passwords, private keys, API keys, connector tokens, and webhook signing secrets out of browser assets, deployment exports, reports, and source control.

Use the supplied configuration profile for persistent state and evidence storage. The launcher checks for required production backends and can refuse startup when development-only stores are selected. Resolve the reported configuration requirement rather than bypassing it for a public deployment.

For Microsoft connections, configure the approved application registration, callback URL, certificate credentials, SQL connection storage, and Redis authorization transaction storage required by the release. SSO login permission and evidence-collection permission are separate approvals.

Configure SMTP if using mailbox verification or password recovery. Configure billing only where your deployment requires it. Keep test and live billing environments separate.

Network and startup

Serve the web application and its /v1/ API through the configured HTTPS origin. Keep the application listener private. The default listener is 127.0.0.1:8443 and uses HTTP behind TLS termination; the port number does not imply HTTPS.

With production configuration already loaded into the service environment, the API entry point is:

.venv/bin/python scripts/run-control-plane.py

For a deployment using the default local listener, check basic API reachability with:

curl --fail http://127.0.0.1:8443/v1/health

Do not expose local setup wizards or worker validation probes publicly. If your deployment uses the separate local setup workflow, launch it with the installed interpreter:

PYTHON="$PWD/.venv/bin/python" bash scripts/setup-client-web.sh

This local setup tool is separate from the hosted customer application. Follow the release-specific instructions for generated configuration, worker enrollment, signing, and verification where required.

Validate before onboarding users

Verify HTTPS access, the correct workspace after login, email verification/recovery where enabled, approved connector consent, worker operation, and a representative evidence collection followed by report generation. Review the report's scope and unknowns.

Test that unapproved access is rejected. Confirm backup recovery and monitoring. Rehearse paid billing in an isolated test deployment where applicable; live Checkout creates a real subscription and charge.

The basic health endpoint reports API availability. The local health script checks Python and required directories:

.venv/bin/python scripts/health-check.py

Neither check alone proves that the database, worker, identity provider, email, connectors, or end-to-end reporting are working.

Operate, update, and recover

Monitor service availability, failed collection jobs, authentication errors, storage capacity, email delivery, backup failures, and credential/certificate expiry. Protect logs and avoid recording secrets or complete evidence payloads.

Back up all persistent state required by your deployment, including application configuration, databases, evidence storage, and necessary recovery material. Protect recovery keys separately under your secret-management policy. A filesystem backup alone may not cover external services. Regularly restore into an isolated environment and verify usability.

Before an update, record the current release and take a verified backup. Install the approved release into a separate directory or environment, validate configuration compatibility and end-to-end behavior, then switch the supervised services. Retain the previous release and a compatible recovery point. Dependency installation alone is not a complete application upgrade.

Set explicit retention policies for evidence, reports, and audit records. Log or demonstration cleanup settings do not automatically define customer evidence retention. Preserve records needed for incident response or legal requirements.

Troubleshooting

Symptom First checks
Verification or recovery email does not arriveCheck spam, the supplied address, SMTP configuration, and delivery failures.
SSO failsCheck provider configuration, callback URL, domain setup, certificate validity, and the enabled SSO runtime.
Connection succeeds but collection failsReview selected scope, read permissions, service availability, job status, and worker logs. Login alone is not evidence.
Website checks are unavailableCheck the authorized domain, public DNS, reachability, and the reported collection error.
Report coverage is lowReview unknown or unsupported checks and add approved evidence sources where available.
Collection is blocked after paymentRefresh subscription status and review payment confirmation and workspace allowances.
API refuses startupRead the configuration error and verify production backends, secret access, and required dependencies.
API is reachable but jobs remain pendingCheck the evidence worker and its queue/storage configuration.

When requesting support, include the release version, time of failure, affected workflow, job or assessment reference, and sanitized error message. Remove credentials, personal data, customer evidence payloads, and private configuration before sharing diagnostics.

Distribution and licensing

Use Aevyra under the license and agreement supplied with your authorized distribution. Consult those terms for installation, permitted use, redistribution, and support obligations. This README does not grant additional rights or disclose the proprietary assessment implementation.