Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ivstiv/grap
Simplifies email-based workflow automation. A lightweight SMTP server with API and web interface for easy email capture in testing and CI/CD environments.
https://github.com/ivstiv/grap
api ci-cd email smtp testing-tools
Last synced: 1 day ago
JSON representation
Simplifies email-based workflow automation. A lightweight SMTP server with API and web interface for easy email capture in testing and CI/CD environments.
- Host: GitHub
- URL: https://github.com/ivstiv/grap
- Owner: ivstiv
- License: mit
- Created: 2022-06-11T13:40:07.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-16T21:25:06.000Z (2 months ago)
- Last Synced: 2024-09-18T02:30:58.845Z (2 months ago)
- Topics: api, ci-cd, email, smtp, testing-tools
- Language: TypeScript
- Homepage: https://grap.email
- Size: 557 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# grap - Simple email grabbing for testing and CI/CD
![Coverage](./server/coverage/badge.svg)
[![Known Vulnerabilities](https://snyk.io/test/github/ivstiv/grap/badge.svg?targetFile=server/package.json&style=flat)](https://snyk.io/test/github/ivstiv/grap?targetFile=server/package.json)
[![Maintainability](https://api.codeclimate.com/v1/badges/41d71d73a5255fc1da5a/maintainability)](https://codeclimate.com/github/ivstiv/grap/maintainability)
[![Docker Pulls](https://img.shields.io/docker/pulls/ivstiv/grap?logo=docker&logoColor=white&style=flat)](https://hub.docker.com/r/ivstiv/grap "open on dockerhub")
[![Discord](https://img.shields.io/discord/663517902258962473?color=blue&label=Need%20help%3F&logo=discord&logoColor=white&style=flat)](https://discord.gg/VMSDGVD)I got tired of endless email capturing services with stupid pricing justified
by a ton of features that I will never use.grap aims to be a simple SMTP server wrapped with an API and user system to aid automation of email based workflows.
Features:
- Web interface to manage emails & users
- REST API to generate addresses and grab emails
- SMTP server to receive the emailsPlanned features:
- Multi domain support
- API endpoint for filtering inboxes
- Version checker in the UI
- Domain checker for validating DNS setup
- Statistics and more control over users## [Deploy using docker](https://hub.docker.com/r/ivstiv/grap)
> Follow the steps in the image description
## Development
You'll need the following things installed on your machine.
- linux-like shell environment (WSL should work, don't know about the various bash emulators)
- Docker
- docker compose (not docker-compose)
- Common tools such as: curl, git, telnet1. Clone the repository
```
git clone [email protected]:ivstiv/grap.git
cd grap
```2. Start the development container
The first time it gets started it will take longer to boot up the services
as it needs to download all of the dependencies.```
./compose.sh up server
```3. Wait for the server to turn on
You should see output similar to:
```
grap-backend | SMTP Server listening on port 25...
grap-backend | {"level":30,"time":1655847332750,"pid":78,"hostname":"a328362c4b5f","msg":"Server listening at http://0.0.0.0:3000"}
```4. Migrate & Seed the database
```
./compose.sh exec server pnpm run migrate:latest
./compose.sh exec server pnpm run seed
```### Open a shell in the dev container
Keep in mind that the container is based on alpine, so you will be dropped on ASH shell.
```
./compose.sh run --rm server bash
```### Send a test email locally
Edit the script to customise the email being sent.
```
./smtp-test.sh
```### Run the test suite
```
./compose.sh run --rm server pnpm test
```## Pushing an image
```
docker login
docker pull node:20-bullseye-slim
docker buildx build --push --provenance=true --sbom=true -t ivstiv/grap:experimental -f .docker/prod.Dockerfile server
docker logout
```