A Slack + Discord bot framework for Laravel. Drop it in, register your slash commands, ship.
composer require drmaxis/deploybotphp artisan vendor:publish --tag=deploybot-config
php artisan vendor:publish --tag=deploybot-migrations
php artisan vendor:publish --tag=deploybot-routes
php artisan migrate# .env
DEPLOYBOT_SLACK_SIGNING_SECRET=
DEPLOYBOT_SLACK_BOT_TOKEN=
# optional — one per logical channel
DEPLOYBOT_DISCORD_WEBHOOK_RELEASES=
DEPLOYBOT_DISCORD_WEBHOOK_INCIDENTS=use DrMaxis\Deploybot\Commands\CommandContext;
use DrMaxis\Deploybot\Commands\CommandInterface;
use DrMaxis\Deploybot\Commands\CommandResponse;
class PingCommand implements CommandInterface
{
public static function name(): string { return 'ping'; }
public static function description(): string { return 'Reply with pong.'; }
public static function requiresAdmin(): bool { return false; }
public function handle(CommandContext $ctx): CommandResponse
{
return CommandResponse::message('pong');
}
}Register from a service provider:
public function boot(CommandRegistry $registry): void
{
$registry->register(PingCommand::class);
}Point your Slack app's slash command at https://your-app.example/deploybot/slack/command. The built-in help command lists every registered command.
- HMAC signature verification (constant-time, with timestamp-skew replay guard)
- Slash-command dispatcher with admin allowlisting
- Slack Web API client (
chat.postMessage,chat.postEphemeral) - Discord webhook client (multi-purpose routing)
- Channel-subscription model for broadcasting events
- Block Kit response envelope types
- Auto-discovered service provider · Laravel 12 / 13
See CONTRIBUTING.md.
Report privately via GitHub security advisories. See SECURITY.md.
MIT
