Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Set a Custom Domain in Coolify Docker Compose

A practical guide to connecting a custom hostname to a Coolify Docker Compose service, including DNS records, internal ports, HTTPS certificates, generated Compose settings, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To put a custom domain in front of a Docker Compose application deployed by Coolify, point the hostname’s DNS record to the connected server, add the hostname in the resource’s Domains page, select the web-facing Compose service, and enter that container’s internal listening port when it is not the default. Use https:// if you want Coolify’s proxy to obtain and renew a Let’s Encrypt certificate automatically. Then redeploy, inspect the generated Compose configuration, and test the hostname from outside the server.

What you are configuring

A custom domain in Coolify is a reverse-proxy route, not merely a Docker port publication. A browser requests a hostname such as app.example.com on the normal public web ports. Coolify’s proxy listens on ports 80 and 443, matches the configured hostname and optional path, and forwards the request across an attached Docker network to the selected container.

As an Amazon Associate I earn from qualifying purchases.

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

The Coolify control plane does not relay your application’s traffic. The proxy and the application resource communicate over Docker networking on the server where the resource runs. That distinction explains why DNS, service selection, the internal port, the proxy, and the firewall must all agree.

For a Compose resource, Coolify keeps the source Compose definition as the file you edit. During deployment it generates a deployable Compose definition containing normalized runtime settings, networks, labels, and proxy configuration. The generated version is useful for diagnosing routing, but changes intended to persist should be made in the source definition or in the resource settings rather than by editing generated output.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [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.

Before adding the domain

Identify the server that runs the resource

The hostname must resolve to the connected server on which the Coolify resource is running. If the resource later moves to another server, the DNS destination must follow it. A record aimed at a different machine cannot reach the Compose service through this Coolify proxy.

Identify the web-facing Compose component

Compose projects commonly contain a web application, a database, workers, and supporting services. A domain belongs on the component that accepts HTTP requests. In Coolify’s domain form, select the receiving non-database service. A database or background worker normally has no browser route to serve, even if it is healthy.

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.

Confirm the container’s listening port

Find the port on which the web process listens inside its container. The illustrative value 3000 is common for development-oriented web applications, but your service may use another port. The value entered with the domain must match the process’s internal listening port and the interface on which that process accepts connections.

Step 1: Point DNS to Coolify’s resource server

Create a DNS record for the hostname you plan to use, such as app.example.com, and direct it to the server running the resource. The exact record type depends on how your DNS provider represents the server address:

  • Use the appropriate A record when the server is reached through an IPv4 address.
  • Use the appropriate AAAA record when the server is reached through an IPv6 address.
  • If your provider uses another supported record form, ensure that it ultimately resolves the hostname to the resource server rather than to a different endpoint.

Do not point only the parent domain if visitors will use a subdomain. The hostname entered in Coolify must be the same hostname that users request and that DNS resolves. Check the result from a network outside the server’s local environment, because a local resolver or split-DNS setup can hide an incorrect public record.

Check DNS before troubleshooting Coolify

Resolve the exact hostname and compare the returned address with the server that runs the resource. For example, resolve app.example.com, not just example.com. Check both address families if you publish both A and AAAA records; an incorrect AAAA record can send some clients to the wrong machine even when the A record is correct.

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

DNS changes may not be visible everywhere immediately. Wait until the hostname resolves correctly from an external network before judging certificate issuance or proxy routing. A certificate request made while the name still points elsewhere can fail even when the Coolify settings are correct.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【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.

Step 2: Add the hostname in the resource’s Domains page

  1. Open the Coolify application or service that contains the Compose resource.
  2. Open its Domains page.
  3. Choose Add domain.
  4. Select the scheme: http:// for an unencrypted route or https:// for a TLS route managed through the proxy.
  5. Enter the complete hostname, such as app.example.com.
  6. For a Compose project, select the non-database service that should receive the request.
  7. Enter the internal target port when the web container does not listen on the default expected port.
  8. Save the domain configuration.

The service choice and port are part of the route. Saving a hostname against a database, worker, or wrong web component can produce a valid-looking domain entry that sends traffic to the wrong process or to a process that cannot answer HTTP requests.

Use a path only when you intentionally share a hostname

Coolify’s Domains settings can include an optional path. A hostname-only route is the simplest arrangement: one hostname sends traffic to one selected service. A path-based route allows different paths to be mapped intentionally, such as one route for a web component and another for a separate component. Treat the path as part of the routing design; an accidental path can make the bare hostname appear to have no route.

Step 3: Set the internal target port correctly

The port associated with a domain is the port inside the selected container. If the process listens on port 3000, enter 3000 as the domain target. Coolify’s proxy receives the public request on port 80 or 443 and forwards it to that internal port over the Docker network.

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

This setting does not publish port 3000 on the host. Visitors continue to use the normal web URL, without adding :3000. The proxy handles the public-to-container connection.

Configuration What it controls What a visitor uses
Domain target port The listening port inside the selected container, such as 3000 https://app.example.com on public port 443
Compose ports: mapping Direct publication of a container port on the server A host address and published port, if that exposure is intentionally used

Do not add a host-port mapping merely because the domain form asks for an internal port. Publishing a host port creates a separate access path and can interfere with Coolify’s normal rolling replacement behavior. Use the domain route for proxy access; use host publication only when you deliberately need direct server-port exposure.

Confirm the process is reachable inside the container

The application must actually be listening on the port you enter and on an interface reachable through the container network. A process bound only to an inaccessible local interface can be running while the proxy still cannot connect. If the port is wrong, correct the application’s listening setting or the domain target rather than opening an unrelated host port.

Step 4: Choose HTTP or HTTPS

HTTP

An http:// domain creates an unencrypted route through the proxy. It can be useful for controlled diagnostics or a deliberately non-TLS endpoint, but requests and responses are not protected by HTTPS encryption.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [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

HTTPS

Enter the hostname with https:// to use Coolify’s automatic TLS flow. Coolify’s proxy requests and installs a Let’s Encrypt certificate and renews it before expiry when DNS and reachability are valid. The certificate process depends on the hostname resolving to the correct server and the proxy being reachable from the public network.

Choice Encryption Certificate handling Use when
http:// No transport encryption No automatic TLS certificate for that route You intentionally need an unencrypted endpoint or are isolating a routing problem
https:// Encrypted client-to-proxy connection Coolify requests, installs, and renews a Let’s Encrypt certificate when validation succeeds The hostname is publicly resolvable and you want the normal secure web route

Adding the HTTPS entry before DNS is correct can leave certificate issuance waiting or failed. Correct the DNS destination and public reachability first, then allow the proxy to retry or redeploy as appropriate.

Step 5: Save, redeploy, and inspect the generated configuration

  1. Save the domain and service settings.
  2. Redeploy or restart the resource so the proxy route and generated runtime configuration are applied.
  3. Open Show Deployable Compose.
  4. Check that the selected service, attached networks, labels, and domain-related settings correspond to the route you intended.
  5. Make an HTTPS request from outside the server to the hostname.

The deployable view is a diagnostic representation of what Coolify will run. It can reveal that the proxy network is missing, the wrong Compose component was selected, or the domain settings did not reach the generated labels. Keep the source Compose definition as the authoritative file for Compose edits; use the deployable view to verify what Coolify generated from it.

Verify from an external network

Test from a machine that is not relying on the server’s local routing. A simple request such as curl -I https://app.example.com can confirm whether the public hostname answers and can expose the response headers for inspection. If you need to see the response body, use a normal HTTPS request without the -I option.

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

The important check is not merely that a TCP connection exists. Confirm that the response is from the intended Compose component, rather than from a default proxy response, another resource, or a service reached through an unintended host-port mapping.

How the request flows

  1. The client resolves the custom hostname through DNS.
  2. The client connects to the resource server on public port 80 for HTTP or 443 for HTTPS.
  3. Coolify’s reverse proxy reads the hostname and any configured path.
  4. The proxy selects the matching route and the Compose service attached to it.
  5. The proxy forwards the request across the attached Docker network to the service’s internal target port.
  6. The selected container returns the response through the proxy to the client.

Because the control plane is not in the application’s traffic path, a control-plane page can be reachable while an application domain is not. Diagnose the public DNS record, proxy, Docker network, service, and internal port as separate links in the chain.

Single-hostname and path-based routing

Routing model Configuration Best fit Main risk
Single hostname One hostname mapped to one selected Compose service A conventional web application or API with its own domain Choosing the wrong service sends all requests to the wrong component
Path-based A hostname plus an optional path mapped to a selected service Several intentional routes sharing one hostname An incorrect or unexpected path prevents the request from matching the route you meant to test

Use a separate hostname when you want the clearest boundary between services. Use a path only when the applications are designed to coexist under that path and you have explicitly configured each route.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • 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.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting: no route, wrong response, or failed certificate

DNS resolves to the wrong server

Symptom: The domain shows an unrelated site, a timeout, or a certificate for another machine.

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

Check: Resolve the exact hostname externally and compare every returned A and AAAA address with the server running the Coolify resource. Correct stale or conflicting records at the DNS provider. If one address family is correct and the other is not, fix the incorrect record rather than assuming all clients will use the working address.

The domain is attached to the wrong Compose service

Symptom: The proxy responds, but the content is empty, a database protocol is visible, or a worker does not provide an HTTP response.

Check: Reopen the Domains settings and select the receiving non-database web service. Inspect Show Deployable Compose to verify that the hostname and labels reference that component. Redeploy after correcting the selection.

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

The internal target port is wrong

Symptom: DNS and the proxy appear healthy, but the request cannot reach the application or returns a gateway-style failure.

Check: Compare the domain’s target port with the port on which the process listens inside the container. For a service listening on 3000, the domain target must be 3000. Also confirm that the process listens on an interface reachable through the Docker network. Do not solve this by publishing an arbitrary host port.

The proxy or firewall is unavailable

Symptom: The hostname resolves correctly, but external connections to HTTP or HTTPS time out.

Check: Confirm that Coolify’s proxy is enabled, that the server firewall permits public ports 80 and 443, and that the proxy can attach to the resource’s Docker network. A container can be healthy while the public route remains unreachable if either the firewall or proxy-network attachment blocks the path.

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

Certificate issuance or renewal fails

Symptom: An HTTPS domain has no valid certificate, or certificate issuance reports a validation error.

Check: Verify that the hostname resolves to this server from outside, that public port 80 or 443 is reachable as required by the proxy’s validation flow, and that the proxy is running. Inspect proxy logs for the certificate error, correct DNS or reachability, and redeploy or retry after the changes are visible publicly.

Changes were made only in generated output

Symptom: A manual fix appears in the deployable configuration but disappears after the next deployment.

Check: Update the source Compose definition or the Coolify resource setting that produces the generated value. The generated Compose is an output of deployment; it is not the durable source file for your project.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

Testing is being done only from inside the server

Symptom: A local request succeeds, but users outside the server cannot connect.

Check: Repeat the request from an external network and resolve the public hostname there. Local container or host networking can bypass the public DNS, firewall, and proxy path that real visitors use.

Common configuration mistakes to avoid

  • Pointing the hostname at a different server than the one running the resource.
  • Entering the domain on a database or worker instead of the web-facing Compose service.
  • Using a published host port when the proxy needs only the container’s internal port.
  • Entering the host port or public port 443 as the container target when the process actually listens on another internal port.
  • Expecting HTTPS certificates before DNS has propagated and the proxy is publicly reachable.
  • Editing the generated deployable Compose instead of the source Compose definition or resource settings.
  • Forgetting to redeploy after saving the domain route.
  • Testing only with an internal address and assuming that proves the public hostname works.
  • Adding an unintended path and then testing the bare hostname, which does not match the path-specific route.

A practical decision checklist

  1. Which server? Confirm the resource’s connected server and point the hostname’s DNS record there.
  2. Which component? Select the non-database Compose service that actually serves HTTP.
  3. Which port? Enter the process’s internal container port, such as 3000 when that is where the web process listens.
  4. Which scheme? Choose https:// for encrypted access and automatic Let’s Encrypt management, provided public DNS and reachability are ready.
  5. Which route? Use a hostname-only entry unless you intentionally need a path-based route.
  6. What changed? Save and redeploy the resource.
  7. What was generated? Inspect Show Deployable Compose for networks, labels, service selection, and domain settings.
  8. Does it work publicly? Resolve and request the hostname from outside the server, then confirm the response belongs to the intended component.

Example configuration scenario

Suppose a Compose project contains a web service that listens inside its container on port 3000, plus a database service. The desired hostname is app.example.com. First, create the DNS record so app.example.com resolves to the server running this project. In the project’s Domains page, add https://app.example.com, choose the web service rather than the database, and set the target port to 3000. Save and redeploy.

Visitors still open https://app.example.com; they do not append :3000. Coolify’s proxy accepts the public HTTPS connection, manages TLS through its certificate flow, then forwards the request over the Docker network to port 3000 in the selected web container. If the request fails, inspect DNS, the selected service, the internal listener, proxy ports 80 and 443, network attachment, and the generated Compose configuration in that order.

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

What a successful setup looks like

A successful configuration has all of these properties at once:

  • The exact custom hostname resolves publicly to the server running the Coolify resource.
  • The Domains page contains that hostname with the intended scheme.
  • The selected Compose component is the web-facing, non-database service.
  • The optional target port matches the service’s internal listening port.
  • The proxy is enabled, can join the resource network, and is reachable on public ports 80 and 443.
  • The resource has been redeployed after the route was saved.
  • Show Deployable Compose reflects the expected network, labels, and domain route.
  • An external HTTPS request returns the intended component rather than a default, unrelated, or direct-host-port response.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.