Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Set a Coolify health check from the application’s Healthcheck page, choose HTTP or CMD, enter a command or an internal URL, configure the timing values, select Save changes, then Enable the check. Restart or redeploy an already-running application so Coolify recreates its container with the new configuration.

The probe runs inside the application container, not from your browser or the deployment server. Therefore, the health-check client (curl or wget) must exist in the final image, and the URL must use the container’s listening port rather than a public or host-mapped port.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What a Coolify health check does

A health check is a repeated command that tells Docker and Coolify whether a container is ready to serve requests. A passing check keeps the container eligible for traffic. A failing check eventually marks it unhealthy, allowing the proxy and deployment logic to stop sending requests to it.

For an HTTP check, Coolify executes a request from inside the container. A typical probe is curl --fail http://localhost:3000/health. The command must finish successfully (exit code 0). The endpoint should be lightweight, available without changing application data, and report success only after the process can actually handle requests.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Health checks are separate from external monitoring. An external monitor tests the public route from outside the server; a Coolify check tests the container’s local readiness. Both can be useful, but they answer different questions.

Choose where the check is defined

Your application type determines which configuration owns the check. Use one of these locations rather than combining them indiscriminately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Option Best fit Ownership Important behavior
Coolify Healthcheck page Nixpacks, Railpack, Static, Dockerfile, and Docker Image applications Coolify application configuration Changing a running container requires a restart or redeploy. HTTP checks need curl or wget in the image.
Dockerfile HEALTHCHECK A probe that should travel with the image wherever it is deployed The image author Every referenced executable must be present in the final image. For a non-Compose Dockerfile application, an image-provided check takes precedence over a dashboard-generated check.
Compose healthcheck Multi-service Docker Compose applications The individual Compose service definition Compose applications do not use the standard application Healthcheck page. Define a check separately for each service that needs one.

If an optional Compose service should not determine the overall service health, Coolify documents the exclude_from_hc: true setting for that service.

Prepare a reliable readiness endpoint

Return success only when the app is ready

Create an endpoint such as /health or /ready that responds only when the server process is ready to accept traffic. If your application performs migrations, loads a cache, or waits for another required dependency during startup, do not report healthy before that work is complete.

Keep this endpoint fast and side-effect-free. It should not create records, send emails, trigger jobs, or mutate application state. A probe can run repeatedly, so any side effect may occur many times.

Use the container’s network address and port

In most cases, use localhost (or 127.0.0.1) and the port on which the process listens inside the container. Do not use the public domain name, a reverse-proxy port, or a host-published port. For an app listening internally on port 3000, the request is usually:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl --fail http://localhost:3000/health

The port in this command must match the value you enter in Coolify or the command in your Dockerfile or Compose file. A host mapping such as 8080:3000 does not mean the probe should use port 8080 from inside the container; the process is still reached at 3000 internally.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Make the client available in the final image

Coolify does not run an HTTP probe on the deployment server and then report that result to the container. The command executes in the running image. Install curl or wget in that image, and verify it is still present after the production build stage. Installing a client only on the server connected to Coolify will not satisfy the check.

Configure a non-Compose application in Coolify

These steps apply to Nixpacks, Railpack, Static, Dockerfile, and Docker Image applications when the health check is managed through the Coolify interface.

  1. Open the application in Coolify.
  2. Select Healthcheck in the application settings.
  3. Choose HTTP for a URL probe or CMD for an arbitrary command.
  4. Enter the host, internal port, and path for an HTTP check, or enter the complete command for a CMD check.
  5. Set Interval, Timeout, Retries, and Start period.
  6. Select Save changes.
  7. Select Enable and confirm the setting.
  8. If the container was already running, restart or redeploy the application so Coolify creates a container with the new health-check definition.

HTTP fields and what they actually do

The form displays fields for an expected status code and expected response text. In Coolify’s current generated HTTP check, those two fields are displayed but are not compared by the generated probe. The effective test is whether the generated curl or wget command exits successfully. For a curl --fail request, a server-side error response causes failure, while a successful response allows the command to exit with code 0.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not use the displayed response-text field as a substitute for application-level readiness logic. Put the important readiness decision in the endpoint itself and verify the exact command from the application terminal.

CMD checks

Choose CMD when an HTTP request is not the right signal—for example, when a worker has no HTTP listener and you need to check a local process or file. The command still executes inside the container, so every executable, script, environment variable, and path it references must exist there. Design the command to return exit code 0 only when the service is ready.

Set timing values for real startup behavior

Coolify exposes four timing controls that Docker uses to decide when failures matter:

Setting Meaning How to choose it
Interval Time between probe attempts Use a frequency that detects failure promptly without creating unnecessary load.
Timeout Maximum time allowed for one attempt Make it longer than a normal response, but short enough to detect a stalled process.
Retries Consecutive failures required before Docker marks the container unhealthy Allow transient startup or network delays without hiding a persistent failure.
Start period Startup grace period before probe failures count Cover migrations, cache loading, dependency initialization, and other known startup work.

Interval, timeout, and retries must each be at least one second. The correct values depend on the application’s actual startup and response times. A slow-starting service with a short start period can be marked unhealthy while it is still doing legitimate initialization, which can cause traffic failures or an unnecessary replacement container.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Coolify’s documentation shows interval=30s, timeout=5s, start-period=20s, and retries=3 as example Dockerfile values. Treat those as an example starting point, not universal recommendations.

Verify the probe from the application terminal

The fastest way to separate an application problem from a Coolify configuration problem is to run the same probe in the container.

  1. Open the application’s Terminal in Coolify.
  2. Run the exact HTTP request configured in the Healthcheck page, changing the example port and path to your values:
    curl --fail http://localhost:3000/health
  3. Check the command’s exit status. A successful request exits with code 0.
  4. If the command is missing, check for an installed client:
    command -v curl || command -v wget
  5. For a CMD check, paste the complete configured command into the terminal and inspect its output and exit status.

Testing the request from your laptop is not equivalent. Your laptop reaches the public proxy, while the health check reaches the process through the container’s own network namespace.

Add a health check to a Dockerfile

Put a Docker HEALTHCHECK instruction in the Dockerfile when the probe should be bundled with the image. The final image must contain the client used by the instruction. This example installs curl in a Node Alpine image and checks an internal readiness route:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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"]

The backslash continues the instruction across lines. The command returns success when the request succeeds and returns failure when curl --fail reports an error.

Dockerfile precedence

For a non-Compose Dockerfile application, Coolify detects an image-provided health check and does not add the dashboard-configured check to the generated container definition. Decide which definition should be authoritative before troubleshooting apparently ignored dashboard values. If you change the Dockerfile check, rebuild and redeploy the image so the new instruction is present.

Define checks in Docker Compose

Compose applications use a different configuration path. They do not use the standard application Healthcheck page. Add a healthcheck block under each service that needs one, using the service’s internal port and local address.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
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

In this example, the image must contain wget, and the API must listen on port 3000 inside the container. A multi-service stack may need separate checks for the API, worker, database, or other services. Give each service a test that represents that service’s own readiness instead of pointing every check at the same endpoint.

If a Compose service is optional and should not determine the overall Service health, use Coolify’s documented exclude_from_hc: true option for that service. Keep the setting with the Compose service definition so the behavior is reproducible when the stack is redeployed.

How health checks affect routing and updates

Traefik routing

When Coolify Proxy uses Traefik, unhealthy application containers are removed from routing. If every container fails its check, Traefik may return 404 Not Found or No available server rather than forwarding a request to an unhealthy process. Those messages usually indicate that no container currently qualifies for traffic; they do not identify the original application error by themselves.

Application-level rolling updates

During an application-level rolling update, Coolify can wait for a new container to pass its health check before removing the old container. If the replacement never becomes healthy, Coolify can remove that failed replacement while the healthy version remains available. This behavior depends on a meaningful readiness endpoint: a check that passes before migrations or dependencies are ready can send traffic to a broken replacement.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compose reconciliation

Docker Compose uses its own service reconciliation process rather than Coolify’s application-level rolling-update sequence. Treat Compose health checks as service-level definitions and do not assume the same replacement ordering as a single Coolify-managed application.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot an unhealthy app or “No available server”

Work through these checks in order. Each step removes a common source of ambiguity before you change timing values.

1. Run the exact probe inside the container

Open the application terminal and execute the configured URL or command. If it fails there, inspect the endpoint, process, port, and image. If it succeeds manually but Coolify still reports failure, continue with the binary and container-recreation checks below.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

2. Confirm the probe binary exists

Run command -v curl || command -v wget. A missing client means the generated HTTP check cannot run, even if the endpoint is healthy from another machine. Add the client to the final image and redeploy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Check the internal port

Use the port on which the process listens inside the container. Do not copy the public URL’s port or a host-to-container mapping into the internal request. Confirm the application’s bind address and listen port from its runtime configuration.

4. Read runtime logs

Inspect Runtime Logs for crashes, failed migrations, dependency connection errors, binding failures, and initialization that takes longer than the configured start period. A health check reports the symptom; runtime logs usually show the cause.

5. Recreate the container after configuration changes

Saving a check changes Coolify’s configuration, but an already-running container does not automatically gain a new definition. Restart or redeploy the application. For Dockerfile changes, rebuild the image as part of that deployment; for Compose changes, redeploy the stack so the service definition is applied.

6. Reconsider readiness semantics

If the endpoint responds successfully while the application still cannot serve real requests, move the readiness decision later in startup. If it performs expensive work, split a lightweight liveness endpoint from a readiness endpoint and use the readiness endpoint for routing decisions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Common configuration mistakes

  • Using a public hostname: the check is local to the container and should normally call localhost on the internal port.
  • Installing curl on the server only: the executable must be in the application image.
  • Expecting the response-text field to validate content: the current generated HTTP check relies on the curl or wget exit status rather than comparing the displayed expected text.
  • Forgetting to redeploy: a saved setting does not alter an existing container until it is recreated.
  • Using the application Healthcheck page for Compose: define healthcheck under each Compose service instead.
  • Setting a short start period: migrations, cache loading, or dependency initialization may legitimately outlast it.
  • Checking an endpoint with side effects: repeated probes can alter data or trigger work unexpectedly.
  • Adding a client in an intermediate build stage: multi-stage builds must copy or install the executable in the final runtime stage.

A practical setup checklist

  • Identify whether the application is managed through Coolify, a Dockerfile, or Docker Compose.
  • Choose a lightweight readiness endpoint or a deterministic CMD.
  • Use localhost or 127.0.0.1 and the container’s listening port.
  • Ensure curl or wget exists in the final image for HTTP checks.
  • Set interval, timeout, retries, and start period to match observed startup and response behavior.
  • Save and enable the check.
  • Restart or redeploy to recreate an existing container.
  • Run the exact probe from the application terminal.
  • Review runtime logs if the probe fails or every container is removed from routing.

Bottom line

A dependable Coolify health check is a local, repeatable readiness test: it runs inside the container, uses the internal port, has its client binary available in the image, and waits long enough for genuine startup work. Use the Coolify Healthcheck page for supported non-Compose applications, a Dockerfile HEALTHCHECK when the image should own the rule, and a per-service Compose healthcheck for stacks. Always verify the exact command in the application terminal and recreate the container after changing the configuration.

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.