README.asciidoc 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. eostre (Ēostre, spring goddess) donwloads journal entries in asciidoc and converts them to html.
  10. == Building
  11. Because asgard uses generics, go >= 1.18 is needed (currently in beta).
  12. All You have to do is run `go build`.
  13. == Running
  14. ----
  15. asgard serve
  16. serves the public archive of mimir, and self-release webpage for tyr
  17. asgard hermodr
  18. runs one-time forward of hermodr
  19. asgard mimir
  20. runs one-time archiving and forwarding of mimir
  21. asgard tyr
  22. runs on time filter of tyr
  23. asgard tyr list
  24. lists currently quarantined messages
  25. asgard release ID [recipient]
  26. releases message from quarantine (and saves rule); if recipient is not given, sender can send messages to any address directed to this inbox
  27. asgard offend ID
  28. moves message to junk and saves sender as known offender
  29. ----
  30. == Configuration
  31. 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.
  32. == Contribute
  33. This project uses The Code of Merit, which is available as CODE_OF_CONDUCT file.
  34. 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].
  35. 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/.
  36. == Mirrors
  37. The canonical repository for this project is https://git.apiote.xyz/asgard.git it’s mirrored at https://notabug.org/apiote/asgard
  38. 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.
  39. == Licence
  40. ----
  41. asgard Copyright (C) 2021–2022 apiote
  42. This program is free software: you can redistribute it and/or modify
  43. it under the terms of the GNU Affero General Public License as published by
  44. the Free Software Foundation, either version 3 of the License, or
  45. (at your option) any later version.
  46. This program is distributed in the hope that it will be useful,
  47. but WITHOUT ANY WARRANTY; without even the implied warranty of
  48. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  49. GNU Affero General Public License for more details.
  50. You should have received a copy of the GNU Affero General Public License
  51. along with this program. If not, see <https://www.gnu.org/licenses/>.
  52. ----