Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reacherhq/backend
⚙️ REST backend for Reacher - Open-Source Email Verification API.
https://github.com/reacherhq/backend
backend hacktoberfest reacher
Last synced: 5 days ago
JSON representation
⚙️ REST backend for Reacher - Open-Source Email Verification API.
- Host: GitHub
- URL: https://github.com/reacherhq/backend
- Owner: reacherhq
- License: other
- Archived: true
- Created: 2019-10-14T14:09:16.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-15T08:41:22.000Z (about 2 years ago)
- Last Synced: 2024-08-01T21:56:31.081Z (3 months ago)
- Topics: backend, hacktoberfest, reacher
- Language: Rust
- Homepage: https://reacher.email
- Size: 862 KB
- Stars: 219
- Watchers: 5
- Forks: 60
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.AGPL
Awesome Lists containing this project
README
[![Actions Status](https://github.com/reacherhq/backend/workflows/pr/badge.svg)](https://github.com/reacherhq/backend/actions)
[![Github Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&link=https://github.com/sponsors/amaurym)](https://github.com/sponsors/amaurym)
⚙️ Reacher Backend
Backend Server for Reacher Email Verification API: https://reacher.email.
# ⚠️⚠️ IMPORTANT UPDATE ⚠️⚠️
This repo has been moved to the monorepo [reacherhq/check-if-email-exists](https://github.com/reacherhq/check-if-email-exists), in the `backend` subfolder.
## Reacher Backend
This repository holds the backend for [Reacher](https://reacher.email). The backend is a HTTP server with the following components:
- [`check-if-email-exists`](https://github.com/reacherhq/check-if-email-exists), which performs the core email verification logic,
- [`warp`](https://github.com/seanmonstar/warp) web framework.## Get Started
There are 2 ways you can run this backend.
### 1. Use Docker
The [Docker image](./Dockerfile) is hosted on Docker Hub: https://hub.docker.com/r/reacherhq/backend.
To run it, run the following command:
```bash
docker run -p 8080:8080 reacherhq/backend
```You can then send a POST request with the following body to `http://localhost:8080/v0/check_email`:
```js
{
"to_email": "[email protected]",
"from_email": "[email protected]", // (optional) email to use in the `FROM` SMTP command, defaults to "[email protected]"
"hello_name": "my-server.com", // (optional) name to use in the `EHLO` SMTP command, defaults to "localhost"
"proxy": { // (optional) SOCK5 proxy to run the verification through, default is empty
"host": "my-proxy.io",
"port": 1080
},
"smtp_port": 587 // (optional) SMTP port to do the email verification, defaults to 25
}
```### 2. Run locally
If you prefer to run the server locally on your machine, just clone the repository and run:
```bash
cargo run
```The server will then be listening on `http://127.0.0.1:8080`.
### Configuration
These are the environment variables used to configure the HTTP server:
| Env Var | Required? | Description | Default |
| ----------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------ |
| `RCH_ENABLE_BULK` | No | If set to 1, then bulk verification endpoints will be added to the backend. | 0 |
| `DATABASE_URL` | Yes if `RCH_ENABLE_BULK==1` | Database connection string for storing results and task queue | not defined |
| `RCH_HTTP_HOST` | No | The host name to bind the HTTP server to. | `127.0.0.1` |
| `PORT` | No | The port to bind the HTTP server to, often populated by the cloud provider. | `8080` |
| `RCH_FROM_EMAIL` | No | The email to use in the `MAIL FROM:` SMTP command. | `[email protected]` |
| `RCH_SENTRY_DSN` | No | If set, bug reports will be sent to this [Sentry](https://sentry.io) DSN. | not defined |
| `RCH_DATABASE_MAX_CONNECTIONS` | No | Connections created for the database pool | 5 |
| `RCH_MINIMUM_TASK_CONCURRENCY` | No | Minimum number of concurrent running tasks below which more tasks are fetched | 10 |
| `RCH_MAXIMUM_CONCURRENT_TASK_FETCH` | No | Maximum number of tasks fetched at once | 20 |
| `RUST_LOG` | No | One of `trace,debug,warn,error,info`. 💡 PRO TIP: `RUST_LOG=debug` is very handful for debugging purposes. | not defined |## REST API Documentation
Read docs on https://help.reacher.email/rest-api-documentation.
The API basically only exposes one endpoint: `POST /v0/check_email` expecting the following body:
```js
{
"to_email": "[email protected]",
"from_email": "[email protected]", // (optional) email to use in the `FROM` SMTP command, defaults to "[email protected]"
"hello_name": "my-server.com", // (optional) name to use in the `EHLO` SMTP command, defaults to "localhost"
"proxy": { // (optional) SOCK5 proxy to run the verification through, default is empty
"host": "my-proxy.io",
"port": 1080
},
"smtp_port": 587 // (optional) SMTP port to do the email verification, defaults to 25
}
```Also check [`openapi.json`](./openapi.json) for the complete OpenAPI specification.
## License
`reacherhq/backend`'s source code is provided under a **dual license model**.
### Commercial license
If you want to use `reacherhq/backend` to develop commercial sites, tools, and applications, the Commercial License is the appropriate license. With this option, your source code is kept proprietary. Purchase an `reacherhq/backend` Commercial License at https://reacher.email/pricing.
### Open source license
If you are creating an open source application under a license compatible with the GNU Affero GPL license v3, you may use `reacherhq/backend` under the terms of the [AGPL-3.0](./LICENSE.AGPL).
[Read more](https://help.reacher.email/reacher-licenses) about Reacher's license.
## Sponsor my Open-Source Work
If you like my open-source work at Reacher, consider [sponsoring me](https://github.com/sponsors/amaurym/)! You'll also get 8000 free email verifications every month with your Reacher account, and a this contribution would mean A WHOLE LOT to me.