asgard.adoc 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. = asgard
  2. apiote <me@apiote.xyz>
  3. :toc:
  4. asgard is a suite of modules based on email workflow.
  5. hermodr (hermóðr, the messenger) forwards messages from IMAP inbox to another address; it’s designed to be used with https://github.com/emersion/hydroxide[hydroxide].
  6. mimir (Mímir, renowned for his knowledge) is a client-side topic-based mailing list and archive; it acts as a mailing list, forwarding messages based on their In-Reply-To header, and stores them in public archive. Best used as a companion to an open source project.
  7. tyr (Týr, valorous and powerful) is an address-based filter; it lets messages pass through if the pair (sender, recipient) is allowed, directs messages to junk if the pair is explicitly not allowed, and sends a notification to sender if the pair is not known.
  8. vor (Vör, associated with wisdom) is a client-side address-based mailing list. It forwards messages sent to a specific address to all interested parties.
  9. == Building
  10. Because asgard uses generics, go >= 1.18 is needed (currently in beta).
  11. All You have to do is run `go build`.
  12. == Running
  13. ----
  14. asgard serve
  15. serves the public archive of mimir, and self-release webpage for tyr
  16. asgard hermodr
  17. runs one-time forward of hermodr
  18. asgard mimir
  19. runs one-time archiving and forwarding of mimir
  20. asgard tyr
  21. runs on time filter of tyr
  22. asgard tyr list
  23. lists currently quarantined messages
  24. asgard release ID [recipient]
  25. releases message from quarantine (and saves rule); if recipient is not given, sender can send messages to any address directed to this inbox
  26. asgard offend ID
  27. moves message to junk and saves sender as known offender
  28. ----
  29. == Configuration
  30. asgard is configured with a configuration file (currently read from current directory). Example file can be found in `config_example.dirty`. All fields are mandatory.
  31. == Contribute
  32. This project uses The Code of Merit, which is available as CODE_OF_CONDUCT file.
  33. The roadmap is available in `CHANGELOG.adoc` file and—although it’s not set in stone—feature requests are highly discouraged. Contributions, however, are welcome as patches; please send them to `asgard@git.apiote.xyz` using `git send-email`. Patches must include a sign-off to certify agreement to https://developercertificate.org/[Developer Certificate of Origin].
  34. All communication—questions, bugs, etc.—should go through the mailing list available at `asgard@git.apiote.xyz`. Note that all communication will be made public at https://asgard.apiote.xyz/.
  35. == Mirrors
  36. The canonical repository for this project is https://git.apiote.xyz/asgard.git it’s mirrored at https://notabug.org/apiote/asgard
  37. Mirrors exist solely for the sake of the code and any additional functions provided by third-party services (including but not limited to issues and pull requests) will not be used and will be ignored.
  38. == Licence
  39. ----
  40. asgard Copyright (C) 2021–2022 apiote
  41. This program is free software: you can redistribute it and/or modify
  42. it under the terms of the GNU Affero General Public License as published by
  43. the Free Software Foundation, either version 3 of the License, or
  44. (at your option) any later version.
  45. This program is distributed in the hope that it will be useful,
  46. but WITHOUT ANY WARRANTY; without even the implied warranty of
  47. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  48. GNU Affero General Public License for more details.
  49. You should have received a copy of the GNU Affero General Public License
  50. along with this program. If not, see <https://www.gnu.org/licenses/>.
  51. ----