Skip to content

Commit

Permalink
Merge pull request #7 from AtomicEmails/v2.0.1-h2o-hotfix-1
Browse files Browse the repository at this point in the history
V2.0.1 h2o hotfix 1
  • Loading branch information
kyee-rs committed Jul 26, 2023
2 parents 2802165 + c15332d commit 6f8bd15
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 85 deletions.
159 changes: 74 additions & 85 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,73 +1,70 @@
# Atomic Emails ⚛️

## Table of Contents
- [Introduction](#introduction)
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Credits](#credits)

## Introduction
### What is Atomic Emails?
Atomic Emails is the service with a simple API that allows you to generate unlimited number of random emails, connected to your desired [client](https://github.com/AtomicEmails/clients) (Telegram, WhatsApp, Discord, etc.). You can use them to register on any website or service and protect your real email address from spam, bots, and phishing.

### Why Atomic Emails?
Atomic Emails is a free and open-source project. You can host it on your own server and use it for free, or use hosted version of service with a lifetime subscription for only $3.00. We store only required data with retention of a week and don't sell it to third-party companies.

## Features
### Create a temporary email address
You can create a temporary email address by using the `/v2/assign` route or equivalent in your desired client. The service will generate a random email address for you and forward all
incoming emails to your client.

### Connect your own domain
You can connect your own domain to the service by placing it on your own hosting to prevent the service from being blocked
by some websites. To do that, you need to install the service on your own machine and
follow the instructions in the [Installation](#installation) section.
<p align="center">
<a href="https://www.decline.live/" rel="noopener" target="_blank"><img width="300" src="/docs/public/logo.svg" alt="Atomic Emails Logo"></a>
</p>

## Installation
### Requirements
- VPS/VDS or your own machine with a public IP address.
- Postgres database.
- Docker (Recommended).
<hr/>

### Setup
Using Docker:
**Atomic Emails** is an open-source temporary email service that relies on [**Mailgun**](https://mailgun.com) and can integrate with _**any possible client**_.

- Open your terminal and run the following command:
- [_Atomic Emails Core_](https://github.com/AtomicEmails/AtomicEmails/) is a service itself which contains **Parser**, **Uploader**, and synchronizes all connected clients.

```bash
$ docker run \
-e DATABASE_URL=<your_db_url> \
-e SECRET_KEY=<global_service_key_to_parse_emails> \
-p 8080:8080 -d ghcr.io/atomicemails/app:latest
```
- [_AtomicEmails/telegram_](https://github.com/AtomicEmails/telegram/) is the first available client which I develop by myself written on [**Deno**](https://deno.land).

<div align="center">

**[`v2.0.1-h2o`](https://github.com/AtomicEmails/AtomicEmails/releases/latest/)**

[![Latest Tag](https://ghcr-badge.egpl.dev/AtomicEmails/app/latest_tag?color=red&label=latest)](https://ghrc.io/AtomicEmails/app "Latest Tag")
[![Image Size](https://ghcr-badge.egpl.dev/AtomicEmails/app/size)](https://ghrc.io/AtomicEmails/app "Image Size")
![license](https://img.shields.io/github/license/AtomicEmails/AtomicEmails)
[![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/AtomicEmails/AtomicEmails.svg)](https://isitmaintained.com/project/AtomicEmails/AtomicEmails 'Average time to resolve an issue')
[![Percentage of issues still open](http://isitmaintained.com/badge/open/AtomicEmails/AtomicEmails.svg)](http://isitmaintained.com/project/AtomicEmails/AtomicEmails "Percentage of issues still open")

</div>

## Installation

### Requirements

- Next steps from [Network Setup](#network-setup) section.
* [**VPS/VDS**](https://hetzner.com) with public IP
* **Docker** (recommended)
* **PostgreSQL** database

Using Binaries:
### Setup

- Install the latest version of [API Binary](https://github.com/AtomicEmails/art-module/releases/latest) for your OS and unpack it.
- Run the following command:
#### Using Docker

```bash
$ DATABASE_URL=<your_db_url> SECRET_KEY=<global_service_key_to_parse_emails> ./helium
* Open your Linux **Terminal** and run the following command:
```shell
docker run \
-e DATABASE_URL=<your_db_dsn> \
-e SECRET_KEY=<secret> \
-p 8080:8080 -d ghcr.io/atomicemails/app:v2.0.1-h2o-amd64
```
> 📝 **Note**: You can generate the secret using this shell command:
> ```shell
> openssl rand -hex 16
> ```
* Next steps from [**Network Setup**](#network-setup) section.

#### Using Pre-built Binaries

* Install the [**latest version**](https://github.com/AtomicEmails/AtomicEmails/releases/latest) of Atomic Emails binary for your OS and Architecture
* Unpack the tarball
* Open your Linux **Terminal** and run the following command:
```shell
DATABASE_URL=<your_db_dns> SECRET_KEY=<secret> ./helium
```
* Next steps from [**Network Setup**](#network-setup) section.

- Next steps from [Network Setup](#network-setup) section.

### Network Setup
- Set up a webhook integration in your bot's settings. You can use
[ngrok](https://ngrok.com/) to expose your local server to the internet.

```bash
$ ngrok http 8080
```
Here is the configuration guide for [Mailgun](https://mailgun.com) and your [VPS/VDS](https://hetzner.com) server.

- Login to your mailgun account and add your custom domain. Follow the
instructions on the mailgun website to verify your domain.
- Open the Receiving tab and create a new route. Set these settings:
- Login to your [Mailgun](https://mailgun.com) account and add your custom domain.
Follow the instructions on the [Mailgun](https://mailgun.com) website to connect and verify your domain.
- Open the **Receiving** tab and create a new route. Set the following settings below:

```diff
+ Expression type: Catch All
Expand All @@ -78,35 +75,27 @@ $ ngrok http 8080
- Host a client for your desired platform. You can find a list of clients
[here](https://github.com/AtomicEmails/clients).

## Usage
### Routes
- `/v2/register/:id` - Register a new user or connect a new client to existing one with the same ID.
- `/v2/assign/:id` - Generate a random string and make a record in Postgres to forward emails.
- `/v2/forward/:id` - Change forwarding state. This route disables/enables an email forwarding for user with specified ID.
- `/v2/delete/:id/:email` - Delete one email address from a user with specified ID. (Check documentation for examples)
- `/v2/reset/:id` - Delete all email addresses associated with a user with specified ID.
- `/v2/list/:id` - List all email addresses of the specified user.
- `/sys/parse` - Route connected to Mailgun.
- `/sys/announcement` - Send an announcement to all registered users among all available clients.
- `/create/client` - Register new client. (Check documentation for examples)
- `/html/:id` - Get rendered HTML (Used to preview a letter)
- `/data/:id` - Get data of rendered letter (From, To, HTML). (Used to preview a letter)
- `/clients` - List all available clients.

## Contributing
Contributions are welcome! Please read the
[contribution guidelines](CONTRIBUTING.md) and [code of conduct](CODE_OF_CONDUCT.md) first.

Read the [contributing guide](/CONTRIBUTING.md) to learn about our development process,
how to propose bug fixes and improvements,
and how to build and test your changes.

## Changelog

The [changelog](https://github.com/AtomicEmails/AtomicEmails/releases) is regularly updated
to reflect what's changed in each new release.

## Roadmap

Future plans and high-priority features and enhancements can be found in our [roadmap](https://github.com/orgs/AtomicEmails/projects/1).

## License
This project is licensed under the Creative Commons Zero v1.0 Universal License — see the
[LICENSE.md](LICENSE.md) file for details.

## Credits
- [voxelin 🇺🇦](https://github.com/voxelin) - The creator of this project.
- [Mailgun](https://www.mailgun.com/) - A simple service for sending and
receiving emails.
- [Go](https://golang.org/) - A great programming language.
- [Docker](https://www.docker.com/) - A great tool for containerizing
applications.
- [ngrok](https://ngrok.com/) - An easy way for exposing local servers to the
internet.

This project is licensed under the terms of the
[CC0-1.0](/LICENSE.md).

## Security

For details of supported versions and contact details for reporting security issues,
please refer to the [security policy](https://github.com/AtomicEmails/AtomicEmails/security/policy).
Loading

0 comments on commit 6f8bd15

Please sign in to comment.