Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: JSON config format #548

Open
1 task
Sohalt opened this issue Oct 28, 2022 · 2 comments
Open
1 task

Feature request: JSON config format #548

Sohalt opened this issue Oct 28, 2022 · 2 comments
Labels
new feature New feature.

Comments

@Sohalt
Copy link

Sohalt commented Oct 28, 2022

Use case

Maddy's uses a custom config format. This makes it hard to integrate maddy with solutions for automatic configuration management (both generating maddy config or parsing maddy config). NixOS for example can very easily generate JSON from it's structured module system, but it is much harder to generate the current maddy config format in a meaningful way from nix.

Your idea for a solution

I propose to introduce a canonical JSON representation of the configuration and a way to convert from the current configuration format to the JSON format (similar to how Caddy uses the human readable Caddyfile format and a machine readable JSON format). This also makes it easier to write various adapters that can translate from other mailserver config (e.g. dovecot) to the equivalent maddy config on a best effort basis (similar to how Caddy has adapters e.g. for nginx).

  • I'm willing to help with the implementation
@Sohalt Sohalt added the new feature New feature. label Oct 28, 2022
@vtolstov
Copy link

I'm not agree with json. Yaml more suitable for config file

@Sohalt
Copy link
Author

Sohalt commented Oct 28, 2022

The goal is not to write JSON by hand, but to have a widely used format that's easy to parse and generate from various tools to build automation around maddy config. Also since YAML is a superset of JSON, any valid JSON is also valid YAML (but not the other way around).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New feature.
Projects
None yet
Development

No branches or pull requests

2 participants