Commit 959dece
authored
feat: add Laravel Kick integration (#62)
* feat: add Laravel Kick integration
Integrate laravel-kick for enhanced application introspection. When an app
has KICK_TOKEN and KICK_ENABLED=true in its environment variables, a new
"Kick" tab appears in the dashboard showing:
- Health checks (database, cache, storage, redis)
- System stats (CPU, memory, disk, uptime)
- Log viewer with level filtering and search
- Queue status and failed jobs list
- Artisan command execution
Backend:
- KickClient: HTTP client for kick endpoints
- KickRepository: Contract for kick integration
- CoolifyKickRepository: Implementation that fetches config from Coolify
- KickController: API endpoints proxying to remote kick
- DashboardStatsController: Includes kick availability in stats
Frontend:
- Kick.vue: Full-featured page with tabs for all kick features
- Layout.vue: Conditionally shows Kick nav item
- api.js: Kick API methods
Configuration:
- coolify.kick.enabled: Toggle integration globally
- coolify.kick.cache_ttl: Cache config lookups
- coolify.kick.timeout: Request timeout
* docs: add Laravel Kick integration section to README
* fix: downgrade to Tailwind v3 for compatibility
* fix: migrate to Tailwind v4 properly
* ui: show app name and environment in Kick header
* test: add comprehensive tests for Kick integration
Add tests for KickClient, KickRepository, and KickController covering:
- Health, stats, logs, queue, and artisan endpoints
- Authentication and error handling
- Config retrieval from Coolify env vars
- Caching behavior
* fix: address PR review feedback for Kick integration
- Add logging to exception catch blocks instead of silent failures
- Catch specific exceptions (CoolifyApiException, KickApiException, etc.)
- Add path traversal validation in logRead endpoint
- Add clearCache() method to KickRepository interface
- Add declare(strict_types=1) to KickRepository interface
- Add rate limiting (10/min) to artisan execution endpoint
- Use onBeforeUnmount for guaranteed cleanup in Vue component
- Fix DashboardTest HTTP fake for kick config lookup1 parent 218e26a commit 959dece
File tree
30 files changed
+2922
-85
lines changed- .github/workflows
- config
- dist
- chunks
- resources
- css
- js
- components
- pages
- routes
- src
- Contracts
- Exceptions
- Http/Controllers
- Repositories
- Services
- tests
- Feature/Http
- Unit
- Repositories
- Services
30 files changed
+2922
-85
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
76 | 98 | | |
77 | 99 | | |
78 | 100 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
225 | 253 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments