Run the interface engine in your environment
MessageFoundry runs on your servers or in your private cloud. You manage the message store, encryption keys, network, and destinations your interfaces connect to.
What self-hosting means in practice
You control the message store and destinations
You install and operate the engine in your environment.
- No vendor-hosted message processor is required. You choose the destinations your interfaces connect to.
- The engine does not send message contents as telemetry.
- You hold the keys — message bodies are encrypted at rest with AES-256-GCM in your store.
Runs where your data lives
Run the engine in a data center, virtual machine, or private cloud account.
- Installs from PyPI —
pip install messagefoundry, on Python 3.14+. - Zero-config on SQLite, scaling to PostgreSQL or SQL Server for production.
- Runs headless, including as a long-lived Windows service; one config repo drives every environment.
Secure by default
- TLS enabled by default (TLS 1.2+, incl. MLLP-over-TLS); plaintext is supported for endpoints that can't do TLS, within your secure network perimeter.
- Authenticated & audited — local accounts, MFA, Active Directory, RBAC, and a tamper-evident audit trail.
- Built to recognized standards — NIST SSDF, the HIPAA Security Rule (800-66), and an OWASP ASVS Level 3 self-assessment. See the evidence →
No lock-in, no per-interface fees
- Open source under AGPL-3.0 — read every line, run as many interfaces as you like.
- No cloud subscription and no per-interface licensing — your interfaces are plain Python in your own repo.
- A low-cost commercial license is available from MessageFoundry, LLC when copyleft terms don't fit. Licensing →
Deployment topologies at a glance
Four pictures show which processes run on which host, and which network hops are encrypted. A dashed arrow is a network hop. A frame is one host, except in the TLS picture, where each frame is one case.
Single node
The engine, its API, and the web console run in one process on one server. The message store is a local SQLite file.
Message store on a remote database
The engine connects to SQL Server or PostgreSQL on another host. A deployment uses one of them, not both.
Who terminates TLS for the API
By default the engine serves TLS itself. Behind a declared reverse proxy, the last hop is plaintext unless you also set a certificate. The engine starts only after you acknowledge a plaintext hop.
Web console from another machine
An operator opens the console in a browser, with no client to install. Remote access is off by default and needs an operator certificate.
The partner systems connect over MLLP with tls = true, which you set on each Connection in the engine. The deployment and network exposure guide in the engine repository has the settings and the startup checks for each picture.
Your team manages the host, network, access, keys, backups, and recovery. Review the security responsibilities →
Related guides
Frequently asked questions
Is MessageFoundry self-hosted?
Yes. Install the engine on your servers or in your private cloud. It starts with SQLite and also supports PostgreSQL and SQL Server. You control its network connections and message destinations.
What does PHI-safe mean?
You operate the engine and message store on your infrastructure, and control its destinations. Message bodies are encrypted at rest with AES-256-GCM. The engine does not send message contents as telemetry.
Can I run MessageFoundry on-premises or in my own private cloud?
Yes. Run it in a data center, virtual machine, or private cloud account. It can run as a long-lived Windows service. One configuration repository can serve test, production, and other environments.
Does MessageFoundry support a HIPAA-compliant deployment?
MessageFoundry supports your deployment with TLS defaults, encrypted message bodies, authenticated access, and audit records. Controls map to the HIPAA Security Rule through NIST 800-66. Your organization remains responsible for its environment and compliance program. Plaintext transport exceptions require a secure network perimeter.