
burner.kiwi
A temporary email service and API built in Go. No JavaScript. No tracking. No analytics. No bullshit.
Check it out here: https://burner.kiwi
About
Burner.kiwi is designed to be an easy to use, fast, and lightweight temporary mail service. It purposefully doesn't include tracking code, analytics, or advertising and has a beautiful and responsive UI.
For those wanting to self-host, burner.kiwi is designed to be able to run on both AWS Lambda and normal machines. It has several backing database implementations and can be flexibly configured.
There are three production-ready database implementations: DynamoDB, PostgreSQL and SQLite3.
There are also two email implementations: Mailgun and SMTP. SMTP allows you to receive emails directly at no extra cost but will not work with AWS lambda.
This is project still a work in progress, if you think you can help, see the To Do section.
Deploy Your Own!
To run burner.kiwi yourself, you can build a binary or use the official docker image.
Build
To perform a build you must have minify installed, and a working go installation.
make build
Or if you wish to use SQLite3 you must run (this enables CGO for sqlite, the binary produced is capable of connecting to any database):
make build-sqlite
Test
Run all of burner.kiwi's tests locally:
make test
Configuration Parameters
These are all set as environment variables.
General
| Parameter | Type | Description | 
|---|---|---|
| LISTEN | string | address to listen on. Default is :8080which is all interfaces, port 8080 | 
| LAMBDA | Boolean | Whether or not the binary is being hosted on AWS Lambda | 
| KEY | String | Secret key used to sign cookies and keys. Make this something strong! | 
| WEBSITE_URL | String | The url where the binary is being hosted. This must be internet reachable as it is the destination for Mailgun routes | 
| STATIC_URL | String | The url where static content is being hosted. Set to /staticto have the binary serve it. Otherwise set to a full domain name with protocol e.g https://static.example.com | 
| DEVELOPING | Boolean | Set to trueto disable HSTS and setCache-Controlto zero. | 
| DOMAINS | []String | Comma separated list of domains connected to Mailgun account or that have correctly set MX records | 
| RESTOREREALIP | Boolean | Restores the real remote ip using the CF-Connecting-IPheader. Set totrueto enable,falseby default | 
| BLACKLISTED | []String | Comma separated list of domains to reject email from | 
| Parameter | Type | Description | 
|---|---|---|
| EMAIL_TYPE | String | One of mailgunorsmtp | 
| SMTP_LISTEN | String | Listen address for SMTP server (default 25) | 
| MG_KEY | String | Mailgun private API key (if using mailgun) | 
| MG_DOMAIN | String | One of the domains set up on your Mailgun account (if using mailgun) | 
Database
| Parameter | Type | Description | 
|---|---|---|
| DB_TYPE | String | One of memory,postgres,sqlite3ordynamofor InMemory, PostgreSQL, SQLite3 (not this requires building with SQLite3 support) and DynamoDB respectively | 
| DATABASE_URL | String | URL for the PostgreSQL database or filename for SQLite3 see documentation here. | 
| DYNAMO_TABLE | String | Name of the dynamodb table to use for storage (if using DynamoDB) | 
AWS
If you are using DynamoDB in a non-AWS environment you need to set these. If you are on AWS you shouldg use IAM roles.
| Parameter | Type | Description | 
|---|---|---|
| AWS_ACCESS_KEY_ID | String | Your AWS access key ID corresponding to an IAM role with permission to use DynamoDB | 
| AWS_SECRET_ACCESS_KEY | String | AWS secret access key corresponding to your access key ID | 
| AWS_REGION | String | The AWS region containing the DynamoDB table. Use the appropriate value from the Region column here. | 
Contributing
If you notice any issues or have anything to add, I would be more than happy to work with you.
Create an issue and outline your plans or bugs.
To do
- More tests for server package
- Proxy images to disrupt tracking pixels
- Attachments
If you think you can help, then create an issue and outline your plans.
Contributors
Thanks to:
- cdubz for adding SQLite3 and custom address support
- lopezator for switching to go modules
License
Copyright 2018-2022 Hayden Woodhead
Licensed under the MIT License.
The Roger logo is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
 該所有者的項目
                                                                (
                                                                該所有者的項目
                                                                (