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

Open the application in Coolify, choose Environment Variables, add the key and value in Normal view (or paste dotenv entries in Developer view), select whether each variable is available at build time, runtime, or both, and save. A saved edit is not live by itself: redeploy after build-time changes, or restart when only runtime values changed and the existing image can be reused.

Where Coolify application variables live

Coolify stores environment variables on each application. They are not configured globally just because several applications run in the same project or server. Open the target application, then select Environment Variables. From there you can enter keys one at a time, paste a dotenv-formatted block, or reference a shared variable.

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

The most important decision is lifecycle scope. A value used by a framework while compiling assets belongs in the build environment. A database password read when the container starts belongs in the runtime environment. The two controls are independent, so a variable can be available in one phase, the other, or both.

Add a variable in Normal view

Normal view is the safest choice for individual edits, locked secrets, and values that need special handling such as multiline keys.

#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.
  1. Open the application in Coolify.
  2. Select Environment Variables.
  3. In Normal view, select Add.
  4. Enter the variable name, such as API_URL, and its value, such as https://api.example.com.
  5. Choose the availability controls: Build and runtime, Build only, or Runtime only.
  6. Choose the value type and interpolation behavior when those options are shown. Use Multiline for a private key or certificate, and Literal when dollar signs must remain exactly as typed.
  7. Select Add variable, then save the application configuration.

Use uppercase names with underscores when the application or framework expects conventional environment-variable naming. The name must match the spelling used by your code, container image, or Compose file; DATABASE_URL and Database_Url are different keys.

Import several values in Developer view

Developer view is useful when you already have a dotenv file or need to edit many ordinary key-value pairs together. Paste entries in dotenv format, one per line:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
NODE_ENV=production
API_URL=https://api.example.com
LOG_LEVEL=info

Lines beginning with # are ignored, so comments can remain in the pasted block. Review the result before saving, especially if the source file contains credentials. Locked secrets and multiline values are edited in Normal view rather than pasted as ordinary single-line entries.

Keep the file’s syntax compatible with dotenv: put the key on the left of the first equals sign and the value on the right. If a value contains spaces, quotes, line breaks, or shell expansion characters, verify how the consuming application expects it and use Normal view’s value-type controls where necessary.

Choose build-time and runtime scope deliberately

Coolify’s scope choices determine when a value is injected. They do not describe how long the value should exist; they describe which lifecycle phase can read it.

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
Scope Available during Typical use What it cannot do
Build and runtime Image creation and the running container A public API endpoint or configuration needed by a build step and by the application after startup It does not make a changed value appear in an already-running container without a restart or redeploy
Build only Image creation A package-registry token or feature flag required while compiling the image The running container should not rely on it; it is absent from runtime injection
Runtime only After the container starts Database credentials, service tokens, and other values read by the live process Build scripts cannot read it while the image is being created

A common failure is selecting Runtime only for a value that a frontend build needs. The build then succeeds without the value or produces an artifact containing an empty setting. The opposite mistake—making a secret Build and runtime when only startup access is needed—widens its exposure unnecessarily.

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.

Examples of the right phase

  • NEXT_PUBLIC_API_URL or another client bundle setting is commonly needed while assets are built; confirm the framework’s behavior before choosing Build only or Build and runtime.
  • DATABASE_URL used by a server process at startup is normally Runtime only unless migrations or another build step also require it.
  • A private package token needed by npm install is a build concern. Prefer a build secret mechanism rather than embedding the token in an image layer.

Save, redeploy, or restart: making the edit effective

Saving changes updates Coolify’s configuration, but the existing process and image do not automatically acquire every new value. Coolify’s documentation states: “Save the variables, then redeploy or restart the application so Coolify recreates the runtime environment.”

  1. Save the variable changes.
  2. Use a new deployment when a build-time variable changed, because the image must be created again with the new value.
  3. Use a restart when only runtime variables changed and the existing image can be reused. Restarting recreates the container environment without requiring a new image build.
  4. Open the deployment status and logs after the operation. Check the application itself for a safe, non-secret health or configuration indicator rather than printing credentials.

If a value is compiled into static JavaScript, changing a runtime variable cannot rewrite the already-built files. Rebuild and redeploy with the correct build scope instead.

Handle passwords, tokens, and multiline secrets safely

Use the correct value type

Passwords, API tokens, private keys, certificates, and connection strings should be treated as secrets. For a PEM private key or certificate, choose Multiline in Normal view so line breaks are preserved. For a value containing dollar signs that must not be expanded or interpolated, choose Literal.

Protect build-time credentials

Traditional Docker build arguments can remain visible in image metadata. Coolify warns that build arguments may appear there, so a secret passed as an ordinary argument can outlive the build log and be recoverable from the image. When the build server supports it, use BuildKit build secrets for sensitive build-time access instead of placing the credential in an image layer or a normal build argument.

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.

Only grant a secret the phase it needs. A runtime database password should not be made available to a frontend compilation step, and a package token should not be injected into the long-running container if the application never uses it there.

Consider an external secret manager

Coolify documents integrations for Doppler, Infisical, and HashiCorp Vault. These systems can supply resolved values to deployments while keeping the source of truth outside application configuration. Coolify states that resolved secrets are redacted from deployment logs. A change to a build variable supplied this way still requires a deployment; a restart alone cannot alter an image that was already built.

Reuse values with shared variables

Shared variables reduce duplicated configuration at team, project, environment, or server scope. Reference them with the corresponding syntax:

Scope Reference
Team {{team.VARIABLE_NAME}}
Project {{project.VARIABLE_NAME}}
Environment {{environment.VARIABLE_NAME}}
Server {{server.VARIABLE_NAME}}

Creating a shared variable does not attach it to every application automatically. After defining it, return to the application’s variable list and assign the reference there. This explicit assignment prevents an unrelated application from receiving a value merely because it shares a project or server.

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.

Shared values are useful for a common registry URL, region name, or organization-wide endpoint. Keep application-specific credentials local when sharing would grant access more broadly than necessary. When a shared value changes, apply the same lifecycle rule as a local value: rebuild for build-time consumers and restart for runtime-only consumers.

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.

Use Coolify’s predefined variables

Coolify exposes predefined values that describe the deployment and its runtime context. Available names include:

  • COOLIFY_FQDN
  • COOLIFY_URL
  • COOLIFY_BRANCH
  • COOLIFY_RESOURCE_UUID
  • COOLIFY_CONTAINER_NAME
  • SOURCE_COMMIT
  • PORT
  • HOST

SOURCE_COMMIT is excluded from Docker builds by default. If a build step needs the commit identifier—for example, to generate a version file—enable its build availability explicitly. Do not assume that a predefined runtime value is present during image creation; check and set the appropriate build option.

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

Map Docker Compose variables correctly

When Coolify detects variable references in a Docker Compose configuration, it displays them as application variables. The syntax communicates whether a value is optional, has a default, or is mandatory:

Compose expression Meaning
${DATABASE_URL} Use the value supplied for DATABASE_URL.
${LOG_LEVEL:-info} Use LOG_LEVEL when set; otherwise use info.
${API_KEY:?} Require a non-empty API_KEY; deployment is blocked while it is empty.

Use the required form for credentials or endpoints without a safe default. A default such as info is appropriate for an optional logging preference, but silently defaulting a database host or signing key can produce a deployment that starts and fails later in a less obvious way.

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

Automate variables with the Coolify CLI

The CLI is useful for repeatable deployments, CI workflows, and environments where dashboard edits are too manual. Replace the placeholders with the real application or deployment UUIDs.

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.

Create one variable

coolify app env create <application-uuid> --key API_URL --value https://api.example.com

This creates or sets API_URL for the specified application. Avoid putting a secret directly in --value when possible: shell history, process inspection, and CI logs can retain command arguments.

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

Synchronize a dotenv file

coolify app env sync <application-uuid> --file .env.production

Sync updates matching keys and creates keys that are missing in Coolify. It does not delete variables that are absent from the file, so removing a line locally is not a deletion request. Review the application’s variable list separately when a key must be retired.

Deploy and inspect

coolify deploy uuid <application-uuid>
coolify deploy list
coolify deploy get <deployment-uuid>
coolify app get <application-uuid>
coolify app logs <application-uuid>

You can deploy by application name instead of UUID where the CLI supports that workflow. Use the deployment list and detail commands to confirm that the new deployment was created, then inspect logs for startup errors. Never echo a secret while verifying; test a boolean condition, masked value, or application health endpoint instead.

Which configuration method should you use?

Method Best for Lifecycle control Secret exposure and repeatability Verification
Dashboard, Normal view One-off edits, locked secrets, multiline values Explicit Build and runtime, Build only, or Runtime only selection Good interactive control; manual changes are harder to reproduce Review the saved variable and deployment status in the application
Dashboard, Developer view Bulk dotenv entry for ordinary values Set scope for the imported entries as required Fast, but pasted files can expose secrets to the browser or clipboard Review parsed keys before saving, then inspect the deployment
CLI Automation, CI, and repeatable environment setup Works with the same application lifecycle; deploy after build changes Highly repeatable, but command arguments and logs can leak secrets Use coolify deploy list, deploy get, and application logs
Shared-variable reference Values reused across multiple applications Scope is inherited from the referenced value and still must be assigned to each app Reduces duplication; broad scopes require careful access control Confirm the reference appears in the application’s variable list
External secret manager Centralized secret ownership and rotation Build-secret changes require a new deployment; runtime changes require recreation of the runtime environment Resolved secrets are redacted from deployment logs; adds integration complexity Check integration resolution and the resulting deployment status

Troubleshoot a missing or stale value

The application says the variable is undefined during build

  • Open the variable in Coolify and verify it is not Runtime only.
  • Check the exact key spelling and capitalization used by the build tool.
  • If it is a shared variable, confirm that the reference was assigned to this application.
  • Start a new deployment; restarting an old image cannot add a value that the build never received.

The process still sees the old runtime value

  • Confirm the new value was saved in the target application, not only in a shared-variable definition.
  • Restart the application so Coolify recreates the runtime environment.
  • If the value is compiled into static assets, change its build scope and redeploy instead.

A multiline key fails to parse

Edit it in Normal view and set the value type to Multiline. Pasting a certificate into a single-line dotenv field can remove line breaks or introduce escaping that the TLS library rejects.

A dollar sign changes unexpectedly

Use Literal interpolation when the dollar sign is data rather than a variable reference. Then restart or redeploy according to the variable’s scope.

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

A Compose deployment is blocked

Find expressions using the required form, such as ${API_KEY:?}. Supply a non-empty value in the application’s Environment Variables screen, save it, and deploy again. A default expression such as ${LOG_LEVEL:-info} will not block deployment when the key is absent.

A secret appears in build output or image metadata

Stop using a traditional Docker build argument for that credential. Rotate the exposed secret, remove it from layers and logs where possible, and use BuildKit build secrets when the build server supports them. Restrict the replacement to Build only if the build genuinely needs it.

Pre-deployment checklist

  • The key exactly matches the name expected by the application or Compose file.
  • The value is assigned to the correct application, including any shared-variable reference.
  • Build-time and runtime access are selected independently and intentionally.
  • Multiline values use the Multiline type; literal dollar signs use Literal interpolation.
  • Secrets are not embedded in Docker build arguments, shell history, or CI logs.
  • Build-time changes have a new deployment queued; runtime-only changes have a restart queued.
  • Compose required variables are non-empty before deployment.
  • Verification uses deployment status, logs, and non-secret health checks rather than printing credentials.

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.