This repository provides infrastructure-as-code examples and tooling to help node operators deploy and manage xmtpd nodes. xmtpd (XMTP daemon) is the node software that powers the testnet and will power the mainnet of the decentralized XMTP network.
Each node should be configured for high availability (HA) across all required components, including the database, xmtpd, and the MLS validation service.
Database:
- 2vCPU
- 8GB RAM
- Postgres 16.0 or newer
- 20ms commit latency
- 250MB/s throughput
xmtpd:
- 2vCPU
- 2GiB memory
- 1GB/s network link
MLS validation service:
- 2vCPU
- 512MiB memory
- Helm charts - Deploy xmtpd nodes on Kubernetes clusters
- Terraform - Provision cloud infrastructure for xmtpd nodes
See Deploy xmtpd on Google Kubernetes Engine secured by SSL/TLS for a detailed guide to creating a production-ready deployment of xmtpd on GKE using NGINX Ingress Controller and Let's Encrypt certificates.
- Choose your infrastructure approach:
- Use Helm charts if you have an existing Kubernetes cluster or want to deploy on managed Kubernetes services
- Use Terraform if you need to provision the underlying cloud infrastructure
- Follow the respective README for your chosen tool
- For GKE production deployments, refer to the SSL/TLS deployment guide for securing your node
Contributions are welcome! See the contributing guidelines for details on how to get involved.