-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
891de28
commit 352c6e7
Showing
2 changed files
with
55 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
![mailverse](logo.png) | ||
# Mailverse | ||
|
||
Mailverse is a new and modern email server written in NodeJS. It is designed to be fast, secure and easy to use. | ||
|
||
## Features | ||
|
||
- **SMTP** server with TLS support | ||
- **POP3** server with TLS support | ||
- π **IMAP** server with TLS support | ||
- π **Upstreams**: use an existing SMTP/POP server as relay and store your mail on own hardware. Unique to Mailverse | ||
- π **Web Interface** for managing your instance | ||
- π **Webmailer** with modern UI | ||
- **MariaDB / MySQL / File System** support for storing mail | ||
- π **Docker** support | ||
|
||
## Installation | ||
|
||
### π Docker Compose | ||
|
||
```yml | ||
version: "3" | ||
services: | ||
mailverse: | ||
image: mailverse/mailverse | ||
ports: | ||
- "25:25" | ||
- "110:110" | ||
- "465:465" | ||
- "995:995" | ||
volumes: | ||
- ./mails:/app/mails | ||
- ./config.json:/app/config.json | ||
db: | ||
image: mariadb | ||
environment: | ||
- MYSQL_ROOT_PASSWORD=mailverse | ||
- MYSQL_DATABASE=mailverse | ||
- MYSQL_USER=mailverse | ||
- MYSQL_PASSWORD=mailverse | ||
``` | ||
|
||
### Manual | ||
|
||
1. Install the latest version of NodeJS | ||
2. Clone the repository | ||
3. Run `npm install` | ||
4. Run `npx tsc` | ||
5. Set up a MariaDB / MySQL database and create a user with access to it | ||
6. Create a `config.json` file (see below) | ||
7. Run `node dist/main.js` (may require root permissions) or with a process manager like `pm2` | ||
|
||
## Config | ||
|
||
Copy the example config from `config.sample.json` to `config.json` and adjust it to your needs. |