
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!Roger the pyro kiwi
https://travis-ci.org/haydenwoodhead/burner.kiwi.svg?branch=master](https://travis-ci.org/haydenwoodhead/burner.kiwi) https://goreportcard.com/badge/github.com/haydenwoodhead/burner.kiwi](https://goreportcard.com/report/github.com/haydenwoodhead/burner.kiwi) https://coveralls.io/repos/github/haydenwoodhead/burner.kiwi/badge.svg](https://coveralls.io/github/haydenwoodhead/burner.kiwi)
A temporary email service and API built in Go. No JavaScript. No tracking. No analytics. No bullshit.
Check it out here: [***]
Burner.kiwi is designed to be able to run on both AWS Lambda and normal machines. The goal is to have several backing database implementations and flexible configuration.
At this point it's working on normal machines and in Lambda. There are now two production-ready database implementation - DynamoDB & PostgreSQL and a dev/testing implementation - InMemory.
This is definitely still a work in progress, see the To Do section.
You will need to:
Deploy your own straight to AWS Lambda and DynamoDB.
Deploy to ap-southeast-2 (Sydney):
https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png](https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stacks/new?stackName=burnerkiwi&templateURL=https://s3-ap-southeast-2.amazonaws.com/burner-kiwi-ap-southeast-2/cloudformation.json)
Deploy to us-east-1 (N. Virginia):
https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=burnerkiwi&templateURL=https://s3.amazonaws.com/burner-kiwi-us-east-1/cloudformation.json)
Deploy to eu-west-1 (Ireland):
https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png](https://console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/new?stackName=burnerkiwi&templateURL=https://s3-eu-west-1.amazonaws.com/burner-kiwi-eu-west-1/cloudformation.json)
If you want to deploy to another AWS region you will modify the provided cloudformation.json template and upload your code to a bucket in that region.
Or run it on your own server. Build a binary, set up with the configuration parameters detailed below and run it.
To build for development just run go build - nothing special here.
Building for production is a different beast. We need to give assets cache friendly names, minify them and add their
new names to the binary. Check out the included build.sh file.
To build run ./build.sh from the root of the project. This will create and populate a buildres directory
containing the binary file and minified/renamed static assets.
These are all set as environment variables.
| Parameter | Type | Description |
|---|---|---|
| LAMBDA | Boolean | Whether or not the binary is being hosted on AWS Lambda |
| KEY | String | 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 /static to have the binary serve it. Otherwise set to a full domain name with protocol e.g [***] |
| DEVELOPING | Boolean | Set to true to disable HSTS and set Cache-Control to zero. |
| DOMAINS | []String | Comma separated list of domains connected to Mailgun account and able to receive email |
| MG_KEY | String | Mailgun private API key |
| MG_DOMAIN | String | One of the domains set up on your Mailgun account |
| DB_TYPE | String | One of memory, postgres or dynamo for InMemory, PostgreSQL and DynamoDB respectively |
| DATABASE_URL | String | URL for the PostgreSQL database |
| DYNAMO_TABLE | String | Name of the dynamodb table to use for storage (if using DynamoDB) |
| RESTOREREALIP | Boolean | Restores the real remote ip using the CF-Connecting-IP header. Set to true to enable, false by default |
| BLACKLISTED | []String | Comma seperated list of domains to reject email from |
If you are using DynamoDB a non AWS environment you need to set these. If you are on AWS you should, of course, should 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 https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region. |
Burner.kiwi creates a new Mailgun route for every inbox and email address. This allows us to delete these routes once the inbox expires and prevents the server being unnecessarily burdened by webhooks for inboxes that don't exist anymore.
Old routes are deleted in the background every time the binary is started. In a Lambda context this means every time we have a cold start, the CloudFormation template sets up a CloudWatch event to call the handler every 6 hours. However, because of the fact that burner.kiwi is designed to be platform agnostic we can't differentiate between these CloudWatch events and normal http requests. This means if the CloudWatch event hits a frozen container rather than causing a new container to be spawned, we wont trigger the deletion of old routes. Hopefully, a normal http request or CloudWatch event will cause a new container to be spawned often enough that old routes are cleared out.
If you are deployed on a normal machine you can explicitly cause deletion of old routes without starting the http server.
You can set up a cron to run the binary every 6 hours, like so: burnerkiwi -delete-old-routes. You will need to ensure
the binary can still access the environment variables.
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.
Again, if you think you can help, then create an issue and outline your plans.
Copyright 2018 Hayden Woodhead
Licensed under the MIT License.
The Roger logo is drawn by Melissa Bather, used with permission, and licensed under https://creativecommons.org/licenses/by-nc-sa/4.0/.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务