Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesSet up a health check in Coolify by opening the application, choosing Healthcheck, selecting HTTP or CMD, entering the probe details and timing values, then selecting Save changes and Enable. If the app is already running, restart or redeploy it so Coolify creates a container with the new configuration. The probe runs inside that container, so the image must contain the required client (usually curl or wget) and the check must use the container’s internal listening port.
Antihost offers VPS plans with one-click Coolify, NVMe storage and a 14-day free trial.
What a Coolify health check does
A health check is a recurring command that answers a narrow question: can this container serve traffic right now? Docker records the result as healthy, starting or unhealthy. When Coolify Proxy uses Traefik, unhealthy containers are removed from routing. If every container fails, visitors can see 404 Not Found or No available server instead of a response from your application.
As an Amazon Associate I earn from qualifying purchases.
Recommended Free Tools
A useful check tests readiness rather than merely checking that a process exists. Your endpoint should return success only after the server can handle normal requests, including any required initialization. It should be fast, inexpensive and read-only; a health probe must not create records, send emails, mutate queues or otherwise change application data.
Health status is local to each container. One healthy replica does not make a failing replica healthy, and a successful process check does not prove that every user-facing route works. Design the probe around the minimum conditions required to accept ordinary traffic, then verify the exact command in the running container.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Choose where the check is defined
Coolify has three health-check patterns. The correct one depends on how the application is deployed and who should own the definition.
| Option | Best fit | Ownership | Key caveat |
|---|---|---|---|
| Coolify Healthcheck page | Nixpacks, Railpack, Static, Dockerfile and Docker Image applications | Coolify application configuration | Changing a running container requires a restart or redeploy; an HTTP check needs curl or wget in the image. |
Dockerfile HEALTHCHECK |
A check that should travel with an image | The image author | Every referenced binary must be present in the final image. For a non-Compose Dockerfile application, an image-provided check takes precedence over the dashboard-generated check. |
Compose healthcheck |
Multi-service Docker Compose applications | The Compose service definition | Compose applications do not use the standard application Healthcheck page; define a check separately for each service. |
Use the dashboard for a quick, application-specific configuration. Put the check in a Dockerfile when image portability matters. Put it in Compose when service dependencies and orchestration belong in the Compose file.
Pick one authoritative owner for a given application. Maintaining a dashboard check and a Dockerfile check with different paths or ports makes failures harder to interpret. For a non-Compose Dockerfile deployment, Coolify detects an image-provided check and does not add the dashboard-configured check to the generated container definition.
Choose HTTP or CMD
Select HTTP when readiness is naturally represented by a URL such as /health. Coolify generates a request using curl or wget, and the command’s exit status is the pass/fail signal. Select CMD when you need an explicit command or when the image lacks an HTTP client but contains another suitable utility. A CMD probe is successful only when the command exits with code 0.
For either option, test the exact command inside the application container. A command that succeeds on your workstation can fail in the image because the binary, environment variable, working directory or network address is different. Keep shell logic simple and make failures return a nonzero status; otherwise Docker can mark a broken service healthy.
Prepare a readiness endpoint
Return a meaningful success response
Create a lightweight route such as /health. It should return an HTTP success status only when the process is ready to serve traffic. If your application cannot serve requests until migrations, cache loading or another initialization task completes, keep the endpoint unsuccessful until that work is done.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteKeep the route independent of authentication intended for users, and avoid expensive checks that can overload a database or third-party service every few seconds. If you do check dependencies, use short timeouts and make the readiness policy explicit: a dependency that is optional for serving traffic should not make the whole container fail.
A readiness route should be read-only and deterministic. Do not use it to create a session, enqueue a job, update a timestamp or perform a repair. Those side effects can run repeatedly on every interval and can make an outage worse. Return failure when the application cannot provide its normal service, not merely when an unrelated optional integration is unavailable.
Use the container’s address and port
Health checks execute from inside the application container. Normally use host localhost (or 127.0.0.1), the port on which the process listens inside the container, and the readiness path. Do not use a public domain, a host-mapped port or a proxy URL. Port mappings are for traffic entering the container; the probe is already inside it.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
If the process listens on internal port 3000 but the server maps it to another host port, the check still targets localhost:3000. Confirm the application’s actual listen port rather than relying on the port exposed by a domain or reverse proxy.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Include the HTTP client in the final image
The generated HTTP check calls curl or wget from the running image. Installing either utility on the Coolify deployment server does not satisfy the check. Minimal images frequently omit both, so verify the final image before blaming the endpoint.
Configure a non-Compose application in Coolify
- Open the application in Coolify.
- Select Healthcheck.
- Choose HTTP for a URL probe or CMD for an explicit command.
- Enter the check details. For HTTP, provide the internal host, port and path. For CMD, enter the command that should exit successfully when the app is ready.
- Set Interval, Timeout, Retries and Start period.
- Select Save changes.
- Select Enable and confirm the change.
- If the application was already running, restart or redeploy it. Saving the form alone does not retrofit a health check into an existing container.
The form displays Expected code and Expected response text. Coolify’s current generated HTTP check does not compare those fields; it currently uses the exit status from curl or wget. Treat the endpoint’s HTTP success status and the client’s exit code as the effective pass condition.
After enabling the check, allow enough time for the first evaluation. A newly created container can remain in the starting state during its configured grace period. If the application is already deployed, recreate it so the generated container definition actually contains the new probe.
Set timing values that match startup
Four values control how Docker evaluates the probe:
- Interval: the time between attempts.
- Timeout: the maximum time allowed for one attempt.
- Retries: the number of consecutive failures before Docker marks the container unhealthy.
- Start period: the startup grace period during which failures do not count toward the unhealthy threshold.
Interval, timeout and retries must each be at least one second. Choose a start period that covers real initialization, not an optimistic boot time. Migrations, cache loading, asset generation and dependency warm-up all belong in that window. A process that listens on its port quickly but cannot yet serve real requests needs a readiness endpoint that remains unsuccessful until it is genuinely ready.
Retries count consecutive failures, so a transient success resets that failure streak. Timeout applies to one attempt; increasing it does not substitute for a correct endpoint or a missing client binary. Start period is specifically for startup work, not a way to hide a permanently failing service.
Coolify’s Dockerfile example uses interval=30s, timeout=5s, start-period=20s and retries=3. Those are example values, not universal recommendations. A slower application may need a longer start period; a very quick service may use shorter intervals while still respecting the one-second minimums.
Verify exactly what Coolify will run
Use the application’s built-in Terminal so the test runs in the same environment as the health check. For an HTTP probe, run:
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
curl --fail http://localhost:3000/health
Replace 3000 and /health with the values in your configuration. A successful request exits with code 0. The --fail option makes HTTP error responses produce a failure exit code.
Check that at least one supported client exists:
command -v curl || command -v wget
If neither command is found, add one to the image or use a CMD check that relies on a binary already present. Then test the exact command from the Healthcheck form, including its arguments and working-directory assumptions. A command that works on your laptop but references a host-only path or utility will fail in the container.
When the request fails, distinguish connection errors, HTTP failures and timeouts. A connection refusal usually means the process is not listening on the selected internal port. An HTTP failure indicates that the endpoint answered but is not ready. A timeout points to slow initialization, a blocked dependency or an endpoint that does too much work. These distinctions help you change the right setting instead of simply increasing every timer.
Put the check in a Dockerfile
A Dockerfile HEALTHCHECK is appropriate when the image should carry its own readiness contract across registries and deployments. The utility used by the instruction must be installed in the final stage, not only in an earlier build stage.
FROM node:22-alpine
RUN apk add --no-cache curl
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3
CMD curl --fail http://localhost:3000/health || exit 1
CMD ["npm", "start"]
Here, the application listens on internal port 3000, and curl is installed in the same final image that runs the application. The command succeeds only when the endpoint responds without an HTTP failure. For a non-Compose Dockerfile application, Coolify detects an image-provided check and does not add its dashboard-configured check to the generated container definition. Avoid maintaining two competing definitions when the image check is the one that should apply.
In a multi-stage build, installing curl in the builder stage is not enough. The runtime stage must contain the executable and any libraries it needs. Rebuild the final image and run the command there before deploying it.
Define checks for Docker Compose services
Compose applications use service-level health checks in the Compose file rather than the standard Coolify application Healthcheck page. Define a check for each service whose readiness matters, using that service’s internal address and port.
services:
api:
image: example/api:1.0
healthcheck:
test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/health"]
interval: 30s
timeout: 5s
retries: 3
This example uses wget, so the example/api:1.0 image must contain it. A different service may need a different path, port or client. Do not assume that a health check on one service proves that every service in the stack is ready.
Free tools Windows power users keep installed
One-click scans. No signup required.
Service ownership matters in Compose: the API, worker and database can each have different readiness conditions. Put the probe beside the service it evaluates, and verify each command in that service’s container rather than in the API container or on the host.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Exclude an optional service from overall health
If a Compose service is optional and should not determine the overall Service health, Coolify documents exclude_from_hc: true for that service. Use this only when losing the service should not make the deployed workload unavailable; otherwise, excluding it can hide a real outage.
Understand Compose update behavior
Docker Compose uses its own service reconciliation process. It does not follow Coolify’s application-level rolling-update sequence, so evaluate dependencies and restart behavior at the service level when changing Compose health checks.
How health checks affect routing and updates
Proxy routing
When Traefik is the Coolify Proxy, unhealthy containers are removed from the router’s available servers. If all replicas are unhealthy, the proxy has nowhere to forward the request and can return 404 Not Found or No available server. Those messages can therefore indicate a failed readiness probe rather than a missing route.
Application-level rolling updates
For an application-level rolling update, Coolify can wait for a new container to pass its check before removing the old one. If the replacement never becomes healthy, Coolify can remove the failed replacement while the healthy version remains. This behavior depends on the application-level update path; Compose performs its own reconciliation instead.
This makes a conservative readiness check important during deployments. If the endpoint reports success before migrations or cache loading finish, Coolify can route traffic to a container that is technically running but not usable. If it never reports success because it tests an optional dependency, a valid replacement can be discarded. Align the endpoint with the traffic the application must actually serve.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot an unhealthy app in the right order
- Run the same probe in Terminal. Execute the exact HTTP request or CMD command from inside the running container. This separates an application failure from a configuration misunderstanding.
- Confirm the client binary. Run
command -v curl || command -v wget. If the generated HTTP check cannot find either binary, install one in the final image or change the check. - Check the internal port. Confirm that the process listens on the port used by the probe. A public or host-mapped port is the wrong target for a request originating inside the container.
- Inspect Runtime Logs. Look for crashes, migration errors, dependency failures, cache initialization and other startup problems. A timeout can be a symptom of an application that never completed initialization.
- Review readiness semantics. Ensure the endpoint returns success only when the service can actually handle traffic, and that it does not require an unavailable external route or user authentication.
- Allow enough startup grace. Increase the start period when legitimate initialization takes longer than the current window. Adjust timeout only when the endpoint itself needs more time, and adjust retries when transient failures are expected.
- Recreate the container. After changing the configuration, restart or redeploy so Coolify creates a container with the new health-check definition.
When the result is “No available server”
First test the check internally rather than changing proxy rules. A failed internal request, missing client, wrong port or insufficient start period can make every container unhealthy and produce the proxy message. Once an internal probe succeeds and the container reports healthy, check the application’s routing and domain configuration if the proxy error remains.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
When the check passes but users still see errors
A health check proves only what its command tests. A route that returns success while the main application path is broken, or a probe that omits a required dependency, can leave a container marked healthy. Keep the check lightweight, but include the minimum readiness conditions that determine whether normal traffic can be served.
When a saved change appears to do nothing
Inspect the running container after saving. If it was not restarted or redeployed, it may still have the previous definition. Recreate it, then run the current command in Terminal and confirm that the expected client, path and port are present. For Dockerfile and Compose deployments, check the image or Compose file that actually produced the container.
Practical design checklist
- Choose one owner: the Coolify Healthcheck page, the Dockerfile or Compose.
- Use a dedicated, read-only readiness path such as
/health. - Target
localhostand the container’s listening port. - Install
curlorwgetin the final image when using an HTTP probe. - Test the exact request or command from the application Terminal.
- Set a start period that covers migrations, cache loading and other initialization.
- Remember that the displayed expected code and response text are not currently compared by Coolify’s generated HTTP check.
- Restart or redeploy after changing a check on an already-running application.
- For Compose, define each service’s healthcheck in the Compose file and decide explicitly whether optional services should be excluded.
Which configuration should you use?
Use the Coolify Healthcheck page when you want to manage a single application’s probe from the deployment interface and the application type supports that page. Use a Dockerfile instruction when the check is part of the image’s reusable contract. Use Compose healthchecks when the workload consists of multiple services and readiness belongs with each service definition. In every case, the decisive details are the same: the probe runs inside the container, the command must exist there, the port must be internal, and the grace period must reflect actual startup work.
Best Value
Frequently Asked Questions
How do I set up a health check in Coolify?
Open the application, select Healthcheck, choose HTTP or CMD, enter the internal host, port, path or command, set interval, timeout, retries and start period, then select Save changes and Enable. Restart or redeploy an already-running application so the container is recreated with the probe.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →What URL and port should a Coolify HTTP check use?
Use a lightweight readiness path such as /health, host localhost or 127.0.0.1, and the port the process listens on inside the container. Do not use the public domain, proxy URL or host-mapped port.
Why is my Coolify app unhealthy or showing No available server?
Run the exact probe in the application Terminal, verify that curl or wget exists in the image, confirm the internal port and inspect Runtime Logs. Also check that the start period covers migrations and initialization. If every container is unhealthy, Traefik can show No available server.
Does Coolify compare Expected code and Expected response text?
The current generated HTTP check does not compare those displayed fields. It uses the exit status from curl or wget, so the request must complete successfully and return an HTTP success response.
How do I configure a Docker Compose healthcheck in Coolify?
Define healthcheck separately under each relevant service in the Compose file. Compose applications do not use the standard Coolify application Healthcheck page, and each service’s probe must use binaries, paths and ports available inside that service’s container.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What if my image does not contain curl or wget?
Install one in the final runtime image, or choose CMD and use a command that already exists in the image. Installing the utility on the Coolify server does not satisfy a probe that runs inside the application container.
When should I use exclude_from_hc in Compose?
Use exclude_from_hc: true only for an optional service that should not determine overall Service health. Excluding a required service can hide an outage.
Do I need to restart after changing a health check?
Yes. Saving the form does not retrofit a probe into an existing container. Restart or redeploy the application so Coolify creates a container with the updated health-check definition.
The Bottom Line
Define one clear readiness contract, run it from inside the container, and target the internal listening port. Use Coolify’s Healthcheck page for supported non-Compose apps, a Dockerfile HEALTHCHECK for image-owned behavior, and Compose healthcheck entries for service-level workloads. Make sure the client binary exists in the final image, give startup work enough grace, test the exact command in Terminal, and recreate the container after changes.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




