Irsal MailServer is a modern, stateless JMAP-based webmail, calendar, contacts, and files client built for speed, multi-account management, and enterprise-grade security.
Built with Next.js (App Router), TypeScript, and Tailwind CSS. Powered by the JMAP protocol (RFC 8620) for real-time synchronization.
Supports OAuth2 / OIDC with PKCE (Keycloak, Authentik), TOTP 2FA, SPF/DKIM/DMARC validation, and encrypted settings synchronization.
Unified mailbox, cross-account aggregate views (Unread, Starred, All Mail), and delegated group account sharing.
| Repository | Purpose | Tech / Target |
|---|---|---|
irsalmail-server/webmail |
Primary Webmail Application | Next.js, React, Tailwind CSS |
irsalmail-server/native |
Desktop & Mobile Client | React Native, Expo SDK |
irsalmail-server/plugins |
Plugin API & Manifest Templates | TypeScript, JavaScript |
irsalmail-server/relay |
Push Notification Relay | Firebase Cloud Messaging (FCM) Bridge |
irsalmail-server/legacy-proxy |
IMAP / SMTP Bridge | Legacy Client Compatibility |
The container image runs statelessly on port 3000 by default:
# Default Helm / Container Parameters
image.repository: "ghcr.io/irsalmail-server/webmail"
service.type: "ClusterIP"
service.port: 80
service.targetPort: 3000
Irsal MailServer supports custom plugins via a manifest.json entrypoint:
{
"id": "my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"type": "hook",
"permissions": ["email:read"],
"entrypoint": "index.js"
}