You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/Papercut.Service/Readme.md
+3-22Lines changed: 3 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,12 @@
1
1
# Papercut.Service
2
2
3
-
**Papercut.Service** is a modern ASP.NET Core 8.0 web application that serves as the backend service for Papercut SMTP. It provides both SMTP email capture functionality and a RESTful API for managing messages, with an optional Electron-based desktop interface.
3
+
**Papercut.Service** is a modern ASP.NET Core web application that serves as the backend service for Papercut SMTP. It provides SMTP email capture, a RESTful API for managing messages, and the embedded Angular web UI.
4
4
5
5
## 🎯 Purpose & Architecture
6
6
7
7
Papercut.Service is designed as a **hybrid application** that can operate in multiple modes:
8
8
9
9
-**Standalone Service**: Runs as a background Windows service for server deployments
10
-
-**Desktop Application**: Optionally runs with an Electron GUI for desktop usage
11
10
-**Web API Service**: Always provides HTTP endpoints for message management
12
11
-**SMTP Server**: Captures SMTP messages sent to configurable ports
-**Angular 17 Web UI** - Modern frontend embedded as static assets
92
+
#### **Embedded Web UI**
93
+
-**Angular Web UI** - Modern frontend embedded as static assets
96
94
97
95
## 🚀 How to Run Papercut.Service
98
96
@@ -107,9 +105,6 @@ Papercut.Service.exe
107
105
Papercut.Service.exe install --sudo
108
106
```
109
107
110
-
### Option 3: With Electron Desktop Interface
111
-
The service can optionally launch with a desktop GUI when Electron support is active. This provides a native desktop experience while maintaining the same backend functionality.
112
-
113
108
### Command Line Options
114
109
Get a full listing of available command line options:
The default (empty) serves the web UI at the root as before. Requests without the prefix continue to work, so proxies that strip the prefix are also supported — but a prefix-stripping proxy must redirect the bare prefix (`/webmail` → `/webmail/`) itself, since the app only sees `/` and cannot issue that redirect. Forwarding the full prefix (with `HttpPathPrefix` set) avoids this entirely.
210
205
211
-
## 🖥️ Electron Desktop Mode
212
-
213
-
**Status**: Currently available but not actively used in production deployments.
214
-
215
-
The Electron integration (`ElectronService.cs`) provides:
216
-
- Cross-platform desktop window hosting the web UI
217
-
- Native application menus and system integration
218
-
- Platform-specific icons and behaviors
219
-
- Desktop notifications and app lifecycle management
220
-
221
-
**Future Plans**: Electron support is maintained for potential future desktop distribution scenarios. See `Electron.md` for detailed analysis of the Electron implementation.
222
-
223
206
## 📦 Deployment Modes
224
207
225
208
### 1. Windows Service (Recommended for Production)
@@ -252,7 +235,6 @@ The Electron integration (`ElectronService.cs`) provides:
252
235
-**Autofac** - Dependency injection container
253
236
254
237
### Optional Dependencies
255
-
-**ElectronNET.API 23.6.2** - Desktop GUI support (when enabled)
256
238
-**Node.js & npm** - For building embedded Angular web UI
257
239
258
240
## 🔍 Troubleshooting
@@ -271,7 +253,6 @@ Comprehensive logging is available through Serilog:
271
253
## 📄 Related Documentation
272
254
273
255
-`Web/README.md` - Angular frontend documentation
274
-
-`Electron.md` - Electron desktop integration analysis
0 commit comments