Skip to content

Plugins

Damir Mukimov edited this page May 31, 2026 · 9 revisions

Plugins

ZoneKit's plugin system allows you to extend functionality for specific use cases.

Available Plugins

Migadu Email Hosting

Configure DNS records for Migadu email hosting.

Commands:

Command Description
migadu setup <domain> Configure all required DNS records
migadu verify <domain> Verify DNS records are correct
migadu remove <domain> Remove Migadu DNS records

Example:

# Preview changes
zonekit migadu setup example.com --dry-run

# Apply changes
zonekit migadu setup example.com

# Verify
zonekit migadu verify example.com

Plugin Management

# List plugins
zonekit plugin list

# Get plugin details
zonekit plugin info migadu

Creating Plugins

Plugins are Go packages implementing the plugin.Plugin interface:

type Plugin interface {
    Name() string
    Description() string
    Version() string
    Commands() []Command
}

Development Steps

  1. Create plugin package in pkg/plugin/<name>/
  2. Implement the plugin interface
  3. Register in cmd/root.go
  4. Add tests
  5. Update documentation

Best Practices

  • Validate all inputs
  • Support --dry-run flag
  • Check existing records before modifications
  • Provide clear error messages
  • Use DNS constants from pkg/dns

For detailed guidance, see Plugin Development Guide.

Contributing

To contribute a plugin:

  1. Fork the repository
  2. Create plugin in pkg/plugin/<name>/
  3. Register in cmd/root.go
  4. Add tests
  5. Submit pull request

See Contributing Guide for more details.

Clone this wiki locally