Download the PHP package eloquent-works/exile without Composer
On this page you can find all versions of the php package eloquent-works/exile. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download eloquent-works/exile
More information about eloquent-works/exile
Files in eloquent-works/exile
Package exile
Short Description Comprehensive account, IP, network, device, strike, restriction, appeal, and moderation enforcement tools for Laravel applications.
License MIT
Informations about the package exile
🛡️ Laravel Exile
Comprehensive moderation-enforcement tools for Laravel applications.
Laravel Exile supports account, IP, CIDR network, and device bans; temporary and permanent enforcement; warnings and strike escalation; login, posting, read-only, and shadow restrictions; appeals, evidence, moderator tracking, audit history, events, notifications, middleware, and scheduled maintenance.
📋 Supported Versions
| Package version | PHP | Laravel / Illuminate |
|---|---|---|
| Current | ^8.2 |
^12.0 \|\| ^13.0 |
Composer automatically resolves compatible Laravel and Illuminate versions for the consuming application.
🚀 Installation
Publish the customizable notification templates during installation:
Add the Bannable trait to the account model:
Configure a dedicated hash key:
Do not rotate this key casually. Existing IP and device hashes will no longer match after rotation.
✨ Features
- Account, exact-IP, CIDR network, device, and combined bans
- Configurable
anyor strictallmatching for combined bans - Temporary and permanent enforcement
- Transactional enforcement writes and after-commit side effects
- Login, posting, read-only, and shadow restrictions
- Warnings, strike points, and automatic escalation
- Appeals with approval, denial, withdrawal, and automatic revocation
- Evidence uploads with SHA-256 integrity checksums
- Moderator attribution, internal notes, metadata, and audit history
- Queued ban notifications with replaceable notification classes
- Publishable Markdown mail templates
- Middleware, expiration processing, and retention pruning
- Configurable models, table names, categories, and aliases
🛡️ Protect Routes
Block active account, IP, network, and device bans:
Block a restricted action:
Mark shadow-restricted requests without rejecting them:
👤 Account Bans
🌐 IP, Network, and Device Bans
Register a device observation without storing the raw token:
⚠️ Warnings and Strikes
Escalation thresholds are configured in config/exile.php.
🚧 Restrictions
⚖️ Appeals
Approving an appeal revokes the related ban.
📎 Evidence
Attach an existing stored file:
Or store an uploaded file through Exile:
♻️ Revocation
Records remain available as moderation history until explicitly pruned.
⏱️ Commands
Pruning is disabled by default. Enable it in configuration or explicitly force a retention period:
🔔 Notifications
Notifications are disabled by default. Enable them in config/exile.php:
The affected model must support Laravel notifications. Database notifications also require Laravel's notifications table.
📣 Events
BanIssuedBanRevokedBanExpiredRestrictionIssuedRestrictionRevokedStrikeIssuedWarningIssuedAppealSubmittedAppealResolved
✅ Quality Checks
Run the complete quality pipeline:
Or run each check separately:
Validate Composer metadata before publishing:
composer analyse must complete with zero PHPStan errors. Do not disable valid findings globally merely to make the command pass. Prefer correcting native types, generic PHPDoc annotations, impossible comparisons, redundant instanceof conditions, and iterable value types.
See PHPStan Remediation.
📚 Documentation
Full documentation is available in the docs directory:
- Documentation index
- Installation
- Configuration
- Architecture
- Bans
- IP, Network, and Device Enforcement
- Restrictions
- Warnings, Strikes, and Escalation
- Appeals
- Evidence
- Middleware
- Events, Notifications, and Audit History
- Commands and Scheduling
- Customization
- Security
- Testing and Quality
- PHPStan Remediation
- Release Checklist
🔐 Security
Keep EXILE_HASH_KEY private. Exile uses keyed HMAC hashes for IP and device matching. Human-readable IP addresses and CIDR ranges are encrypted at rest using Laravel's encryption system.
Do not use device fingerprints as a sole identity signal. Treat them as one moderation indicator alongside account history, IP context, and human review.
Security vulnerabilities should be reported privately according to SECURITY.md, not through a public issue.
🤝 Contributing
See CODE_OF_CONDUCT.md.
🙏 Credits
Built by Eloquent Works.
📄 License
Laravel Exile is open-source software licensed under the MIT License.
All versions of exile with dependencies
illuminate/bus Version ^11.15|^12.0|^13.0
illuminate/console Version ^11.15|^12.0|^13.0
illuminate/contracts Version ^11.15|^12.0|^13.0
illuminate/database Version ^11.15|^12.0|^13.0
illuminate/encryption Version ^11.15|^12.0|^13.0
illuminate/events Version ^11.15|^12.0|^13.0
illuminate/filesystem Version ^11.15|^12.0|^13.0
illuminate/http Version ^11.15|^12.0|^13.0
illuminate/notifications Version ^11.15|^12.0|^13.0
illuminate/queue Version ^11.15|^12.0|^13.0
illuminate/routing Version ^11.15|^12.0|^13.0
illuminate/support Version ^11.15|^12.0|^13.0