Commit graph

13646 commits

Author SHA1 Message Date
Andras Bacsai
071f158e37
v4.0.0-beta.445 (#7321) 2025-11-24 15:18:04 +01:00
Andras Bacsai
c0ee56d987
fix: handle migration rename errors for v444→v445 upgrades (#7320) 2025-11-24 15:13:49 +01:00
Andras Bacsai
e930005a50 fix: handle existing webhook_notification_settings table in migration
Similar to cloud_init_scripts, this migration was renamed from 120000 to
120002 between v444 and v445, causing "duplicate table" errors for users
upgrading who already have the webhook_notification_settings table created.

Added table existence check before creation for idempotency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 15:12:14 +01:00
Andras Bacsai
8d3a564cfe fix: update coolify version to 4.0.0-beta.446 and nightly version to 4.0.0-beta.447 2025-11-24 15:10:31 +01:00
Andras Bacsai
2335bfad8f fix: handle existing cloud_init_scripts table in migration
The migration file was renamed from 120000 to 120002 between v444 and v445,
causing "duplicate table" errors for users upgrading from v444 who already
have the cloud_init_scripts table created.

This fix adds a table existence check before creation, making the migration
idempotent and safe for both fresh installations and upgrades.

Fixes the error: SQLSTATE[42P07]: Duplicate table: 7 ERROR: relation
"cloud_init_scripts" already exists

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 15:08:41 +01:00
Andras Bacsai
006c4e5ba4
v4.0.0-beta.445 (#7257) 2025-11-24 13:50:38 +01:00
Andras Bacsai
9af4f734aa fix: update sentinel version to 0.0.18 2025-11-24 13:50:03 +01:00
Andras Bacsai
be83c7ae08
feat(service): add Opnform template (#5875) 2025-11-24 13:02:59 +01:00
Andras Bacsai
56e4164ab2
feat(service): add newt-pangolin template (#6259) 2025-11-24 13:02:42 +01:00
Andras Bacsai
1235a87e5a
Fix: Codimd Service docker-compose (#7096) 2025-11-24 13:02:21 +01:00
Andras Bacsai
767da75154
Fix mosquitto.yaml (#7129) 2025-11-24 13:02:07 +01:00
Andras Bacsai
1e0310e2f4
Fix(Documenso): Resolve pending status issue for Documenso deployments (fixes #1767 (#7145) 2025-11-24 13:01:47 +01:00
Andras Bacsai
9a3b522711
Tailscale template (#7154) 2025-11-24 13:01:23 +01:00
Andras Bacsai
199661b5e4
fixes: default template of Redis Insight (#7176) 2025-11-24 13:00:54 +01:00
Andras Bacsai
c96131c4de
feat: add palworld service (#7206) 2025-11-24 13:00:18 +01:00
Andras Bacsai
c2d2bc74fc
fix(service): Ghost using invalid base url (#7233) 2025-11-24 12:59:46 +01:00
Andras Bacsai
3709b8c498
chore(n8n): upgrade n8n image version to 1.119.2 in compose templates (#7236) 2025-11-24 12:59:31 +01:00
Andras Bacsai
d78e9d9b86
fix(service): netbird client showing wrong host details (#7237) 2025-11-24 12:58:39 +01:00
Andras Bacsai
568d9fab4b
fix(service): plausible compose parsing error (#7244) 2025-11-24 12:57:57 +01:00
Andras Bacsai
97e10dfbf1
Add Persistent Volumes for Themes, Extensions, and Storage in Paymenter (#7304) 2025-11-24 12:57:34 +01:00
Andras Bacsai
e0dc12678b
fix: comprehensive SERVICE_URL/SERVICE_FQDN handling improvements and queue reliability fixes (#7275) 2025-11-24 11:47:11 +01:00
Andras Bacsai
bf428a0e1c
fix: don't show health status for exited containers (#7317) 2025-11-24 10:29:57 +01:00
Andras Bacsai
1149d0f746
feat: implement prerequisite validation and installation for server setup (#7297) 2025-11-24 10:28:10 +01:00
JhumanJ
844f89f42f Upgrade opnform API and UI images to version 1.12.1 in opnform.yaml 2025-11-24 10:13:08 +01:00
Andras Bacsai
75381af742 fix: convert Stringable to plain strings in applicationParser for strict comparisons and collection lookups
This fixes critical bugs where Stringable objects were used in strict comparisons and collection key lookups, causing service existence checks and domain lookups to fail.

**Changes:**
- Line 539: Added ->value() to $originalServiceName conversion
- Line 541: Added ->value() to $serviceName normalization
- Line 621: Removed redundant (string) cast now that $serviceName is a plain string

**Impact:**
- Service existence check now works correctly (line 606: $transformedServiceName === $serviceName)
- Domain lookup finds existing domains (line 615: $domains->get($serviceName))
- Prevents duplicate domain entries in docker_compose_domains collection

**Tests:**
- Added comprehensive unit test suite in ApplicationParserStringableTest.php
- 9 test cases covering type verification, strict comparisons, collection operations, and edge cases
- All tests pass (24 tests, 153 assertions across related parser tests)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 09:22:27 +01:00
Andras Bacsai
ac9eca3c05 fix: don't show health status for exited containers
Exited containers don't run health checks, so showing "(unhealthy)" is
misleading. This fix ensures exited status displays without health
suffixes across all monitoring systems (SSH, Sentinel, services, etc.)
and at the UI layer for backward compatibility with existing data.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 09:09:37 +01:00
Andras Bacsai
64cbda0140 fix: remove dead conditional and unused variables in parsers.php
- Remove useless conditional check for hyphens in service name normalization
  The conditional `if (str($serviceName)->contains('-'))` never executes because
  $serviceName is already normalized with underscores from parseServiceEnvironmentVariable()

- Always normalize service names explicitly to match docker_compose_domains lookup
  This makes the code clearer and more maintainable

- Remove unused $fqdnWithPort variable assignments in both applicationParser and serviceParser
  The variable is calculated but never used - only $urlWithPort and $fqdnValueForEnvWithPort are needed

These changes are code cleanup only - no behavior changes or breaking changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 08:45:42 +01:00
Andras Bacsai
30d206e7b9 feat: add async prerequisite installation with retry logic and visual feedback
This commit enhances the boarding flow to handle prerequisite installation asynchronously with proper retry logic and user feedback:

- Add retry mechanism with max 3 attempts for prerequisite installation
- Display live installation logs via ActivityMonitor during boarding
- Reset ActivityMonitor state when starting new activity to prevent stale event dispatching
- Support dynamic header updates in ActivityMonitor
- Add prerequisitesInstalled event handler to revalidate after installation completes
- Extract validation logic into continueValidation() method for cleaner flow
- Add unit tests for prerequisite installation logic

This improves UX by showing users real-time progress during prerequisite installation and handles installation failures gracefully with automatic retries.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 08:44:04 +01:00
majcek210
612b51ef00
Update volume mounts in paymenter.yaml
Done my research and this are the right volumes for paymenter on coolify
2025-11-23 12:08:21 +01:00
majcek210
a2ca50b4bf
Update paymenter.yaml volumes configuration 2025-11-22 15:24:05 +01:00
majcek210
9a58096655
Fix volume paths in paymenter.yaml 2025-11-22 15:21:19 +01:00
majcek210
928e96258a
Update paymenter image version to v1.4.5
Change paymenter image varsion from latest > 1.4.5
2025-11-22 14:55:50 +01:00
majcek210
ef40069cef
Update MariaDB image version to 11.8 2025-11-22 11:28:31 +01:00
majcek210
e0708107e1
Add volumes for themes, extensions, and storage in Paymenter template
Added additional volumes to the Paymenter service in docker-compose:

- Added themes volume for theme storage
- Added extensions volume for external extensions
- Added app_storage_public for public storage path

These changes allow you to store extensions, themes and some images without issues(they were deleted on restart before)
2025-11-22 11:24:16 +01:00
Andras Bacsai
0061acaddf
fix: eliminate input border layout shift with box-shadow (#7300) 2025-11-21 15:33:11 +01:00
Andras Bacsai
bc39c2caa8 fix: eliminate layout shift on input border indicator using box-shadow
Replace border-based left indicator with inset box-shadow to prevent unwanted layout shifts when focusing or marking fields as dirty. The solution reserves 4px space with transparent shadow in default state and transitions to colored shadow on focus/dirty without affecting the box model. Update all form components (input, textarea, select, datalist) for consistency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 15:29:06 +01:00
Andras Bacsai
29135e00ba feat: enhance prerequisite validation to return detailed results 2025-11-21 13:14:48 +01:00
Andras Bacsai
9a56301c41 Merge branch 'next' into service-url-update-fix
Resolved conflicts in bootstrap/helpers/parsers.php by combining:
- ServiceApplication vs ServiceDatabase distinction from 'next' branch
- Case-preserved service name extraction and dual SERVICE_URL/SERVICE_FQDN creation from current branch

The resolution ensures:
- Only ServiceApplication instances have their fqdn column updated (ServiceDatabase does not have this column)
- Both SERVICE_URL and SERVICE_FQDN environment variables are always created with case-preserved service names
- Port-specific environment variables are created when applicable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 12:57:20 +01:00
Andras Bacsai
6e1da06a9f
Fix SERVICE_FQDN_DB error with ServiceDatabase (#7299) 2025-11-21 12:52:26 +01:00
Andras Bacsai
b62eece93e Fix SERVICE_FQDN_DB error by preventing fqdn access on ServiceDatabase
ServiceDatabase doesn't have an fqdn column - only ServiceApplication does.
The parser was attempting to read/write fqdn on both types, causing SQL
errors when SERVICE_FQDN_* or SERVICE_URL_* variables were used with database
services. Now it only persists fqdn to ServiceApplication while still
generating the environment variable values for databases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 12:48:04 +01:00
Andras Bacsai
2edf2338de fix: enhance getRequiredPort to support map-style environment variables for SERVICE_URL and SERVICE_FQDN 2025-11-21 12:41:25 +01:00
Andras Bacsai
85b73a8c00 fix: initialize Collection properties to handle queue deserialization edge cases 2025-11-21 12:25:25 +01:00
Andras Bacsai
eefcb6fc35 fix: clean up formatting and indentation in global-search.blade.php 2025-11-21 12:04:41 +01:00
Andras Bacsai
a5ce1db871 fix: handle map-style environment variables in updateCompose
The updateCompose() function now correctly detects SERVICE_URL_* and
SERVICE_FQDN_* variables regardless of whether they are defined in
YAML list-style or map-style format.

Previously, the code only worked with list-style environment definitions:
```yaml
environment:
  - SERVICE_URL_APP_3000
```

Now it also handles map-style definitions:
```yaml
environment:
  SERVICE_URL_TRIGGER_3000: ""
  SERVICE_FQDN_DB: localhost
```

The fix distinguishes between the two formats by checking if the array
key is numeric (list-style) or a string (map-style), then extracts the
variable name from the appropriate location.

Added 5 comprehensive unit tests covering:
- Map-style environment format detection
- Multiple map-style variables
- References vs declarations in map-style
- Abbreviated service names with map-style
- Verification of dual-format handling

This fixes variable detection for service templates like trigger.yaml,
langfuse.yaml, and paymenter.yaml that use map-style format.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:21:49 +01:00
Andras Bacsai
56f32d0f87 fix: properly handle SERVICE_URL and SERVICE_FQDN for abbreviated service names (#7243)
Parse template variables directly instead of generating from container names. Always create both SERVICE_URL and SERVICE_FQDN pairs together. Properly separate scheme handling (URL has scheme, FQDN doesn't). Add comprehensive test coverage.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:21:49 +01:00
Andras Bacsai
01957f2752 feat: implement prerequisite validation and installation for server setup 2025-11-21 09:49:33 +01:00
Andras Bacsai
8af6339695
feat: add compose reload button and raw/deployable toggle (#7294) 2025-11-21 09:20:21 +01:00
Andras Bacsai
355dcc186c
fix: correct status for excluded health check containers (#7283) 2025-11-21 09:17:26 +01:00
Andras Bacsai
01609e7f8b feat: implement formatContainerStatus helper for human-readable status formatting and add unit tests 2025-11-21 09:12:56 +01:00
Andras Bacsai
840d25a729 feat: add helper messages for unknown and unhealthy states in running status component 2025-11-21 08:36:50 +01:00