An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 360+ one-click services on your own servers.
This report summarizes scanner evidence for coollabsio/coolify, a PHP project with 65,338 GitHub stars. SynthScan examined 703,940 lines of code across 4107 source files, recording 1816 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 3.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1663 finding(s).
Are imports declared and package/API names verified? 107 finding(s).
Are wrappers, guards, and repeated structures necessary? 1509 finding(s).
Which changes need focused human review? 1816 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1816 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/skills/laravel-actions/references/job.md | 392 | public function getJobDeleteWhenMissingModels(): bool | CODE |
| LOW | docker/coolify-terminal/terminal-utils.test.js | 285 | function createFakeWebSocketServer({ handles = true } = {}) { | CODE |
| LOW | docker/coolify-terminal/terminal-utils.js | 65 | export async function authenticateTerminalUpgrade(authHeaderCandidates, postToCoolify) { | CODE |
| LOW | docker/coolify-terminal/terminal-utils.js | 123 | export function createTerminalUpgradeHandler({ wss, authenticate, onRejected = () => {}, terminateAfterMs = TERMINAL_REJ | CODE |
| LOW | docker/coolify-terminal/terminal-utils.js | 182 | export function getTerminalSessionTimeout() { | CODE |
| LOW | docker/coolify-terminal/terminal-utils.js | 269 | export function normalizeHostForAuthorization(host) { | CODE |
| LOW | bootstrap/helpers/shared.php | 201 | function rawComposeBindMkdirCommand(string $source): ?string | CODE |
| LOW | bootstrap/helpers/shared.php | 349 | function validateHostFileMountPath(string $input, string $context = 'host file path'): string | CODE |
| LOW | bootstrap/helpers/shared.php | 501 | function validateDatabasesBackupInput(string $input): string | CODE |
| LOW | bootstrap/helpers/shared.php | 1304 | function formatEnvVariableForDevView(EnvironmentVariable|SharedEnvironmentVariable $variable, bool $canViewValue): strin | CODE |
| LOW | bootstrap/helpers/shared.php | 1403 | function extractYamlEnvironmentComments(string $rawYaml): array | CODE |
| LOW | bootstrap/helpers/shared.php | 1471 | function extractEnvVarCommentFromYamlLine(string $line): ?array | CODE |
| LOW | bootstrap/helpers/shared.php | 1586 | function extractCommentFromRemainder(string $remainder): ?string | CODE |
| LOW | bootstrap/helpers/shared.php | 1816 | function queryDatabaseByUuidWithinTeam(string $uuid, string $teamId) | CODE |
| LOW | bootstrap/helpers/shared.php | 2133 | function parseCommandFromMagicEnvVariable(Str|string $key): Stringable | CODE |
| LOW | bootstrap/helpers/shared.php | 2485 | function dnsMismatchGuidanceMessage(?string $targetLabel, ?string $ipForRecordType = null): string | CODE |
| LOW | bootstrap/helpers/shared.php | 2887 | function isAnyDeploymentInprogress(bool $showAll = false) | CODE |
| LOW | bootstrap/helpers/shared.php | 2958 | function formatRunningDeploymentsOutput(int $activeDeploymentCount, array $deploymentDetails = [], bool $showAll = false | CODE |
| LOW | bootstrap/helpers/shared.php | 4680 | function coolifyDefaultEnvironmentVariables(StandaloneRedis|StandalonePostgresql|StandaloneMongodb|StandaloneMysql|Stand | CODE |
| LOW | bootstrap/helpers/shared.php | 4700 | function convertToKeyValueCollection($environment) | CODE |
| LOW | bootstrap/helpers/shared.php | 4940 | function defaultNginxConfiguration(string $type = 'static'): string | CODE |
| LOW | bootstrap/helpers/shared.php | 5160 | function addPreviewDeploymentSuffix(string $name, int $pull_request_id = 0): string | CODE |
| LOW | bootstrap/helpers/shared.php | 5165 | function generateDockerComposeServiceName(mixed $services, int $pullRequestId = 0): Collection | CODE |
| LOW | bootstrap/helpers/shared.php | 5381 | function shouldSkipPasswordConfirmation(): bool | CODE |
| LOW | bootstrap/helpers/shared.php | 5398 | function hasRecentPasswordConfirmation(): bool | CODE |
| LOW | bootstrap/helpers/shared.php | 5416 | function verifyPasswordConfirmation(mixed $password, ?Component $component = null): bool | CODE |
| LOW | bootstrap/helpers/shared.php | 5439 | function extractHardcodedEnvironmentVariables(string $dockerComposeRaw): Collection | CODE |
| LOW | bootstrap/helpers/shared.php | 5489 | function extractDockerComposePassthroughKeys(mixed $environment): Collection | CODE |
| LOW | bootstrap/helpers/shared.php | 5505 | function extractDockerComposeEnvironmentVariableReferences(mixed $value): Collection | CODE |
| LOW | bootstrap/helpers/shared.php | 5520 | function dockerComposeEnvironmentVariableInfo(?string $dockerCompose, string $key): ?array | CODE |
| LOW | bootstrap/helpers/shared.php | 5583 | function dockerComposeEnvironmentVariableIsRequired(?string $dockerCompose, string $key): bool | CODE |
| LOW | bootstrap/helpers/shared.php | 5594 | function dockerComposeEnvironmentVariableShouldBeUnset(?string $dockerCompose, string $key, ?string $value): bool | CODE |
| LOW | bootstrap/helpers/shared.php | 5609 | function preserveLegacyDockerComposeNullAssignments(Collection $environment, Collection $environmentVariables): Collecti | CODE |
| LOW | bootstrap/helpers/shared.php | 5639 | function syncDockerComposeEnvironmentVariableRequiredState(Application|Service $resource): void | CODE |
| LOW | bootstrap/helpers/shared.php | 5745 | function convertContainerMemoryBytesToMegabytes(array $metrics): array | CODE |
| LOW | bootstrap/helpers/shared.php | 5758 | function resolveSharedEnvironmentVariables(?string $value, $resource): ?string | CODE |
| LOW | bootstrap/helpers/shared.php | 5813 | function redactLockedValuesInGeneratedCompose(string|array|Collection|null $compose, Application|Service $resource): str | CODE |
| LOW | bootstrap/helpers/shared.php | 5952 | function groupRefererBreakdownRows(array $rows): array | CODE |
| LOW | bootstrap/helpers/shared.php | 6010 | function isContainerToolingUserAgent(?string $userAgent): bool | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 35 | function isSubscriptionOnGracePeriod() | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 61 | function getStripeCustomerPortalSession(Team $team) | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 75 | function allowedPathsForUnsubscribedAccounts() | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 97 | function allowedPathsForBoardingAccounts() | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 105 | function allowedPathsForInvalidAccounts() | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 121 | function allowedPathsForTwoFactorSetup(): array | CODE |
| LOW | bootstrap/helpers/subscriptions.php | 140 | function updateStripeCustomerEmail(Team $team, string $newEmail): void | CODE |
| LOW | bootstrap/helpers/domains.php | 251 | function checkIfDomainIsAlreadyUsedViaAPI(Collection|array $domains, ?string $teamId = null, ?string $uuid = null) | CODE |
| LOW | bootstrap/helpers/domains.php | 346 | function normalizeComposeServiceName(string $serviceName): string | CODE |
| LOW | bootstrap/helpers/domains.php | 379 | function preferredComposeServiceNamesFromDomainKeys(iterable $domainKeys): array | CODE |
| LOW | bootstrap/helpers/domains.php | 408 | function getComposeServiceDomainString(array|Collection $domains, string $serviceName): ?string | CODE |
| LOW | bootstrap/helpers/domains.php | 463 | function hasComposeServiceDomainEntry(array|Collection $domains, string $serviceName): bool | CODE |
| LOW | bootstrap/helpers/domains.php | 538 | function rekeyComposeDomainsToServiceNames(array|Collection $domains, iterable $serviceNames): array | CODE |
| LOW | bootstrap/helpers/domains.php | 583 | function findServiceApplicationForEnvName(Service $resource, string $envServiceName): ?ServiceApplication | CODE |
| LOW | bootstrap/helpers/domains.php | 603 | function isCopiedServiceUrlDeclaration( | CODE |
| LOW | bootstrap/helpers/domains.php | 685 | function syncComposeServiceUrlVariables(Application $application, string $serviceEnvKey, ?string $url, ?string $host): v | CODE |
| LOW⚡ | bootstrap/helpers/docker.php | 327 | function getCurrentServiceContainerStatus(Server $server, Service $service): Collection | CODE |
| LOW⚡ | bootstrap/helpers/docker.php | 337 | function getCurrentDatabaseContainerStatus(Server $server, Model $database): Collection | CODE |
| LOW⚡ | bootstrap/helpers/docker.php | 347 | function getCurrentServiceSubContainerStatus(Server $server, Service $service, string $name): Collection | CODE |
| LOW⚡ | bootstrap/helpers/docker.php | 352 | function filterServiceSubContainersByName(Collection $containers, string $name): Collection | CODE |
| LOW⚡ | bootstrap/helpers/docker.php | 2268 | function railpackBuilderBootstrapScript(): string | CODE |
| 1403 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ntrollers/Api/SharedEnvironmentVariablesController.php | 317 | // ── Team ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ntrollers/Api/SharedEnvironmentVariablesController.php | 434 | // ── Project ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ntrollers/Api/SharedEnvironmentVariablesController.php | 584 | // ── Environment ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ntrollers/Api/SharedEnvironmentVariablesController.php | 758 | // ── Server ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/environment-canvas.js | 34 | // ── Pure helpers (tested) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/environment-canvas.js | 696 | // ── Card and panel constants (used by the Svelte components) ────────── | COMMENT |
| MEDIUM | resources/js/canvas-core.js | 9 | // ── Collisions ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas-core.js | 82 | // ── Pan and zoom ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas-core.js | 257 | // ── Page mount (initial load and Livewire SPA navigation) ───────────── | COMMENT |
| MEDIUM | resources/js/deploy-canvas.js | 13 | // ── Settings ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/deploy-canvas.js | 17 | // ── Small helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/deploy-canvas.js | 93 | // ── Node types ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/deploy-canvas.js | 374 | // ── Flow state ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 69 | // ── Actions ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 110 | // ── Canvas: geometry, fit ────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 157 | // ── Toast, menus, dropdown ───────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 193 | // ── Flow edits ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 276 | // ── Pointer drags ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | resources/js/canvas/deploy/state.svelte.js | 390 | // ── Run ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 6 | // ─── Malformed Variables ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 86 | // ─── Edge Cases with Braces and Special Characters ───────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 178 | // ─── Deeply Nested Defaults ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 263 | // ─── Backwards Compatibility ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialValidationPatternTest.php | 9 | // ── DB_IDENTIFIER_PATTERN ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialValidationPatternTest.php | 48 | // ── DB_PASSWORD_PATTERN ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialValidationPatternTest.php | 86 | // ── Rule helpers ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialValidationPatternTest.php | 134 | // ── Validator integration ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/Unit/DatabaseHealthcheckCommandInjectionTest.php | 11 | // ─── PostgreSQL ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/Unit/DatabaseHealthcheckCommandInjectionTest.php | 20 | // ─── KeyDB ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/Unit/DatabaseHealthcheckCommandInjectionTest.php | 29 | // ─── Dragonfly ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/Unit/DatabaseHealthcheckCommandInjectionTest.php | 38 | // ─── ClickHouse ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/Unit/DatabaseHealthcheckCommandInjectionTest.php | 47 | // ─── Verify unaffected databases still use their safe patterns ──────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialDirtyValidationTest.php | 5 | // ── databasePasswordRules ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Unit/DatabaseCredentialDirtyValidationTest.php | 47 | // ── databaseIdentifierRules ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Feature/StorageApiTest.php | 120 | // ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Feature/StorageApiTest.php | 122 | // ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Feature/StorageApiTest.php | 475 | // ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/Feature/StorageApiTest.php | 477 | // ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | templates/test-database-detection.yaml | 9 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | templates/test-database-detection.yaml | 11 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 115 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 117 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 256 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 258 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 333 | # ============================================================================= | COMMENT |
| MEDIUM | templates/test-database-detection.yaml | 335 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sor/skills/laravel-best-practices/rules/http-client.md | 138 | 'name' => 'John Doe', | CODE |
| LOW | …s/laravel-best-practices/rules/events-notifications.md | 47 | Notification::route('mail', 'admin@example.com')->notify(new SystemAlert()); | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 24 | 'dockerhub' => ['label' => 'Docker Hub', 'registry' => 'docker.io', 'username' => '', 'placeholder' => 'docker.i | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 25 | 'ghcr' => ['label' => 'GitHub Container Registry', 'registry' => 'ghcr.io', 'username' => '', 'placeholder' => ' | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 26 | 'gitlab' => ['label' => 'GitLab Container Registry', 'registry' => 'registry.gitlab.com', 'username' => '', 'pla | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 27 | 'google' => ['label' => 'Google Artifact Registry', 'registry' => '', 'username' => '_json_key', 'placeholder' = | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 28 | 'azure' => ['label' => 'Azure Container Registry', 'registry' => '', 'username' => '', 'placeholder' => 'myregis | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 29 | 'aws' => ['label' => 'AWS ECR', 'registry' => '', 'username' => 'AWS', 'placeholder' => '123456789012.dkr.ecr.eu | CODE |
| LOW⚡ | app/Livewire/Server/DockerRegistries/Login.php | 30 | 'custom' => ['label' => 'Other', 'registry' => '', 'username' => '', 'placeholder' => 'registry.example.com', 'h | CODE |
| LOW | app/Livewire/Server/DockerRegistries/Login.php | 149 | ? "Enter a valid {$preset['label']} host, for example {$preset['placeholder']}. Choose Other for a diffe | CODE |
| LOW | resources/views/source/all.blade.php | 88 | @include('livewire.shared.list-search-controls', ['placeholder' => 'Search sources']) | CODE |
| LOW | …sources/views/components/forms/env-var-input.blade.php | 252 | placeholder="{{ $attributes->get('placeholder') }}" | CODE |
| LOW | resources/views/components/forms/input.blade.php | 56 | name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}" | CODE |
| LOW | resources/views/components/forms/input.blade.php | 57 | aria-placeholder="{{ $attributes->get('placeholder') }}" | CODE |
| LOW | resources/views/components/forms/input.blade.php | 89 | placeholder="{{ $attributes->get('placeholder') }}" | CODE |
| LOW | resources/views/components/forms/listbox.blade.php | 8 | 'placeholder' => 'Select…', | CODE |
| LOW | resources/views/components/forms/textarea.blade.php | 44 | name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}" | CODE |
| LOW | resources/views/components/forms/textarea.blade.php | 45 | aria-placeholder="{{ $attributes->get('placeholder') }}"> | CODE |
| LOW | resources/views/components/table/search.blade.php | 2 | 'placeholder' => 'Search', | CODE |
| LOW | …iews/livewire/server/docker-registries/login.blade.php | 16 | <x-forms.input id="registry" label="Registry" required :placeholder="$preset['placeholder']" | CODE |
| LOW | resources/views/livewire/destination/index.blade.php | 61 | @include('livewire.shared.list-search-controls', ['placeholder' => 'Search destinations']) | CODE |
| LOW | resources/views/livewire/storage/index.blade.php | 47 | @include('livewire.shared.list-search-controls', ['placeholder' => 'Search S3 storages']) | CODE |
| LOW | tests/Unit/RedactSensitiveDataLoggingTest.php | 70 | $logger->info("User changed password={$secret}", ['user_email' => 'admin@example.com', 'token' => $secret]); | CODE |
| LOW | tests/Unit/RedactSensitiveDataLoggingTest.php | 74 | expect($record->context['user_email'])->toBe('admin@example.com') | CODE |
| LOW⚡ | tests/Unit/MailFromIdentityTest.php | 9 | 'smtp_from_address' => 'admin@example.com', | CODE |
| LOW⚡ | tests/Unit/MailFromIdentityTest.php | 13 | expect($identity['address'])->toBe('admin@example.com') | CODE |
| LOW⚡ | tests/Unit/MailFromIdentityTest.php | 19 | 'smtp_from_address' => 'admin@example.com', | CODE |
| LOW⚡ | tests/Unit/MailFromIdentityTest.php | 24 | ->and($address->getAddress())->toBe('admin@example.com') | CODE |
| LOW⚡ | tests/Unit/MailFromIdentityTest.php | 31 | 'smtp_from_address' => 'admin@example.com', | CODE |
| LOW | tests/Unit/MailFromIdentityTest.php | 73 | 'smtp_from_address' => 'admin@example.com', | CODE |
| LOW | tests/Unit/SanitizeLogsForExportTest.php | 190 | $recordB = '{"email":"user@example.com","eventType":"login_attempt","message":"Authentication event: login_attempt f | CODE |
| LOW | tests/Unit/SanitizeLogsForExportTest.php | 201 | $input = '{"msg":"connecting","dsn":"postgres://app:s3cr3t:pa/ss@db:5432/app"}'."\n".'{"email":"user@example.com"}'; | CODE |
| LOW⚡ | tests/Unit/UpgradeScriptRootUserEnvTest.php | 50 | 'ROOT_USERNAME' => 'Jane Doe', | CODE |
| LOW⚡ | tests/Unit/UpgradeScriptRootUserEnvTest.php | 51 | 'ROOT_USER_EMAIL' => 'admin@example.com', | CODE |
| LOW⚡ | tests/Unit/UpgradeScriptRootUserEnvTest.php | 59 | 'ROOT_USERNAME="Jane Doe"', | CODE |
| LOW⚡ | tests/Unit/UpgradeScriptRootUserEnvTest.php | 60 | "ROOT_USER_EMAIL='admin@example.com'", | CODE |
| LOW | tests/Unit/UpgradeScriptRootUserEnvTest.php | 78 | expect(Dotenv::parse($env))->toBe(['ROOT_USERNAME' => 'Jane Doe', 'APP_ENV' => 'production']); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 40 | $service = new HetznerService('fake-token'); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 67 | $service = new HetznerService('fake-token'); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 93 | $service = new HetznerService('fake-token'); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 107 | $service = new HetznerService('fake-token'); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 149 | $service = new HetznerService('fake-token'); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 182 | $result = (new HetznerService('fake-token'))->findServerByIp($ip); | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 208 | expect((new HetznerService('fake-token'))->findServerByIp('2a01:4f8:c016:bd24::1'))->toBeNull() | CODE |
| LOW | tests/Unit/HetznerServiceTest.php | 209 | ->and((new HetznerService('fake-token'))->findServerByIp('10.0.0.2'))->toBeNull(); | CODE |
| LOW | tests/Unit/InstallScriptRootUserEnvTest.php | 48 | 'email' => ['ROOT_USER_EMAIL', 'admin@example.com'], | CODE |
| LOW | tests/Unit/TraefikAcmeServiceTest.php | 9 | 'Account' => ['Email' => 'admin@example.com'], | CODE |
| LOW | tests/Unit/TraefikAcmeServiceTest.php | 28 | 'Account' => ['Email' => 'admin@example.org'], | CODE |
| LOW | tests/Unit/TraefikAcmeServiceTest.php | 62 | expect($updated['letsencrypt']['Account']['Email'])->toBe('admin@example.com') | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 23 | (new VultrService('fake-token'))->createInstance([]); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 48 | (new VultrService('fake-token'))->createInstance([]); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 84 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 113 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 132 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 157 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 181 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 194 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Unit/VultrServiceTest.php | 209 | $service = new VultrService('fake-token'); | CODE |
| LOW | tests/Feature/LogRedactionChannelTest.php | 22 | 'user_email' => 'admin@example.com', | CODE |
| LOW | tests/Feature/LogRedactionChannelTest.php | 29 | expect($record->context['user_email'])->toBe($channel === 'audit' ? 'admin@example.com' : REDACTED); | CODE |
| 45 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/skills/infer-conventions/SKILL.md | 30 | ### Step 0: Orient | COMMENT |
| LOW | .cursor/skills/infer-conventions/SKILL.md | 38 | ### Step 1: Predefined sweep | COMMENT |
| LOW⚡ | .cursor/skills/infer-conventions/SKILL.md | 50 | ### Step 2: Open-ended pass | COMMENT |
| LOW⚡ | .cursor/skills/infer-conventions/SKILL.md | 58 | ### Step 3: Confirm | COMMENT |
| LOW⚡ | .cursor/skills/infer-conventions/SKILL.md | 66 | ### Step 4: Record | COMMENT |
| LOW | .cursor/skills/infer-conventions/SKILL.md | 80 | ### Step 5: Summarize | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2069 | // Step 1: Escape backslashes first (must be done before other escaping) | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2072 | // Step 2: Escape double quotes | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2075 | // Step 3: Escape backticks (command substitution) | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2078 | // Step 4: Escape invalid $ patterns while preserving valid variable references | COMMENT |
| LOW⚡ | app/Livewire/Server/New/ByHetzner.php | 40 | // Step 1: Token selection | COMMENT |
| LOW⚡ | app/Livewire/Server/New/ByHetzner.php | 45 | // Step 2: Server configuration | COMMENT |
| LOW | app/Actions/Server/CleanupDocker.php | 288 | // Step 1: Always prune dangling images (untagged) | COMMENT |
| LOW | app/Actions/Application/CleanupPreviewDeployment.php | 50 | // Step 1: Cancel all active deployments for this PR and kill helper containers | COMMENT |
| LOW⚡ | app/Actions/Application/CleanupPreviewDeployment.php | 65 | // Step 2: Stop and remove all running PR containers | COMMENT |
| LOW⚡ | app/Actions/Application/CleanupPreviewDeployment.php | 72 | // Step 3: Find or use provided preview, then dispatch cleanup job for thorough cleanup | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 352 | // Step 1: Create local backup | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 492 | // Step 2: Upload to S3 if enabled (independent of local backup) | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 509 | // Step 3: Update status and send notifications based on results | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4183 | // Step 1: Generate build plan with railpack prepare | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4210 | // Step 2: Build image using docker buildx with railpack frontend. | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4241 | // Step 3: If static, copy built assets into nginx image | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 322 | // Step 1: Extract outer content | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 327 | // Step 2: Split on outer operator | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 333 | // Step 3: Find all nested variables in default | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 132 | // Step 1: Extract outer variable content | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 136 | // Step 2: Split on operator | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 142 | // Step 3: Extract nested variable | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 115 | // Step 1: create + deploy (Create.php parses once, StartService parses again), then application settings. | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 131 | // Step 2: custom domains saved like the Domains page does (save fqdn, updateCompose, parse). | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 138 | // Step 3: a domain saved on each application without one; copies must not move the shared variables. | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 207 | // Step 1: first deploy (the parser fills docker_compose_domains from SERVICE_URL_/SERVICE_FQDN_ declarations). | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 210 | // Step 2: custom domains saved on the General page: one per service, shared paths kept. | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 224 | // Step 3: pull request deployment (preview domains from preview_url_template, preview volume names). | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 238 | // Step 4: preview without generated preview domains: the parser generates them from the application domains. | COMMENT |
| LOW⚡ | tests/Feature/ServerManagerJobShouldRunNowTest.php | 63 | // Step 1: 15:00 — not due for midnight cron, but seeds cache | COMMENT |
| LOW⚡ | tests/Feature/ServerManagerJobShouldRunNowTest.php | 69 | // Step 2: Next day at 00:05 — delayed 5 minutes past midnight | COMMENT |
| LOW⚡ | tests/Feature/ScheduledJobManagerShouldRunNowTest.php | 126 | // Step 1: 10:00 — not due, but seeds cache with previousDue (02:00 today) | COMMENT |
| LOW⚡ | tests/Feature/ScheduledJobManagerShouldRunNowTest.php | 130 | // Step 2: Next day at 02:03 — delayed 3 minutes past cron. | COMMENT |
| LOW | .agents/skills/infer-conventions/SKILL.md | 30 | ### Step 0: Orient | COMMENT |
| LOW | .agents/skills/infer-conventions/SKILL.md | 38 | ### Step 1: Predefined sweep | COMMENT |
| LOW⚡ | .agents/skills/infer-conventions/SKILL.md | 50 | ### Step 2: Open-ended pass | COMMENT |
| LOW⚡ | .agents/skills/infer-conventions/SKILL.md | 58 | ### Step 3: Confirm | COMMENT |
| LOW⚡ | .agents/skills/infer-conventions/SKILL.md | 66 | ### Step 4: Record | COMMENT |
| LOW | .agents/skills/infer-conventions/SKILL.md | 80 | ### Step 5: Summarize | COMMENT |
| LOW | .claude/skills/infer-conventions/SKILL.md | 30 | ### Step 0: Orient | COMMENT |
| LOW | .claude/skills/infer-conventions/SKILL.md | 38 | ### Step 1: Predefined sweep | COMMENT |
| LOW⚡ | .claude/skills/infer-conventions/SKILL.md | 50 | ### Step 2: Open-ended pass | COMMENT |
| LOW⚡ | .claude/skills/infer-conventions/SKILL.md | 58 | ### Step 3: Confirm | COMMENT |
| LOW⚡ | .claude/skills/infer-conventions/SKILL.md | 66 | ### Step 4: Record | COMMENT |
| LOW | .claude/skills/infer-conventions/SKILL.md | 80 | ### Step 5: Summarize | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js | 73 | This is used to produce an effect that is known as tate-ch\u016B-yoko (\u7E26\u4E2D\u6A2A) in Japanese, or as \u76F4\u66 | CODE |
| MEDIUM | …onaco-editor-0.52.2/min/vs/language/html/htmlWorker.js | 259 | * To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/do | COMMENT |
| MEDIUM | …onaco-editor-0.52.2/min/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | …onaco-editor-0.52.2/min/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | …onaco-editor-0.52.2/min/vs/language/html/htmlWorker.js | 288 | **Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, | CODE |
| MEDIUM | templates/compose/nextcloud-with-mysql.yaml | 2 | # slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication | COMMENT |
| MEDIUM | templates/compose/nextcloud-with-postgres.yaml | 2 | # slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication | COMMENT |
| MEDIUM | templates/compose/observium.yaml | 3 | # slogan: Observium is a comprehensive network monitoring platform designed to deliver powerful monitoring capabilities, | COMMENT |
| MEDIUM | templates/compose/gitlab.yaml | 2 | # slogan: The all-in-one DevOps platform for seamless collaboration and continuous delivery. | COMMENT |
| MEDIUM | templates/compose/pingvinshare.yaml | 3 | # slogan: A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient fil | COMMENT |
| MEDIUM | templates/compose/nextcloud.yaml | 2 | # slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication | COMMENT |
| MEDIUM | templates/compose/cloudflare-ddns.yaml | 2 | # slogan: A small, feature-rich, and robust Cloudflare DDNS updater. | COMMENT |
| MEDIUM | templates/compose/sparkyfitness.yaml | 2 | # slogan: SparkyFitness is a comprehensive fitness tracking and management application designed to help users monitor th | COMMENT |
| MEDIUM | templates/compose/unleash-with-postgresql.yaml | 4 | # tags: unleash,feature flags,feature toggles,ab testing,open source | COMMENT |
| MEDIUM | templates/compose/unleash-with-postgresql.yaml | 5 | # logo: svgs/unleash.svg | COMMENT |
| MEDIUM | templates/compose/nextcloud-with-mariadb.yaml | 2 | # slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication | COMMENT |
| MEDIUM | templates/compose/pingvinshare-with-clamav.yaml | 3 | # slogan: A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient fil | COMMENT |
| MEDIUM | templates/compose/unleash-without-database.yaml | 4 | # tags: unleash,feature flags,feature toggles,ab testing,open source | COMMENT |
| MEDIUM | templates/compose/unleash-without-database.yaml | 5 | # logo: svgs/unleash.svg | COMMENT |
| MEDIUM | templates/compose/logto.yaml | 2 | # slogan: A comprehensive identity solution covering both the front and backend, complete with pre-built infrastructure | COMMENT |
| MEDIUM | templates/compose/logto.yaml | 20 | # Or, you can leverage it for local testing. | COMMENT |
| MEDIUM | templates/compose/cloudbeaver.yaml | 2 | # slogan: CloudBeaver is a lightweight web application designed for comprehensive data management. | COMMENT |
| MEDIUM | templates/compose/mixpost.yaml | 2 | # slogan: Mixpost is a robust and versatile social media management software, designed to streamline social media operat | COMMENT |
| MEDIUM | templates/compose/edgedb.yaml | 3 | # slogan: An open-source database designed as a spiritual successor to SQL and the relational paradigm. Powered by the P | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | bootstrap/helpers/docker.php | 2069 | // Step 1: Escape backslashes first (must be done before other escaping) | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2072 | // Step 2: Escape double quotes | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2075 | // Step 3: Escape backticks (command substitution) | COMMENT |
| LOW⚡ | bootstrap/helpers/docker.php | 2078 | // Step 4: Escape invalid $ patterns while preserving valid variable references | COMMENT |
| LOW⚡ | app/Livewire/Server/New/ByHetzner.php | 40 | // Step 1: Token selection | COMMENT |
| LOW⚡ | app/Livewire/Server/New/ByHetzner.php | 45 | // Step 2: Server configuration | COMMENT |
| LOW | app/Actions/Server/CleanupDocker.php | 288 | // Step 1: Always prune dangling images (untagged) | COMMENT |
| LOW | app/Actions/User/DeleteUserTeams.php | 187 | // In Stripe, we need to check if the customer email matches the user's email | COMMENT |
| LOW | app/Actions/Application/CleanupPreviewDeployment.php | 50 | // Step 1: Cancel all active deployments for this PR and kill helper containers | COMMENT |
| LOW⚡ | app/Actions/Application/CleanupPreviewDeployment.php | 65 | // Step 2: Stop and remove all running PR containers | COMMENT |
| LOW⚡ | app/Actions/Application/CleanupPreviewDeployment.php | 72 | // Step 3: Find or use provided preview, then dispatch cleanup job for thorough cleanup | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 352 | // Step 1: Create local backup | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 492 | // Step 2: Upload to S3 if enabled (independent of local backup) | COMMENT |
| LOW | app/Jobs/DatabaseBackupJob.php | 509 | // Step 3: Update status and send notifications based on results | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4183 | // Step 1: Generate build plan with railpack prepare | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4210 | // Step 2: Build image using docker buildx with railpack frontend. | COMMENT |
| LOW | app/Jobs/ApplicationDeploymentJob.php | 4241 | // Step 3: If static, copy built assets into nginx image | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 322 | // Step 1: Extract outer content | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 327 | // Step 2: Split on outer operator | COMMENT |
| LOW⚡ | tests/Unit/EnvironmentVariableParsingEdgeCasesTest.php | 333 | // Step 3: Find all nested variables in default | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 132 | // Step 1: Extract outer variable content | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 136 | // Step 2: Split on operator | COMMENT |
| LOW⚡ | tests/Unit/NestedEnvironmentVariableParsingTest.php | 142 | // Step 3: Extract nested variable | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 115 | // Step 1: create + deploy (Create.php parses once, StartService parses again), then application settings. | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 131 | // Step 2: custom domains saved like the Domains page does (save fqdn, updateCompose, parse). | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 138 | // Step 3: a domain saved on each application without one; copies must not move the shared variables. | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 207 | // Step 1: first deploy (the parser fills docker_compose_domains from SERVICE_URL_/SERVICE_FQDN_ declarations). | COMMENT |
| LOW⚡ | tests/Feature/ServiceParserReferenceTest.php | 210 | // Step 2: custom domains saved on the General page: one per service, shared paths kept. | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 224 | // Step 3: pull request deployment (preview domains from preview_url_template, preview volume names). | COMMENT |
| LOW | tests/Feature/ServiceParserReferenceTest.php | 238 | // Step 4: preview without generated preview domains: the parser generates them from the application domains. | COMMENT |
| LOW⚡ | tests/Feature/ServerManagerJobShouldRunNowTest.php | 63 | // Step 1: 15:00 — not due for midnight cron, but seeds cache | COMMENT |
| LOW⚡ | tests/Feature/ServerManagerJobShouldRunNowTest.php | 69 | // Step 2: Next day at 00:05 — delayed 5 minutes past midnight | COMMENT |
| LOW⚡ | tests/Feature/ScheduledJobManagerShouldRunNowTest.php | 126 | // Step 1: 10:00 — not due, but seeds cache with previousDue (02:00 today) | COMMENT |
| LOW⚡ | tests/Feature/ScheduledJobManagerShouldRunNowTest.php | 130 | // Step 2: Next day at 02:03 — delayed 3 minutes past cron. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | other/nightly/install.sh | 288 | # Check if environment variables were explicitly provided | COMMENT |
| LOW | other/nightly/install.sh | 313 | # Check if systemctl is available | COMMENT |
| LOW | other/nightly/install.sh | 321 | # Check if service command is available | COMMENT |
| LOW | other/nightly/install.sh | 375 | # Check if daemon.json exists and extract existing address pool configuration | COMMENT |
| LOW | other/nightly/install.sh | 386 | # Check if environment variables were explicitly provided | COMMENT |
| LOW | other/nightly/install.sh | 391 | # Check if force override is enabled | COMMENT |
| LOW⚡ | other/nightly/install.sh | 474 | # Check if the OS is manjaro, if so, change it to arch | COMMENT |
| LOW⚡ | other/nightly/install.sh | 479 | # Check if the OS is Endeavour OS, if so, change it to arch | COMMENT |
| LOW⚡ | other/nightly/install.sh | 484 | # Check if the OS is Cachy OS, if so, change it to arch | COMMENT |
| LOW⚡ | other/nightly/install.sh | 489 | # Check if the OS is Asahi Linux, if so, change it to fedora | COMMENT |
| LOW⚡ | other/nightly/install.sh | 494 | # Check if the OS is popOS, if so, change it to ubuntu | COMMENT |
| LOW⚡ | other/nightly/install.sh | 499 | # Check if the OS is linuxmint, if so, change it to ubuntu | COMMENT |
| LOW⚡ | other/nightly/install.sh | 504 | #Check if the OS is zorin, if so, change it to ubuntu | COMMENT |
| LOW | other/nightly/upgrade.sh | 134 | # Check if custom compose file exists | COMMENT |
| LOW | other/nightly/upgrade.sh | 140 | # Check if PostgreSQL upgrade override exists | COMMENT |
| LOW | other/nightly/upgrade.sh | 274 | # Check if Docker config file exists | COMMENT |
| LOW | scripts/install.sh | 288 | # Check if environment variables were explicitly provided | COMMENT |
| LOW | scripts/install.sh | 313 | # Check if systemctl is available | COMMENT |
| LOW | scripts/install.sh | 321 | # Check if service command is available | COMMENT |
| LOW | scripts/install.sh | 375 | # Check if daemon.json exists and extract existing address pool configuration | COMMENT |
| LOW | scripts/install.sh | 386 | # Check if environment variables were explicitly provided | COMMENT |
| LOW | scripts/install.sh | 391 | # Check if force override is enabled | COMMENT |
| LOW⚡ | scripts/install.sh | 474 | # Check if the OS is manjaro, if so, change it to arch | COMMENT |
| LOW⚡ | scripts/install.sh | 479 | # Check if the OS is Endeavour OS, if so, change it to arch | COMMENT |
| LOW⚡ | scripts/install.sh | 484 | # Check if the OS is Cachy OS, if so, change it to arch | COMMENT |
| LOW⚡ | scripts/install.sh | 489 | # Check if the OS is Asahi Linux, if so, change it to fedora | COMMENT |
| LOW⚡ | scripts/install.sh | 494 | # Check if the OS is popOS, if so, change it to ubuntu | COMMENT |
| LOW⚡ | scripts/install.sh | 499 | # Check if the OS is linuxmint, if so, change it to ubuntu | COMMENT |
| LOW⚡ | scripts/install.sh | 504 | #Check if the OS is zorin, if so, change it to ubuntu | COMMENT |
| LOW | scripts/upgrade.sh | 134 | # Check if custom compose file exists | COMMENT |
| LOW | scripts/upgrade.sh | 140 | # Check if PostgreSQL upgrade override exists | COMMENT |
| LOW | scripts/upgrade.sh | 274 | # Check if Docker config file exists | COMMENT |
| LOW | templates/compose/calcom.yaml | 40 | # Set this to 1 if you don't want Cal to collect anonymous usage | COMMENT |
| LOW | templates/compose/dify.yaml | 494 | # Check if the certificate and key files for the specified domain exist | COMMENT |
| LOW | templates/compose/matrix-synapse-with-sqlite.yaml | 34 | # Set public_baseurl to actual deployment URL (may differ from server_name) | COMMENT |
| LOW | templates/compose/electricsql.yaml | 9 | ## Set DATABASE_URL to an existing Postgres instance with logical replication enabled. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | templates/compose/spacebot.yaml | 2 | # slogan: An agentic AI system with specialized processes for thinking, working, and remembering. | COMMENT |
| MEDIUM | templates/compose/spacebot.yaml | 4 | # tags: ai, agent, anthropic, openai, discord, slack, llm, agentic | COMMENT |
| MEDIUM | templates/compose/flowise.yaml | 2 | # slogan: Flowise is an open source low-code tool for developers to build customized LLM orchestration flows & AI agents | COMMENT |
| MEDIUM | templates/compose/jean.yaml | 2 | # slogan: Open-source desktop and server client for orchestrating AI coding agents. | COMMENT |
| MEDIUM | templates/compose/flowise-with-databases.yaml | 2 | # slogan: Flowise is an open source low-code tool for developers to build customized LLM orchestration flows & AI agents | COMMENT |
| MEDIUM | templates/compose/dify.yaml | 3 | # slogan: Dify is an open-source LLM app development platform. Dify's intuitive interface combines AI workflow, RAG pipe | COMMENT |
| MEDIUM | templates/compose/dify.yaml | 5 | # tags: ai, weaviate, openai, gpt, llm, lmops, dify, redis, postgres, qdrant, RAG, agent | COMMENT |
| MEDIUM | templates/compose/unstructured.yaml | 2 | # slogan: Unstructured provides a platform and tools to ingest and process unstructured documents for Retrieval Augmente | COMMENT |
| MEDIUM | templates/compose/unstructured.yaml | 4 | # tags: workflow, orchestration, data-pipeline, python, data, machine-learning, data-science, nlp, unstructured, ocr, da | COMMENT |
| MEDIUM | templates/compose/labelstudio.yaml | 4 | # tags: workflow, orchestration, data-pipeline, python, labelstudio, ai, elasticsearch, datasets, data, machine-learning | COMMENT |
| MEDIUM | templates/compose/anythingllm.yaml | 2 | # slogan: AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no | COMMENT |
| MEDIUM | templates/compose/sftpgo.yaml | 2 | # slogan: SFTPGo is an event-driven SFTP, FTP/S, HTTP/S and WebDAV server. | COMMENT |
| MEDIUM | templates/compose/prefect.yaml | 2 | # slogan: Prefect is an orchestration and observability platform that empowers developers to build and scale workflows q | COMMENT |
| MEDIUM | templates/compose/prefect.yaml | 4 | # tags: workflow, orchestration, data-pipeline, python, automation, data-processing, data-integration, etl | COMMENT |
| MEDIUM | templates/compose/argilla.yaml | 4 | # tags: workflow, orchestration, data-pipeline, python, argilla, ai, elasticsearch, datasets, data, machine-learning, da | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | public/js/apexcharts.js | 7 | "use strict"; function t(t, e) { var i = Object.keys(t); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPr | CODE |
| CRITICAL⚡ | public/js/apexcharts.js | 15 | function () { function t(t) { t.remember("_draggable", this), this.el = t } t.prototype.init = function (t, e) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-maxio.dev.yml | 141 | # image: ghcr.io/coollabsio/mx:0.1.0 | COMMENT |
| LOW | cliff.toml | 1 | # git-cliff ~ default configuration file | COMMENT |
| LOW | cliff.toml | 41 | # render body even when there are no releases to process | COMMENT |
| LOW | bootstrap/helpers/shared.php | 3521 | $fqdn = "$fqdn:$port"; | COMMENT |
| LOW | app/Models/InstanceSettings.php | 221 | COMMENT | |
| LOW | …upport/DatabaseImport/DatabaseImportCommandBuilder.php | 141 | // may follow SQL without a ';'). An odd backslash run starts a meta-command; COPY data | COMMENT |
| LOW | app/Actions/Server/CleanupDocker.php | 301 | // - docker.io/coollabsio/coolify-helper:1.0.12 | COMMENT |
| LOW | app/Console/Commands/Emails.php | 181 | 'save_s3' => false, | COMMENT |
| LOW | config/purify.php | 121 | // 'serializer' => [ | COMMENT |
| LOW | config/constants.php | 161 | // Scaling factor: seconds to add per server (0.2) | COMMENT |
| LOW | other/nightly/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/railpack-smoke.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/restore-backup-vm.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | templates/compose/posthog.yaml | 2021 | # command: sh -c "python manage.py migrate && python manage.py migrate_clickhouse && python manage.py run_async_migr | COMMENT |
| LOW | templates/compose/obsidian-livesync.yaml | 1 | # documentation: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_own_server.md | COMMENT |
| LOW | templates/compose/calcom.yaml | 1 | # ignore: true | COMMENT |
| LOW | templates/compose/zep.yaml | 61 | target: /app/config.yaml | COMMENT |
| LOW | templates/compose/zep.yaml | 141 | log: | COMMENT |
| LOW | templates/compose/zep.yaml | 161 | # <current_summary>{{.PrevSummary}}</current_summary> | COMMENT |
| LOW | templates/compose/glances.yaml | 21 | test: ["CMD", "curl", "-f", "http://localhost:61208"] | COMMENT |
| LOW | templates/compose/supabase.yaml | 381 | plugins: | COMMENT |
| LOW | templates/compose/supabase.yaml | 441 | config: | COMMENT |
| LOW | templates/compose/supabase.yaml | 1241 | - GOTRUE_SMS_AUTOCONFIRM=${ENABLE_PHONE_AUTOCONFIRM:-true} | COMMENT |
| LOW | templates/compose/cap.yaml | 1 | # documentation: https://cap.so | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | public/js/apexcharts.js | 7 | "use strict"; function t(t, e) { var i = Object.keys(t); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPr | CODE |
| LOW | …/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js | 32 | `),[{language:"html",value:r}]}doPrint(e,t){for(let r of e)this.doPrintElement(r,t),r.children&&this.doPrint(r.children, | CODE |
| MEDIUM | …onaco-editor-0.52.2/min/vs/language/html/htmlWorker.js | 306 | **Usage note:** Do not use this attribute, as it has been deprecated. The [\`<caption>\`](https://developer.mozilla.org/ | CODE |
| LOW | templates/compose/posthog.yaml | 1171 | Regexps are not aligned: don't forget to add ^ and $. Also don't forget to escape dot (.) | CODE |
| MEDIUM | templates/compose/wordpress-with-mysql.yaml | 2 | # slogan: WordPress is open source software you can use to create a beautiful website, blog, or app. | COMMENT |
| MEDIUM | templates/compose/wordpress-without-database.yaml | 2 | # slogan: WordPress is open source software you can use to create a beautiful website, blog, or app. | COMMENT |
| MEDIUM | templates/compose/wordpress-with-mariadb.yaml | 2 | # slogan: WordPress is open source software you can use to create a beautiful website, blog, or app. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/development/etc/s6-overlay/scripts/init-setup.sh | 16 | # Create the shared log before root processes (migrate, scheduler) can create it root-owned. | COMMENT |
| MEDIUM | app/Models/Server.php | 723 | "# This file is generated by Coolify, do not edit it manually.\n". | CODE |
| MEDIUM | app/Models/Server.php | 1044 | return "# This file is generated by Coolify, do not edit it manually.\n\n".Yaml::dump([ | CODE |
| MEDIUM | app/Models/Server.php | 1216 | "# This file is automatically generated by Coolify.\n". | CODE |
| MEDIUM⚡ | templates/test-database-detection.yaml | 2 | # This file contains various services to test the isDatabaseImage() function | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 221 | A: Yes, AI-assisted contributions are allowed. But you must fully understand and verify the changes. PRs that appear to | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/railpack-smoke.sh | 17 | # Usage: | COMMENT |
| LOW | scripts/restore-backup-vm.sh | 4 | # Usage: | COMMENT |