Added detailed debug logging to all status update paths to help
diagnose why "unhealthy" status appears in the UI.
## Logging Added
### 1. PushServerUpdateJob (Sentinel updates)
**Location**: Lines 303-315
**Logs**: Status changes from Sentinel push updates
**Data tracked**:
- Old vs new status
- Container statuses that led to aggregation
- Status flags (hasRunning, hasUnhealthy, hasUnknown)
### 2. GetContainersStatus (SSH updates)
**Location**: Lines 441-449, 346-354, 358-365
**Logs**: Status changes from SSH-based checks
**Scenarios**:
- Normal status aggregation
- Recently restarted containers (kept as degraded)
- Applications not running (set to exited)
**Data tracked**:
- Old vs new status
- Container statuses
- Restart count and timing
- Whether containers exist
### 3. Application Model Status Accessor
**Location**: Lines 706-712, 726-732
**Logs**: When status is set without explicit health information
**Issue**: Highlights cases where health defaults to "unhealthy"
**Data tracked**:
- Raw value passed to setter
- Final result after default applied
## How to Use
### Enable Debug Logging
Edit `.env` or `config/logging.php` to set log level to debug:
```
LOG_LEVEL=debug
```
### Monitor Logs
```bash
tail -f storage/logs/laravel.log | grep STATUS-DEBUG
```
### Log Format
All logs use `[STATUS-DEBUG]` prefix for easy filtering:
```
[2025-11-19 13:00:00] local.DEBUG: [STATUS-DEBUG] Sentinel status change
{
"source": "PushServerUpdateJob",
"app_id": 123,
"app_name": "my-app",
"old_status": "running:unknown",
"new_status": "running:healthy",
"container_statuses": [...],
"flags": {...}
}
```
## What to Look For
1. **Default to unhealthy**: Check Application model accessor logs
2. **Status flipping**: Compare timestamps between Sentinel and SSH updates
3. **Incorrect aggregation**: Check flags and container_statuses
4. **Stale database values**: Check if old_status persists across multiple logs
## Next Steps
After gathering logs, we can:
1. Identify the exact source of "unhealthy" status
2. Determine if it's a default issue, aggregation bug, or timing problem
3. Apply targeted fix based on evidence
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| .ai | ||
| .cursor | ||
| .github | ||
| app | ||
| backlog | ||
| bootstrap | ||
| changelogs | ||
| config | ||
| database | ||
| docker | ||
| hooks | ||
| lang | ||
| other | ||
| public | ||
| resources | ||
| routes | ||
| scripts | ||
| storage | ||
| templates | ||
| tests | ||
| todos | ||
| .AI_INSTRUCTIONS_SYNC.md | ||
| .coolify-logo | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.development.example | ||
| .env.dusk.ci | ||
| .env.production | ||
| .env.windows-docker-desktop.example | ||
| .gitattributes | ||
| .gitignore | ||
| .mcp.json | ||
| .phpactor.json | ||
| artisan | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| cliff.toml | ||
| CODE_OF_CONDUCT.md | ||
| composer.json | ||
| composer.lock | ||
| conductor.json | ||
| CONTRIBUTING.md | ||
| docker-compose.dev.yml | ||
| docker-compose.prod.yml | ||
| docker-compose.windows.yml | ||
| docker-compose.yml | ||
| jean.json | ||
| LICENSE | ||
| openapi.json | ||
| openapi.yaml | ||
| package-lock.json | ||
| package.json | ||
| phpunit.dusk.xml | ||
| phpunit.xml | ||
| pint.json | ||
| postcss.config.cjs | ||
| README.md | ||
| rector.php | ||
| RELEASE.md | ||
| SECURITY.md | ||
| TECH_STACK.md | ||
| versions.json | ||
| vite.config.js | ||
About the Project
Coolify is an open-source & self-hostable alternative to Heroku / Netlify / Vercel / etc.
It helps you manage your servers, applications, and databases on your own hardware; you only need an SSH connection. You can manage VPS, Bare Metal, Raspberry PIs, and anything else.
Imagine having the ease of a cloud but with your own servers. That is Coolify.
No vendor lock-in, which means that all the configurations for your applications/databases/etc are saved to your server. So, if you decide to stop using Coolify (oh nooo), you could still manage your running resources. You lose the automations and all the magic. 🪄️
For more information, take a look at our landing page at coolify.io.
Installation
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
You can find the installation script source here.
Note
Please refer to the docs for more information about the installation.
Support
Contact us at coolify.io/docs/contact.
Cloud
If you do not want to self-host Coolify, there is a paid cloud version available: app.coolify.io
For more information & pricing, take a look at our landing page coolify.io.
Why should I use the Cloud version?
The recommended way to use Coolify is to have one server for Coolify and one (or more) for the resources you are deploying. A server is around 4-5$/month.
By subscribing to the cloud version, you get the Coolify server for the same price, but with:
- High-availability
- Free email notifications
- Better support
- Less maintenance for you
Donations
To stay completely free and open-source, with no feature behind the paywall and evolve the project, we need your help. If you like Coolify, please consider donating to help us fund the project's future development.
Thank you so much!
Big Sponsors
- 23M - Your experts for high-availability hosting solutions!
- Algora - Open source contribution platform
- American Cloud - US-based cloud infrastructure services
- Arcjet - Advanced web security and performance solutions
- BC Direct - Your trusted technology consulting partner
- Blacksmith - Infrastructure automation platform
- Brand.dev - API to personalize your product with logos, colors, and company info from any domain
- ByteBase - Database CI/CD and Security at Scale
- CodeRabbit - Cut Code Review Time & Bugs in Half
- COMIT - New York Times award–winning contractor
- CompAI - Open source compliance automation platform
- Convex - Open-source reactive database for web app developers
- CubePath - Dedicated Servers & Instant Deploy
- Dade2 - IT Consulting, Cloud Solutions & System Integration
- Formbricks - The open source feedback platform
- GoldenVM - Premium virtual machine hosting solutions
- Hetzner - Server, cloud, hosting, and data center solutions
- Hostinger - Web hosting and VPS solutions
- JobsCollider - 30,000+ remote jobs for developers
- Juxtdigital - Digital PR & AI Authority Building Agency
- LiquidWeb - Premium managed hosting solutions
- Logto - The better identity infrastructure for developers
- Macarne - Best IP Transit & Carrier Ethernet Solutions for Simplified Network Connectivity
- Mobb - Secure Your AI-Generated Code to Unlock Dev Productivity
- PFGLabs - Build Real Projects with Golang
- Ramnode - High Performance Cloud VPS Hosting
- SaasyKit - Complete SaaS starter kit for developers
- SupaGuide - Your comprehensive guide to Supabase
- Supadata AI - Scrape YouTube, web, and files. Get AI-ready, clean data
- Syntax.fm - Podcast for web developers
- Tigris - Modern developer data platform
- Tolgee - The open source localization platform
- Ubicloud - Open source cloud infrastructure platform
Small Sponsors
...and many more at GitHub Sponsors
Recognitions
Core Maintainers
| Andras Bacsai | 🏔️ Peak |
|---|---|
![]() |
![]() |









































