{"id":13998087,"url":"https://github.com/charted-dev/emails","last_synced_at":"2026-02-22T07:34:26.717Z","repository":{"id":105819067,"uuid":"603573597","full_name":"charted-dev/emails","owner":"charted-dev","description":":polar_bear::love_letter: charted's email service built in Rust that can be connected via gRPC","archived":false,"fork":false,"pushed_at":"2025-05-29T04:26:25.000Z","size":220,"stargazers_count":6,"open_issues_count":14,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-24T17:45:34.120Z","etag":null,"topics":["charted","email","email-sender","grpc","microservice"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/charted-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["auguwu","Noelware"],"custom":["https://paypal.me/auguwu","https://charts.noelware.org"]}},"created_at":"2023-02-18T23:12:46.000Z","updated_at":"2024-11-03T17:09:49.000Z","dependencies_parsed_at":"2023-09-28T23:30:25.766Z","dependency_job_id":"b34535c0-b68d-4669-8649-1bd6972f4100","html_url":"https://github.com/charted-dev/emails","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/charted-dev/emails","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charted-dev%2Femails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charted-dev%2Femails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charted-dev%2Femails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charted-dev%2Femails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charted-dev","download_url":"https://codeload.github.com/charted-dev/emails/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charted-dev%2Femails/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29706569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T05:59:28.568Z","status":"ssl_error","status_checked_at":"2026-02-22T05:58:46.208Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charted","email","email-sender","grpc","microservice"],"created_at":"2024-08-09T19:01:23.075Z","updated_at":"2026-02-22T07:34:26.701Z","avatar_url":"https://github.com/charted-dev.png","language":"Rust","funding_links":["https://github.com/sponsors/auguwu","https://github.com/sponsors/Noelware","https://paypal.me/auguwu","https://charts.noelware.org"],"categories":["Rust"],"sub_categories":[],"readme":"# 🐻‍❄️💌 Emails Microservice\n\u003e *charted's email service built in Rust that can be connected via gRPC*\n\n**email-service** is a small microservice to help transfer emails towards other people without trying to implement it in different languages. This is used in [charted-server](https://github.com/charted-dev/charted) for member invitations, passwordless authentication, and more.\n\n## Templates\nStarting in v0.2.0, you can now use Git to host your templates and the service will pull them into the filesystem and keep track of them once you start sending users emails!\n\n\u003e Note\n\u003e You can still host your templates on the filesystem, just use the `templates.fs` object instead.\n\nTo use Git, you must need to have it installed on your system (as the service will require [`libgit2`](https://libgit2.github.com) to pull them), and you can set the `templates.git.repository` to `git://[server]/[owner]/[repo]`:\n\n```yaml\ntemplates:\n    git:\n        repository: git://github.com/charted-dev/email-templates\n        directory: ./dist\n        branch: main\n```\n\nThe server will pull the repository in `/var/lib/noelware/charted/emails/templates` (if on Docker if `templates.directory` is not on the disk), or in the `templates.directory` directory.\n\n### SSH\nTo use the SSH protocol for Git, you will need to have the keys available on the filesystem. You can use the `templates.git.ssh` object to do so:\n\n```yaml\ntemplates:\n    git:\n        repository: git://github.com/charted-dev/email-templates\n        directory: ./dist\n        branch: main\n        ssh:\n            username: noel # some other username...\n            keys:\n                - ~/.ssh/id_rsa\n```\n\n## Installation\n### Docker\nTo use the microservice with Docker, you will need to have the [Docker Engine](https://docker.com) or [Docker Desktop](https://docker.com/products/docker-desktop) installed on your machine. Once you have Docker installed, you can pull the Docker image from Noelware's container registry.\n\nThe image consists around multiple tags that are suited for your environment. We build the images with the `linux/amd64` and `linux/arm64` architectures.\n\n- `latest`, `nightly` - The latest versions for each channel (`latest` for the **stable** channel, `nightly` for the **nightly** channel)\n-  `alpine` - This tag runs this service with the [Alpine](https://hub.docker.com/_/alpine) image instead of [Debian](https://hub.docker.com/_/debian), which is recommended for production environments since it's more compat and smaller.\n- `{version}`, `{version}-nightly` - The **{version}** placeholder is for any specific version of this service to run.\n- `{version}-alpine` - Similarly to the stock `alpine` image tag, but uses a specific version of this microservice to run.\n\nAs this service doesn't hold any persistence, we will not be requiring it and we do not need any external databases or any other service. Now, we can begin pulling the image from the respected registry:\n\n```shell\n$ docker pull cr.noelware.cloud/charted/emails\n```\n\nNow, we can run the container:\n\n```shell\n$ docker run -d -p 32121:32121 --name emails cr.noelware.cloud/charted/emails\n```\n\n### Docker Compose\nThis repository also comes with a pre-ready `docker-compose.yml` deployment that can be easily fetched:\n\n```shell\n# Linux/macOS - cURL\n$ curl -Lo docker-compose.yml https://raw.githubusercontent.com/charted-dev/email-service/main/docker-compose.yml\n\n# Windows with PowerShell\n$ irm https://raw.githubusercontent.com/charted-dev/email-service/main/docker-compose.yml | Set-Content -Path ./docker-compose.yml\n```\n\n## License\n**email-service** is released under the **Apache 2.0** License with love by [Noelware, LLC.](https://noelware.org)! 🐻‍❄️💜\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharted-dev%2Femails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharted-dev%2Femails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharted-dev%2Femails/lists"}