Commit graph

407 commits

Author SHA1 Message Date
Andras Bacsai
47a3f2e2cd test: add Pest browser testing with SQLite :memory: schema
Set up end-to-end browser testing using Pest Browser Plugin + Playwright.
New v4 test suite uses SQLite :memory: database with pre-generated schema dump
(database/schema/testing-schema.sql) instead of running migrations, enabling
faster test startup.

- Add pestphp/pest-plugin-browser dependency
- Create GenerateTestingSchema command to export PostgreSQL schema to SQLite
- Add .env.testing configuration for isolated test environment
- Implement v4 test directory structure (Feature, Browser, Unit tests)
- Update Pest skill documentation with browser testing patterns, API reference,
  debugging techniques, and common pitfalls
- Configure phpunit.xml and tests/Pest.php for v4 suite
- Update package.json and docker-compose.dev.yml for testing dependencies
2026-02-11 15:25:47 +01:00
Andras Bacsai
4c56b47cfc fix(docs): update documentation link for Openclaw service 2026-02-09 12:35:36 +01:00
Andras Bacsai
63a1c5c0c7 feat(openclaw): add Openclaw service with environment variables and health checks
- Implemented Openclaw service in Service.php to manage environment variables and passwords.
- Added Openclaw SVG icon for branding.
- Created openclaw.yaml for Docker Compose configuration, including necessary environment variables and volume mappings.
- Updated service-templates-latest.json and service-templates.json to include Openclaw service details and metadata.
2026-02-09 12:33:17 +01:00
peaklabs-dev
7d88919775
chore(services): update service template json files 2026-02-04 17:44:00 +01:00
Andras Bacsai
c1d2ce6d48 update templates 2026-01-28 11:14:36 +01:00
Andras Bacsai
c0dadc003d fix(env): skip escaping for valid JSON in environment variables (#6160)
Prevent double-escaping of COMPOSER_AUTH and other JSON environment variables
by detecting valid JSON objects/arrays in realValue() and skipping quote
escaping entirely. This fixes broken JSON values passed to runtime services
while maintaining proper escaping for non-JSON values.

- Add JSON detection before escaping logic in EnvironmentVariable::realValue()
- JSON objects/arrays pass through unmodified, avoiding quote corruption
- Add comprehensive test coverage for JSON vs non-JSON escaping behavior
2026-01-28 10:59:00 +01:00
peaklabs-dev
d020dee9de
chore(services): update service template json files 2026-01-16 22:29:09 +01:00
peaklabs-dev
4131290719
chore(service): update service templates json 2026-01-16 18:24:30 +01:00
Andras Bacsai
d69bdabee2 chore: prepare for PR 2026-01-14 13:27:32 +01:00
Jérôme Gamez
b3743d341b
feat(service): add linkding template (#6651)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-13 00:05:43 +01:00
peaklabs-dev
9faa3966a6
chore(services): upgrade service template json files 2026-01-08 23:18:43 +01:00
Victor Canô
06f4774610
feat(service): upgrade trigger template to v4 (#7808)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-07 19:01:32 +01:00
peaklabs-dev
40778ad44d
fix(service): budibase worker envs 2026-01-06 23:10:38 +01:00
Sarthak Shrivastava
2332e88a2e
feat(service): add nocobase template (#7347)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-06 15:08:23 +01:00
peaklabs-dev
8e002e0558
chore(services): update service json 2026-01-05 23:04:36 +01:00
Yassir
eaa668036f
feat(service): upgrade docker registry template (#7034)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-05 14:13:42 +01:00
peaklabs-dev
c93951da20
chore(service): change sqlite pool size to v2 default 2026-01-05 12:29:18 +01:00
peaklabs-dev
a5222830c3
chore(services): update service json 2026-01-05 12:14:06 +01:00
Andras Bacsai
162eaa9f0d feat(github): implement processing for GitHub pull request webhooks and add helper functions for commit and PR file retrieval 2026-01-05 11:13:18 +01:00
peaklabs-dev
8da8afbf49
chore(services): update service templates json 2026-01-04 22:28:08 +01:00
peaklabs-dev
8ba253dcd9
chore(services): update service-templates.json 2026-01-04 17:16:32 +01:00
Andras Bacsai
7e73058b0a chore: update versions.json for consistency across environments 2026-01-02 17:10:50 +01:00
Andras Bacsai
9a1020d5be fix(database): replace temporary file handling with base64 encoding for Keydb and Redis configuration 2025-12-25 18:17:42 +01:00
Andras Bacsai
f53027a0a3 chore: update version numbers to 4.0.0-beta.457 and 4.0.0-beta.458 2025-12-18 10:26:27 +01:00
Andras Bacsai
4b65b02103 Fix server resources tab 500 error with mixed model types
The Resources tab threw a "Queueing collections with multiple model types is not supported" error because the Livewire component was storing a mixed-type Eloquent collection (Applications, Databases, Services) as a public property, causing Livewire's serialization to fail.

Fixed by: storing only the unmanaged containers array in the component, and calling definedResources() directly in the Blade view for the managed tab.

Fixes #7666

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 18:13:55 +01:00
Andras Bacsai
679833a0a6 Fix PostgreSQL version selection in global search redirect
Allow users to select PostgreSQL version instead of automatically creating postgres:16-alpine when using global search. The fix includes:

- Remove hardcoded database_image parameter from GlobalSearch
- Update Create.php to fall through to Select component when database_image is not provided
- Add type and destination to Select component query string with proper URL mapping
- Jump directly to PostgreSQL version selection step when navigating from global search

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 16:01:39 +01:00
Andras Bacsai
5d73ac36da improve breadcrumbs a lot 2025-12-15 16:25:04 +01:00
Andras Bacsai
b36f59fe58 Merge branch 'next' into feat/escape-key-fullscreen-exit
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 15:43:39 +01:00
Andras Bacsai
d68ee93445 Update garage.yaml for improved configuration clarity 2025-12-10 12:57:34 +01:00
Andras Bacsai
7c1f230bd3 fix: remove {{port}} template variable and ensure ports are always appended to preview URLs
The {{port}} template variable was undocumented and caused a double port bug
when used in preview URL templates. Since ports are always appended to the final
URL anyway, we remove {{port}} substitution entirely and ensure consistent port
handling across ApplicationPreview, PreviewsCompose, and the applicationParser helper.

Also fix PreviewsCompose.php which wasn't preserving ports at all, and improve
the Blade template formatting in previews-compose.blade.php.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 21:53:47 +01:00
Andras Bacsai
8659ca5b0f Update Fizzy logo with official PNG from repository
Replace custom SVG with the official app-icon.png (512x512) from
the Fizzy repository. This ensures brand consistency and uses the
authentic Fizzy branding.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 09:32:48 +01:00
Andras Bacsai
b758b1dcf3 Configure Fizzy to use single SQLite database for queue
Add SOLID_QUEUE_CONNECTS_TO=false environment variable to tell
Solid Queue to use the primary SQLite database instead of looking
for a separate queue database. This fixes the ActiveRecord adapter
error about missing queue database configuration.

With this setting, Fizzy will use a single SQLite database for both
the application data and Solid Queue job processing, which is the
recommended approach for single-instance deployments.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 21:02:29 +01:00
Andras Bacsai
f215c97a34 Simplify Fizzy service to use embedded SQLite
Remove MariaDB dependency and use Fizzy's default SQLite database.
This simplifies deployment by:
- Removing external database container
- Using DATABASE_ADAPTER=sqlite3 environment variable
- Mounting /rails/db volume for SQLite database persistence
- Reducing resource requirements and startup time

Fizzy supports SQLite by default and it's the recommended setup
for single-instance deployments.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:48:27 +01:00
Andras Bacsai
8ec8b2e069 Fix Fizzy MariaDB root password environment variable
Changed MARIADB_ROOT_PASSWORD from $SERVICE_PASSWORD_MARIADB_ROOT
to $SERVICE_PASSWORD_ROOT to match Coolify's standard naming convention
for root passwords. This fixes the MariaDB initialization error.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:43:49 +01:00
Andras Bacsai
0cb3327df1 Switch Fizzy from PostgreSQL to MariaDB
Fizzy uses MySQL/MariaDB, not PostgreSQL. Update the service template to use:
- MariaDB 11 instead of PostgreSQL
- mysql2:// protocol in DATABASE_URL
- Proper MariaDB environment variables and health checks

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:39:45 +01:00
Andras Bacsai
a7a275d012 Add Fizzy one-click service
Add Basecamp's Fizzy Kanban tracking tool as a one-click deployable service.

- Uses official Docker image: ghcr.io/basecamp/fizzy:main
- PostgreSQL database with auto-generated credentials
- Rails environment with SECRET_KEY_BASE and RAILS_MASTER_KEY
- VAPID keys for web push notifications
- Health checks on /up endpoint
- Persistent storage for Rails storage directory

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:25:25 +01:00
Andras Bacsai
9af4f734aa fix: update sentinel version to 0.0.18 2025-11-24 13:50:03 +01:00
peaklabs-dev
28b38babca
fix(service): disable openpanel worker UI by default 2025-11-10 22:09:04 +01:00
Andras Bacsai
fe46c490a2 Update service templates for Convex and EmbyStat; modify compose configurations and adjust tags and categories for better clarity and organization 2025-11-10 14:16:14 +01:00
Andras Bacsai
0ea27ce37a
Cancel active deployments when a pull request is closed (#7164) 2025-11-10 11:16:54 +01:00
Andras Bacsai
67605d50fc fix(deployment): prevent base deployments from being killed when PRs close (#7113)
- Fix container filtering to properly distinguish base deployments (pullRequestId=0) from PR deployments
- Add deployment cancellation when PR closes via webhook to prevent race conditions
- Prevent CleanupHelperContainersJob from killing active deployment containers
- Enhance error messages with exit codes and actual errors instead of vague "Oops" messages
- Protect status transitions in finally blocks to ensure proper job failure handling
2025-11-09 14:41:35 +01:00
Andras Bacsai
f382e95d9b
Merge branch 'next' into v4.x 2025-11-08 16:15:57 +01:00
Andras Bacsai
c34e5c803b fix: Convert network aliases to string for display
The `custom_network_aliases` field was being displayed as an array, which caused rendering issues. This change converts the array to a comma-separated string when syncing from the model to ensure it's displayed correctly in the UI.
2025-11-01 12:30:15 +01:00
thevinodpatidar
3be0dc07b8 Change version and documentation url 2025-10-31 11:00:41 +05:30
thevinodpatidar
b131a89d03 Add Postgresus service template files 2025-10-30 16:58:14 +05:30
Andras Bacsai
ae9f348458 rate limit test 2025-10-28 15:18:28 +01:00
Andras Bacsai
0fdfc18440
Merge pull request #6530 from yipfram/fix/evolution-api-slogan
feat: update Evolution API slogan to better reflect its capabilities
2025-10-28 10:29:07 +01:00
Andras Bacsai
12766695c4 feat: add dynamic viewport-based height for compose editor
- Add Alpine.js reactive height calculation based on viewport size
- Monaco editor now responds to window resize events
- Fix Livewire component structure by moving style tag inside root div
- Update CLAUDE.md to document critical single root element requirement
- Set minimum editor height of 300px with responsive maximum
- Use CSS custom properties to pass calculated height to components
2025-10-27 11:18:25 +01:00
Andras Bacsai
ef7cf1114f chore: update siyuan category in service templates
Update generated service template JSON files to reflect the category
field added to siyuan.yaml (documentation category).
2025-10-24 13:26:25 +02:00
Andras Bacsai
2e71ef4f11 Fix Hetzner server redirect in onboarding flow
When creating a Hetzner server from the onboarding view, the redirect
to the server details page was not working properly due to modal context.
The standard redirect() call doesn't handle navigation from within modals.

Changes:
- Add from_onboarding flag to ByHetzner component
- Use wire:navigate redirect when in onboarding mode
- Pass from_onboarding=true from boarding view

This ensures proper navigation to the newly created server page instead
of staying on the onboarding view.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 16:17:01 +02:00