{"id":44728458,"url":"https://github.com/pulak-ranjan/kumomta-ui","last_synced_at":"2026-02-15T18:04:54.665Z","repository":{"id":327956717,"uuid":"1112232154","full_name":"pulak-ranjan/kumomta-ui","owner":"pulak-ranjan","description":"The simpliest UI for kumoMTA.. ready for bulk email sending.","archived":false,"fork":false,"pushed_at":"2026-01-30T10:18:29.000Z","size":17308,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-31T02:30:21.256Z","etag":null,"topics":["bulk-email-sender","email-marketing","kumomta","kumomta-ui","mail-server","mta","ui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pulak-ranjan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-08T10:38:28.000Z","updated_at":"2026-01-30T10:28:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pulak-ranjan/kumomta-ui","commit_stats":null,"previous_names":["pulak-ranjan/kumomta-ui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pulak-ranjan/kumomta-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulak-ranjan%2Fkumomta-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulak-ranjan%2Fkumomta-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulak-ranjan%2Fkumomta-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulak-ranjan%2Fkumomta-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulak-ranjan","download_url":"https://codeload.github.com/pulak-ranjan/kumomta-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulak-ranjan%2Fkumomta-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bulk-email-sender","email-marketing","kumomta","kumomta-ui","mail-server","mta","ui"],"created_at":"2026-02-15T18:04:54.073Z","updated_at":"2026-02-15T18:04:54.653Z","avatar_url":"https://github.com/pulak-ranjan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KumoMTA UI\n\n![Version](https://img.shields.io/badge/version-2.2.0-blue.svg) ![License](https://img.shields.io/badge/license-Apache%202.0-green.svg) ![Status](https://img.shields.io/badge/status-production--ready-purple.svg)\n\nA modern, mobile-responsive control panel for KumoMTA. Manage domains, monitor queues, rotate IPs, and secure your infrastructure with a beautiful React frontend and a robust Go backend.\n\n---\n\n## ✨ Key Features\n\n### 🎨 Modern UI (v2.1)\n- **Responsive Design:** Fully mobile-friendly layout with collapsible sidebars.\n- **Theming:** Seamless Dark/Light mode switching (system sync).\n- **Visuals:** Professional styling with Lucide icons and glass-morphism effects.\n- **Terminal Viewer:** Real-time log streaming with a code-editor feel.\n\n### 🛡️ Advanced Security\n- **Two-Factor Authentication (2FA):** TOTP support (Google Authenticator/Authy).\n- **Security Audits:** Automated scans for file permissions and exposed ports.\n- **Blacklist Monitoring:** Hourly checks against Spamhaus and Barracuda RBLs.\n- **Audit Logging:** Tracks every administrative action (Create/Update/Delete).\n\n### ⚙️ Core Management\n- **Domain \u0026 Sender CRUD:** Manage identities with DKIM auto-generation.\n- **IP Inventory:** Track and rotate server IPs easily.\n- **Queue Management:** Flush queues, delete messages, and view granular status.\n- **Config Generator:** Auto-generate `init.lua`, `sources.toml`, and more.\n\n### 📬 Deliverability Engine (v2.2)\n- **Envelope-From Separation:** Automatic per-sender bounce isolation (`a1@a1.domain.com`).\n- **ISP Traffic Shaping:** Built-in rate limits for Gmail, Microsoft, Yahoo to prevent throttling.\n- **SMTP Auth (3-Param):** Correct `smtp_server_auth_plain` with TLS on ports 25/587/465.\n- **DKIM Identity Signing:** Per-sender selectors with `List-Unsubscribe-Post` support.\n- **Header Scrubbing:** Removes fingerprinting headers, injects clean Received headers.\n\n### 🔔 Automation \u0026 Alerts\n- **Webhooks:** Native integration with **Slack** and **Discord**.\n- **Daily Reports:** Automated traffic summaries sent every 24 hours.\n- **Bounce Alerts:** Real-time notifications when bounce rates exceed thresholds.\n\n---\n\n## 🛠️ Prerequisites\n\nBefore installing, ensure your server meets these requirements:\n\n- **OS:** Rocky Linux 9 (Recommended) or AlmaLinux 9.\n- **Access:** Root (`sudo -i`) privileges.\n- **KumoMTA:** Must be installed (`/opt/kumomta`).\n- **Dependencies:**\n  - `git`\n  - `curl`\n  - `nginx` (for reverse proxy)\n  - `certbot` (for SSL)\n\n---\n\n## 🚀 Installation Guide\n\n### Option A: Auto-Installer (Recommended)\n\nThis script installs Go, Node.js, Nginx, SSL (Certbot), and sets up the systemd service automatically.\n\n```bash\n# 1. Update your system\nsudo dnf update -y\n\n# 2. Install Git\nsudo dnf install -y git\n\n# 3. Clone the repository\nsudo mkdir -p /opt/kumomta-ui\nsudo git clone https://github.com/pulak-ranjan/kumomta-ui.git /opt/kumomta-ui\ncd /opt/kumomta-ui\n\n# 4. Run the installer\nsudo bash scripts/install-kumomta-ui-rocky9.sh\n```\n\n### Option B: Manual Build (Step-by-Step)\n\nIf you prefer to configure the environment yourself or are developing locally:\n\n#### 1. Backend Setup\n\n```bash\n# Install Go\nsudo dnf install -y golang\n\n# Create DB Directory\nexport DB_DIR=/var/lib/kumomta-ui\nsudo mkdir -p $DB_DIR\nsudo chmod 700 $DB_DIR\n\n# Build Binary\ncd /opt/kumomta-ui\ngo mod tidy\ngo build -o kumomta-ui-server ./cmd/server\n```\n\n#### 2. Frontend Setup\n\n```bash\n# Install Node.js 20\nsudo dnf module install -y nodejs:20\n\n# Build Static Files\ncd web\nnpm install\nnpm run build\n# The build will be in ./dist\n```\n\n#### 3. Run Service\n\n```bash\n# Set DB path and run\nexport DB_DIR=/var/lib/kumomta-ui\n./kumomta-ui-server\n```\n\n---\n\n## 📖 Documentation\n\n| Document | Description |\n|----------|-------------|\n| [DNS Setup Guide](docs/DNS-SETUP.md) | Complete DNS configuration — SPF, DKIM, DMARC, sender subdomains, PTR records |\n| [Deliverability Guide](docs/DELIVERABILITY.md) | Envelope-from separation, ISP shaping, bounce management, warmup, SMTP client setup |\n| [API Reference](docs/API.md) | Full REST API documentation for all endpoints |\n| [Changelog](docs/CHANGELOG.md) | Version history and release notes |\n| [Security Policy](docs/SECURITY.md) | Security features, deployment recommendations, vulnerability reporting |\n| [Contributing](docs/CONTRIBUTING.md) | Development setup, code style, PR process |\n\n---\n\n## 🔒 Security Best Practices\n\n1. **Enable 2FA:** Immediately after logging in, go to the Security page and setup Two-Factor Authentication.\n\n2. **Configure Webhooks:** Go to Webhooks and add a Discord/Slack URL to receive security alerts.\n\n3. **Run Audit:** Click \"Run Security Audit\" on the Webhooks page to verify file permissions.\n\n4. **Firewall:** Ensure port 9000 is NOT exposed to the public internet. Use Nginx as a reverse proxy (handled by the installer).\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see CONTRIBUTING.md for details.\n\n1. Fork the repo.\n2. Create a feature branch (`git checkout -b feature/amazing-feature`).\n3. Commit your changes.\n4. Open a Pull Request.\n\n---\n\n## 📜 License\n\nDistributed under the Apache 2.0 License. See [LICENSE](https://github.com/pulak-ranjan/kumomta-ui/blob/main/LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulak-ranjan%2Fkumomta-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulak-ranjan%2Fkumomta-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulak-ranjan%2Fkumomta-ui/lists"}