3.7 KiB
3.7 KiB
name, description
| name | description |
|---|---|
| coolify | Use when user asks you to use this skill to debug Coolify issues or to investigate something related to Coolify. |
Coolify
Overview
Opens Playwright MCP, lets the user log in to Coolify, and then takes a snapshot for further investigation.
Coolify Instance
- Primary URL:
https://coolify.gremiumhub.de/
Process
- Open the browser
- If you know the URL related to the current request, navigate to that URL or ask the user to do so. Otherwise, assume
the user needs to log in first and navigate to log in if the user does not provide a URL
(
mcp__playwright__browser_navigate → https://coolify.gremiumhub.de/login) - (If not logged in) Stop and wait for user to log in.
- (When logged in) Navigate to the page that might be related to the current request if the user has not done so. Ask for the content of the page if this might be easier for you to understand the issue.
Additional Notes
- If you need to do something in the terminal, write down all commands first that you want to execute and ask the user to execute them. Do not execute any command directly.
- Write down in a summary what you have changed in the Coolify instance.
- If you encounter an error while opening the browser (e.g., "browserType.launchPersistentContext: Failed to launch the browser process"), ask the user to restart the browser and stop until the user confirms that the browser is restarted or that you can try to open the browser again.
- Always rely on the docker-compose files and configured environment variables in the Coolify instance to understand how the instance is set up and how it works. Do not assume anything that is not explicitly stated in the docker-compose files or environment variables. If you are not sure about something, ask the user to check the docker-compose files and environment variables instead of making assumptions.
- Ignore the local deployment files. Only rely on settings and configurations that are actually used in the running instance. If you are not sure which files are relevant, ask the user to check which files are actually used in the running instance instead of making assumptions.
Efficient Data Extraction
Env vars — use Developer view: Click it via JS (button refs are unreliable in Livewire apps), then read the textarea:
// Click Developer view
Array.from(document.querySelectorAll('button')).find(b => b.textContent.trim().includes('Developer view'))?.click()
// Read all vars at once
document.querySelector('textarea')?.value
Compose file — Coolify uses Monaco editor:
window.monaco?.editor?.getModels()?.[0]?.getValue()
Prefer JS extraction over screenshots/scrolling for any text data.
Key Behavioral Notes
$SERVICE_*magic variables are only substituted in the compose file, not in manually-added panel env vars. Panel vars with$SERVICE_URL_*values are passed as literal strings to containers — this causesNOT_SETerrors in Nuxt OAuth whenNUXT_OAUTH_KEYCLOAK_SERVER_URL=$SERVICE_URL_KEYCLOAKis set via the panel instead of the compose.- Panel vars are driven by the compose file. Coolify syncs env vars from the compose into the panel — they are not independent. You cannot delete a variable from the panel without first removing it from the compose file. To fix a value, edit the compose file; the panel updates automatically.
$SERVICE_URL_*includeshttps://;$SERVICE_FQDN_*is hostname only (no protocol). Mixing them breaks JWT issuer validation.- The "Hardcoded variables are not shown here" warning refers to vars with fully hardcoded literal values in the compose. Vars referencing
$SERVICE_*or${VAR}do appear in the panel.