Skip to content

Production Checklist

Use this checklist to verify your Mantis deployment is ready for production.

  • Changed default admin password
  • JWT secret is cryptographically random (32+ characters)
  • JWT private key is secured (file permissions 400)
  • Session tokens have appropriate expiry
  • Valid TLS certificates installed (not self-signed)
  • mTLS enabled for client authentication
  • Registration tokens created with auto_approve disabled (new clients reviewed before approval)
  • Certificate expiration monitoring configured
  • CA private key stored securely (HSM or secrets manager)
  • MANTIS_ENCRYPTION_KEY is a secure 32-byte base64 value
  • Encryption key stored in secrets manager (not in .env)
  • Key rotation procedure documented
  • RBAC roles configured appropriately
  • Principle of least privilege applied
  • Admin accounts limited and audited
  • SSO/OIDC configured (if applicable)
  • Log level set to info for all services (not debug/trace): RUST_LOG=info for Mandible, MANTIS_LOG_LEVEL=info for Thorax, TARSUS__LOG_LEVEL=info for Tarsus
  • Lens production build served (no dev server, source maps disabled)
  • CORS origins restricted to actual domains
  • All default passwords changed
  • External/managed PostgreSQL (not containerized)
  • Connection pooling configured appropriately
  • SSL/TLS enabled for database connections
  • Database credentials in secrets manager
  • External/managed RabbitMQ (not containerized)
  • TLS enabled for all connections
  • Queue credentials secured
  • External/managed Redis (not containerized)
  • AUTH password configured
  • TLS enabled (if supported)
  • Only Lens, Mandible, and Thorax exposed externally
  • Database/RabbitMQ/Redis on internal network only
  • Firewall rules configured
  • Rate limiting enabled
  • TLS termination configured
  • X-Forwarded headers passed correctly
  • DDoS protection enabled
  • Request size limits configured
  • Multiple Thorax instances for HA (if needed)
  • Load balancer configured
  • Health checks configured
  • Health endpoints monitored
  • Prometheus metrics collected
  • Alerting configured for critical issues
  • Certificate expiration alerts
  • Centralized logging configured
  • Log retention policy defined
  • Audit logs enabled and monitored
  • No sensitive data in logs
  • Database backup schedule configured
  • Backup restoration tested
  • CA certificate/key backed up securely
  • Disaster recovery plan documented
  • Audit logging enabled
  • Audit log retention policy defined
  • Audit log integrity verification enabled
  • Runbooks for common operations
  • Incident response procedures
  • Contact information documented
Terminal window
# Verify all services are healthy
./docker.sh health
# Check for security misconfigurations
# (Review the output carefully)
curl -s https://your-domain/api/v1/health | jq