Skip to content

sinhaparth5/openmailer

Repository files navigation

OpenMailer

OpenMailer is a self-hosted email platform built with Spring Boot, PostgreSQL, Redis, Thymeleaf, and Tailwind CSS.

Overview

OpenMailer is designed for teams that want to run email operations on their own infrastructure instead of relying fully on third-party SaaS tools.

It separates a few core concerns:

  • application logic and UI in Spring Boot
  • persistent data in PostgreSQL
  • transient/cache workloads in Redis
  • reverse proxy and TLS at the VPS edge

Core Concepts

  • Templates define reusable email content.
  • Campaigns use templates plus recipients to send bulk email.
  • Domains control verified sender identities and DNS records.
  • Providers handle outbound delivery such as SMTP or external email services.

Stack

  • Java 25
  • Spring Boot
  • PostgreSQL
  • Redis
  • Thymeleaf
  • Tailwind CSS
  • Docker Compose

Local Development

Install dependencies:

npm install

Run the app:

./mvnw spring-boot:run

Run Tailwind in watch mode:

npm run watch:css

App URL:

http://localhost:8080

Build

Compile:

./mvnw compile

Run tests:

./mvnw test

Package:

./mvnw clean package

Production

Deploys are designed for a VPS with Docker Compose.

Main files:

  • deploy/compose.prod.yml
  • .github/workflows/deploy-prod.yml
  • architecture/DEPLOY.md

On the VPS, the app runs behind a reverse proxy and is exposed internally on:

127.0.0.1:8080

In production, the usual request flow is:

Client -> reverse proxy / WAF -> OpenMailer app -> PostgreSQL / Redis

Important Paths

  • src/main/java — backend code
  • src/main/resources/templates — Thymeleaf views
  • src/main/resources/static — CSS, JS, images
  • src/test/java — tests
  • architecture — deployment and progress docs

Notes

  • Use openmailer.env on the VPS for production environment variables.
  • CI/CD should update only openmailer-app.
  • Custom error pages live under src/main/resources/templates/error.

About

OpenMailer is an open source bulk email system with templates, built with Spring Boot 4.0, PostgreSQL, and Tailwind CSS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors