Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions plugins/hostctl/install-guidance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"plugin": "hostctl",
"binary": "hostctl",
"check": "hostctl version",
"install_steps": [
"go install github.com/guumaster/hostctl@latest",
"Verify: hostctl version",
"Or install via Homebrew: brew tap guumaster/tap && brew install hostctl",
"supercli plugins install ./plugins/hostctl --on-conflict replace --json"
],
"note": "Requires Go 1.18+. Profiles make it easy to switch between different /etc/hosts configurations."
}
5 changes: 5 additions & 0 deletions plugins/hostctl/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"description": "Manage /etc/hosts entries using named profiles for easy switching between environments",
"tags": ["hosts", "dns", "networking", "development", "devops"],
"has_learn": false
}
169 changes: 169 additions & 0 deletions plugins/hostctl/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
{
"name": "hostctl",
"version": "0.1.0",
"description": "hostctl — Manage /etc/hosts with profiles. Organize host entries into named profiles, switch between them, and maintain a clean hosts file with simple CLI commands.",
"source": "https://github.com/guumaster/hostctl",
"checks": [
{ "type": "binary", "name": "hostctl" }
],
"install_guidance": {
"plugin": "hostctl",
"binary": "hostctl",
"check": "hostctl version",
"install_steps": [
"go install github.com/guumaster/hostctl@latest",
"Verify: hostctl version",
"Add profile: hostctl profile add myprofile",
"supercli plugins install ./plugins/hostctl --on-conflict replace --json"
],
"note": "Requires Go 1.18+. Also available via Homebrew: brew tap guumaster/tap && brew install hostctl"
},
"commands": [
{
"namespace": "hostctl",
"resource": "profile",
"action": "list",
"description": "List all host profiles",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["profile", "list"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": []
},
{
"namespace": "hostctl",
"resource": "profile",
"action": "add",
"description": "Add a new host profile",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["profile", "add"],
"positionalArgs": ["name"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": [
{ "name": "name", "type": "string", "required": true, "description": "Profile name" }
]
},
{
"namespace": "hostctl",
"resource": "profile",
"action": "remove",
"description": "Remove a host profile",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["profile", "remove"],
"positionalArgs": ["name"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": [
{ "name": "name", "type": "string", "required": true, "description": "Profile name" }
]
},
{
"namespace": "hostctl",
"resource": "host",
"action": "add",
"description": "Add a host entry to a profile",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["host", "add"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": [
{ "name": "--profile", "type": "string", "required": true, "description": "Profile name" },
{ "name": "--ip", "type": "string", "required": true, "description": "IP address" },
{ "name": "--hostname", "type": "string", "required": true, "description": "Hostname" }
]
},
{
"namespace": "hostctl",
"resource": "host",
"action": "remove",
"description": "Remove a host entry from a profile",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["host", "remove"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": [
{ "name": "--profile", "type": "string", "required": true, "description": "Profile name" },
{ "name": "--hostname", "type": "string", "required": true, "description": "Hostname" }
]
},
{
"namespace": "hostctl",
"resource": "host",
"action": "list",
"description": "List hosts in a profile",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["host", "list"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": [
{ "name": "--profile", "type": "string", "required": true, "description": "Profile name" }
]
},
{
"namespace": "hostctl",
"resource": "host",
"action": "enable",
"description": "Enable a profile (activate hosts)",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["host", "enable"],
"positionalArgs": ["profile"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl"
},
"args": [
{ "name": "profile", "type": "string", "required": true, "description": "Profile name to enable" }
]
},
{
"namespace": "hostctl",
"resource": "host",
"action": "disable",
"description": "Disable a profile (deactivate hosts)",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"baseArgs": ["host", "disable"],
"positionalArgs": ["profile"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install hostctl"
},
"args": [
{ "name": "profile", "type": "string", "required": true, "description": "Profile name to disable" }
]
},
{
"namespace": "hostctl",
"resource": "_",
"action": "_",
"description": "Passthrough to hostctl for any command",
"adapter": "process",
"adapterConfig": {
"command": "hostctl",
"passthrough": true,
"missingDependencyHelp": "Install hostctl: go install github.com/guumaster/hostctl@latest"
},
"args": []
}
]
}
13 changes: 13 additions & 0 deletions plugins/maddy/install-guidance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"plugin": "maddy",
"binary": "maddy",
"check": "maddy --version",
"install_steps": [
"Download from https://github.com/foxcpp/maddy/releases",
"Or install via distro packages (see https://maddy.email/)",
"Configure: maddy test --config /etc/maddy/maddy.conf",
"Run: maddy run",
"supercli plugins install ./plugins/maddy --on-conflict replace --json"
],
"note": "All-in-one mail server. Configuration at https://maddy.email/."
}
5 changes: 5 additions & 0 deletions plugins/maddy/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"description": "Composable all-in-one mail server replacing Postfix, Dovecot, and OpenDKIM with a single daemon",
"tags": ["email", "mail-server", "smtp", "imap", "self-hosted"],
"has_learn": false
}
86 changes: 86 additions & 0 deletions plugins/maddy/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
"name": "maddy",
"version": "0.1.0",
"description": "maddy — Composable all-in-one mail server. Replace Postfix, Dovecot, OpenDKIM, OpenSPF, OpenDMARC with a single daemon with SMTP, IMAP, JMAP, and submission support.",
"source": "https://github.com/foxcpp/maddy",
"checks": [
{ "type": "binary", "name": "maddy" }
],
"install_guidance": {
"plugin": "maddy",
"binary": "maddy",
"check": "maddy --version",
"install_steps": [
"Download from https://github.com/foxcpp/maddy/releases",
"Or use distribution packages: https://maddy.email/",
"Configure: edit /etc/maddy/maddy.conf",
"Run: maddy run",
"supercli plugins install ./plugins/maddy --on-conflict replace --json"
],
"note": "Replaces multiple mail server components with a single binary. See https://maddy.email/ for configuration guide."
},
"commands": [
{
"namespace": "maddy",
"resource": "server",
"action": "run",
"description": "Start maddy mail server",
"adapter": "process",
"adapterConfig": {
"command": "maddy",
"baseArgs": ["run"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install maddy from https://github.com/foxcpp/maddy/releases"
},
"args": [
{ "name": "--config", "type": "string", "required": false, "description": "Config file path" }
]
},
{
"namespace": "maddy",
"resource": "server",
"action": "test",
"description": "Test maddy configuration",
"adapter": "process",
"adapterConfig": {
"command": "maddy",
"baseArgs": ["test"],
"timeout_ms": 10000,
"missingDependencyHelp": "Install maddy"
},
"args": [
{ "name": "--config", "type": "string", "required": false, "description": "Config file to test" }
]
},
{
"namespace": "maddy",
"resource": "creds",
"action": "hash",
"description": "Hash a password for maddy authentication",
"adapter": "process",
"adapterConfig": {
"command": "maddy",
"baseArgs": ["hash"],
"positionalArgs": ["password"],
"timeout_ms": 5000,
"missingDependencyHelp": "Install maddy"
},
"args": [
{ "name": "password", "type": "string", "required": true, "description": "Password to hash" }
]
},
{
"namespace": "maddy",
"resource": "_",
"action": "_",
"description": "Passthrough to maddy for any command",
"adapter": "process",
"adapterConfig": {
"command": "maddy",
"passthrough": true,
"missingDependencyHelp": "Install maddy from https://github.com/foxcpp/maddy/releases"
},
"args": []
}
]
}
12 changes: 12 additions & 0 deletions plugins/mailhog/install-guidance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"plugin": "mailhog",
"binary": "mailhog",
"check": "mailhog version",
"install_steps": [
"brew install mailhog",
"Or download binary from https://github.com/mailhog/MailHog/releases",
"Run: mailhog (starts SMTP on :1025, web UI on :8025)",
"supercli plugins install ./plugins/mailhog --on-conflict replace --json"
],
"note": "Starts SMTP server on port 1025 and web UI on port 8025. Use with mhsendmail for PHP integration."
}
5 changes: 5 additions & 0 deletions plugins/mailhog/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"description": "Web and API-based SMTP testing tool for capturing and viewing test emails during development",
"tags": ["email", "smtp", "testing", "development", "web-ui"],
"has_learn": false
}
Loading
Loading