diff --git a/.github/workflows/browser-tests.yml b/.github/workflows/browser-tests.yml deleted file mode 100644 index b06c9e97c..000000000 --- a/.github/workflows/browser-tests.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: Dusk -on: - push: - branches: [ "not-existing" ] -jobs: - dusk: - runs-on: ubuntu-latest - - services: - redis: - image: redis - env: - REDIS_HOST: localhost - REDIS_PORT: 6379 - ports: - - 6379:6379 - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - steps: - - uses: actions/checkout@v4 - - name: Set up PostgreSQL - run: | - sudo systemctl start postgresql - sudo -u postgres psql -c "CREATE DATABASE coolify;" - sudo -u postgres psql -c "CREATE USER coolify WITH PASSWORD 'password';" - sudo -u postgres psql -c "ALTER ROLE coolify SET client_encoding TO 'utf8';" - sudo -u postgres psql -c "ALTER ROLE coolify SET default_transaction_isolation TO 'read committed';" - sudo -u postgres psql -c "ALTER ROLE coolify SET timezone TO 'UTC';" - sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE coolify TO coolify;" - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' - - name: Copy .env - run: cp .env.dusk.ci .env - - name: Install Dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - name: Generate key - run: php artisan key:generate - - name: Install Chrome binaries - run: php artisan dusk:chrome-driver --detect - - name: Start Chrome Driver - run: ./vendor/laravel/dusk/bin/chromedriver-linux --port=4444 & - - name: Build assets - run: npm install && npm run build - - name: Run Laravel Server - run: php artisan serve --no-reload & - - name: Execute tests - run: php artisan dusk - - name: Upload Screenshots - if: failure() - uses: actions/upload-artifact@v4 - with: - name: screenshots - path: tests/Browser/screenshots - - name: Upload Console Logs - if: failure() - uses: actions/upload-artifact@v4 - with: - name: console - path: tests/Browser/console diff --git a/.github/workflows/chore-remove-labels-and-assignees-on-close.yml b/.github/workflows/chore-remove-labels-and-assignees-on-close.yml index a3c299b5e..194984ddc 100644 --- a/.github/workflows/chore-remove-labels-and-assignees-on-close.yml +++ b/.github/workflows/chore-remove-labels-and-assignees-on-close.yml @@ -21,7 +21,7 @@ jobs: async function processIssue(issueNumber, isFromPR = false, prBaseBranch = null) { try { - if (isFromPR && prBaseBranch !== 'main') { + if (isFromPR && prBaseBranch !== 'v4.x') { return; } @@ -70,7 +70,7 @@ jobs: if (context.eventName === 'pull_request' || context.eventName === 'pull_request_target') { const pr = context.payload.pull_request; await processIssue(pr.number); - if (pr.merged && pr.base.ref === 'main' && pr.body) { + if (pr.merged && pr.base.ref === 'v4.x' && pr.body) { const issueReferences = pr.body.match(/#(\d+)/g); if (issueReferences) { for (const reference of issueReferences) { diff --git a/.github/workflows/coolify-helper.yml b/.github/workflows/coolify-helper.yml index 78c888a01..56c3eaa17 100644 --- a/.github/workflows/coolify-helper.yml +++ b/.github/workflows/coolify-helper.yml @@ -2,7 +2,7 @@ name: Coolify Helper Image on: push: - branches: [ "main" ] + branches: [ "v4.x" ] paths: - .github/workflows/coolify-helper.yml - docker/coolify-helper/Dockerfile diff --git a/.github/workflows/coolify-production-build.yml b/.github/workflows/coolify-production-build.yml index ad0878205..cd1f002b8 100644 --- a/.github/workflows/coolify-production-build.yml +++ b/.github/workflows/coolify-production-build.yml @@ -2,7 +2,7 @@ name: Production Build (v4) on: push: - branches: ["main"] + branches: ["v4.x"] paths-ignore: - .github/workflows/coolify-helper.yml - .github/workflows/coolify-helper-next.yml diff --git a/.github/workflows/coolify-realtime.yml b/.github/workflows/coolify-realtime.yml index d3af14144..d00621cc2 100644 --- a/.github/workflows/coolify-realtime.yml +++ b/.github/workflows/coolify-realtime.yml @@ -2,7 +2,7 @@ name: Coolify Realtime on: push: - branches: [ "main" ] + branches: [ "v4.x" ] paths: - .github/workflows/coolify-realtime.yml - docker/coolify-realtime/Dockerfile diff --git a/.github/workflows/coolify-staging-build.yml b/.github/workflows/coolify-staging-build.yml index ff6b553df..09b1e9421 100644 --- a/.github/workflows/coolify-staging-build.yml +++ b/.github/workflows/coolify-staging-build.yml @@ -2,7 +2,10 @@ name: Staging Build on: push: - branches-ignore: ["main", "v3"] + branches-ignore: + - v4.x + - v3.x + - '**v5.x**' paths-ignore: - .github/workflows/coolify-helper.yml - .github/workflows/coolify-helper-next.yml diff --git a/.github/workflows/generate-changelog.yml b/.github/workflows/generate-changelog.yml index ee5af6b3d..935a88721 100644 --- a/.github/workflows/generate-changelog.yml +++ b/.github/workflows/generate-changelog.yml @@ -2,7 +2,7 @@ name: Generate Changelog on: push: - branches: [ main ] + branches: [ v4.x ] workflow_dispatch: permissions: @@ -33,4 +33,4 @@ jobs: git config user.email 'github-actions[bot]@users.noreply.github.com' git add CHANGELOG.md git commit -m "docs: update changelog" - git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git main + git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git v4.x diff --git a/CHANGELOG.md b/CHANGELOG.md index eae126054..3aa485d5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,78 @@ All notable changes to this project will be documented in this file. ## [unreleased] +### 💼 Other + +- Adjust Workflows for v5 (#5689) + +### 📚 Documentation + +- Update changelog + +### ⚙️ Miscellaneous Tasks + +- *(workflows)* Adjust workflow for announcement + +## [4.0.0-beta.412] - 2025-04-23 + +### ⚙️ Miscellaneous Tasks + +- *(versions)* Update coolify version to 4.0.0-beta.412 and nightly version to 4.0.0-beta.413 in configuration files + +## [4.0.0-beta.411] - 2025-04-23 + +### 🚀 Features + +- *(deployment)* Add repository_project_id handling for private GitHub apps and clean up unused Caddy label logic +- *(api)* Enhance OpenAPI specifications with token variable and additional key attributes +- *(docker)* Add HTTP Basic Authentication support and enhance hostname parsing in Docker run conversion +- *(api)* Add HTTP Basic Authentication fields to OpenAPI specifications and enhance PrivateKey model descriptions + ### 🐛 Bug Fixes +- *(backup-edit)* Conditionally enable S3 checkbox based on available validated S3 storage +- *(source)* Update no sources found message for clarity +- *(api)* Correct middleware for service update route to ensure proper permissions +- *(api)* Handle JSON response in service creation and update methods for improved error handling +- Add 201 json code to servers validate api response +- *(docker)* Ensure password hashing only occurs when HTTP Basic Authentication is enabled +- *(docker)* Enhance hostname and GPU option validation in Docker run to compose conversion + +### 🚜 Refactor + +- *(jobs)* Comment out unused Caddy label handling in ApplicationDeploymentJob and simplify proxy path logic in Server model +- *(database)* Simplify database type checks in ServiceDatabase and enhance image validation in Docker helper +- *(shared)* Remove unused ray debugging statement from newParser function +- *(applications)* Remove redundant error response in create_env method +- *(api)* Restructure routes to include versioning and maintain existing feedback endpoint +- *(api)* Remove token variable from OpenAPI specifications for clarity +- *(environment-variables)* Remove protected variable checks from delete methods for cleaner logic +- *(http-basic-auth)* Rename 'http_basic_auth_enable' to 'http_basic_auth_enabled' across application files for consistency +- *(docker)* Remove debug statement and enhance hostname handling in Docker run conversion +- *(server)* Simplify proxy path logic and remove unnecessary conditions + +### 📚 Documentation + +- Update changelog +- Update changelog +- Update changelog + +### ⚙️ Miscellaneous Tasks + +- *(versions)* Update coolify version to 4.0.0-beta.411 and nightly version to 4.0.0-beta.412 in configuration files + +## [4.0.0-beta.410] - 2025-04-18 + +### 🚀 Features + +- Add HTTP Basic Authentication +- *(readme)* Add new sponsors Supadata AI and WZ-IT to the README +- *(core)* Enable magic env variables for compose based applications + +### 🐛 Bug Fixes + +- *(application)* Append base directory to git branch URLs for improved path handling +- *(templates)* Correct casing of "denokv" to "denoKV" in service templates JSON - *(navbar)* Update error message link to use route for environment variables navigation - Unsend template - Replace ports with expose @@ -19,14 +89,33 @@ All notable changes to this project will be documented in this file. - Update changelog +### ⚙️ Miscellaneous Tasks + +- *(versions)* Bump coolify version to 4.0.0-beta.410 and update nightly version to 4.0.0-beta.411 in configuration files +- *(templates)* Update plausible and clickhouse images to latest versions and remove mail service + +## [4.0.0-beta.409] - 2025-04-16 + +### 🐛 Bug Fixes + +- *(parser)* Transform associative array labels into key=value format for better compatibility +- *(redis)* Update username and password input handling to clarify database sync requirements +- *(source)* Update connected source display to handle cases with no source connected + +### 🚜 Refactor + +- *(source)* Conditionally display connected source and change source options based on private key presence + +### ⚙️ Miscellaneous Tasks + +- *(versions)* Bump coolify version to 4.0.0-beta.409 in configuration files + ## [4.0.0-beta.408] - 2025-04-14 ### 🚀 Features - *(OpenApi)* Enhance OpenAPI specifications by adding UUID parameters for application, project, and service updates; improve deployment listing with pagination parameters; update command signature for OpenApi generation - *(subscription)* Enhance subscription management with loading states and Stripe status checks -- *(readme)* Add new sponsors Supadata AI and WZ-IT to the README -- *(core)* Enable magic env variables for compose based applications ### 🐛 Bug Fixes @@ -36,11 +125,6 @@ All notable changes to this project will be documented in this file. - *(mongodb)* Also apply custom config when SSL is enabled - *(templates)* Correct casing of denoKV references in service templates and YAML files - *(deployment)* Handle missing destination in deployment process to prevent errors -- *(parser)* Transform associative array labels into key=value format for better compatibility -- *(redis)* Update username and password input handling to clarify database sync requirements -- *(source)* Update connected source display to handle cases with no source connected -- *(application)* Append base directory to git branch URLs for improved path handling -- *(templates)* Correct casing of "denokv" to "denoKV" in service templates JSON ### 💼 Other @@ -52,7 +136,6 @@ All notable changes to this project will be documented in this file. - *(Dockerfile)* Remove service generation command from the build process to streamline Dockerfile and improve build efficiency - *(navbar-delete-team)* Simplify modal confirmation layout and enhance button styling for better user experience - *(Server)* Remove debug logging from isReachableChanged method to clean up code and improve performance -- *(source)* Conditionally display connected source and change source options based on private key presence ### 📚 Documentation @@ -65,9 +148,6 @@ All notable changes to this project will be documented in this file. - *(versions)* Update nightly version to 4.0.0-beta.410 - *(pre-commit)* Remove OpenAPI generation command from pre-commit hook - *(versions)* Update realtime version to 1.0.7 and bump dependencies in package.json -- *(versions)* Bump coolify version to 4.0.0-beta.409 in configuration files -- *(versions)* Bump coolify version to 4.0.0-beta.410 and update nightly version to 4.0.0-beta.411 in configuration files -- *(templates)* Update plausible and clickhouse images to latest versions and remove mail service ## [4.0.0-beta.407] - 2025-04-09 @@ -128,6 +208,7 @@ All notable changes to this project will be documented in this file. ### 🚀 Features - *(api)* Update OpenAPI spec for services (#5448) +- *(proxy)* Enhance proxy handling and port conflict detection ### 🐛 Bug Fixes @@ -140,6 +221,10 @@ All notable changes to this project will be documented in this file. ### 📚 Documentation +- Update changelog +- Update changelog +- Update changelog +- Update changelog - Update changelog - Update changelog - Update changelog @@ -155,15 +240,12 @@ All notable changes to this project will be documented in this file. ### 🚀 Features -- *(proxy)* Enhance proxy handling and port conflict detection - *(lang)* Added Azerbaijani language updated turkish language. (#5497) - *(lang)* Added Portuguese from Brazil language (#5500) - *(lang)* Add Indonesian language translations (#5513) ### 🐛 Bug Fixes -- *(database)* Custom config for MongoDB (#5471) -- *(ui)* Instance Backup settings - *(docs)* Comment out execute for now - *(installation)* Mount the docker config - *(installation)* Path to config file for docker login @@ -173,13 +255,10 @@ All notable changes to this project will be documented in this file. - *(docs)* Contribute service url (#5517) - *(proxy)* Proxy restart does not work on domain - *(ui)* Only show copy button on https +- *(database)* Custom config for MongoDB (#5471) ### 📚 Documentation -- Update changelog -- Update changelog -- Update changelog -- Update changelog - Update changelog - Update changelog - Update changelog @@ -187,10 +266,9 @@ All notable changes to this project will be documented in this file. ### ⚙️ Miscellaneous Tasks -- *(versions)* Bump version to 403 (#5520) -- *(versions)* Update coolify version numbers to 4.0.0-beta.403 and 4.0.0-beta.404 - *(service)* Remove unused code in Bugsink service - *(versions)* Update version to 404 +- *(versions)* Bump version to 403 (#5520) - *(versions)* Bump version to 404 ## [4.0.0-beta.402] - 2025-04-01 @@ -210,6 +288,7 @@ All notable changes to this project will be documented in this file. - *(DeployController)* Cast 'pr' query parameter to integer - *(deploy)* Validate team ID before deployment - *(wakapi)* Typo in env variables and add some useful variables to wakapi.yaml (#5424) +- *(ui)* Instance Backup settings ### 🚜 Refactor @@ -223,6 +302,7 @@ All notable changes to this project will be documented in this file. - *(service)* Add google variables to plausible.yaml (#5429) - *(service)* Update authentik.yaml versions (#5373) - *(core)* Remove redocs +- *(versions)* Update coolify version numbers to 4.0.0-beta.403 and 4.0.0-beta.404 ## [4.0.0-beta.401] - 2025-03-28 @@ -293,14 +373,6 @@ All notable changes to this project will be documented in this file. ### 🚀 Features -- *(github-source)* Enhance GitHub App configuration with manual and private key support -- *(ui)* Improve GitHub repository selection and styling -- *(database)* Implement two-step confirmation for database deletion -- *(assets)* Add new SVG logo for Coolify -- *(install)* Enhance Docker address pool configuration and validation -- *(install)* Improve Docker address pool management and service restart logic -- *(install)* Add missing env variable to install script -- *(LocalFileVolume)* Add binary file detection and update UI logic - *(service)* Neon - *(migration)* Add `ssl_certificates` table and model - *(migration)* Add ssl setting to `standalone_postgresqls` table @@ -342,6 +414,14 @@ All notable changes to this project will be documented in this file. - *(ssl)* Improve Redis and remove modes - Full SSL support for DrangonflyDB - SSL notification +- *(github-source)* Enhance GitHub App configuration with manual and private key support +- *(ui)* Improve GitHub repository selection and styling +- *(database)* Implement two-step confirmation for database deletion +- *(assets)* Add new SVG logo for Coolify +- *(install)* Enhance Docker address pool configuration and validation +- *(install)* Improve Docker address pool management and service restart logic +- *(install)* Add missing env variable to install script +- *(LocalFileVolume)* Add binary file detection and update UI logic - *(templates)* Change glance for v0.7 - *(templates)* Add Freescout service template - *(service)* Add Evolution API template @@ -359,18 +439,6 @@ All notable changes to this project will be documented in this file. - *(api)* Docker compose based apps creationg through api - *(database)* Improve database type detection for Supabase Postgres images -- *(ui)* Correct grammatical error in 404 page -- *(seeder)* Update GitHub app name in GithubAppSeeder -- *(plane)* Update APP_RELEASE to v0.25.2 in environment configuration -- *(domain)* Dispatch refreshStatus event after successful domain update -- *(database)* Correct container name generation for service databases -- *(database)* Limit container name length for database proxy -- *(database)* Handle unsupported database types in StartDatabaseProxy -- *(database)* Simplify container name generation in StartDatabaseProxy -- *(install)* Handle potential errors in Docker address pool configuration -- *(backups)* Retention settings -- *(redis)* Set default redis_username for new instances -- *(core)* Improve instantSave logic and error handling - *(ssl)* Permission of ssl crt and key inside the container - *(ui)* Make sure file mounts do not showing the encrypted values - *(ssl)* Make default ssl mode require not verify-full as it does not need a ca cert @@ -410,6 +478,18 @@ All notable changes to this project will be documented in this file. - *(ssl)* Add `--tls` arg to DrangflyDB - *(notification)* Always send SSL notifications - *(database)* Change default value of enable_ssl to false for multiple tables +- *(ui)* Correct grammatical error in 404 page +- *(seeder)* Update GitHub app name in GithubAppSeeder +- *(plane)* Update APP_RELEASE to v0.25.2 in environment configuration +- *(domain)* Dispatch refreshStatus event after successful domain update +- *(database)* Correct container name generation for service databases +- *(database)* Limit container name length for database proxy +- *(database)* Handle unsupported database types in StartDatabaseProxy +- *(database)* Simplify container name generation in StartDatabaseProxy +- *(install)* Handle potential errors in Docker address pool configuration +- *(backups)* Retention settings +- *(redis)* Set default redis_username for new instances +- *(core)* Improve instantSave logic and error handling - *(general)* Correct link to framework specific documentation - *(core)* Redirect healthcheck route for dockercompose applications - *(api)* Use name from request payload @@ -458,7 +538,6 @@ All notable changes to this project will be documented in this file. ### ⚙️ Miscellaneous Tasks -- *(supabase)* Update Supabase service template and Postgres image version - *(migration)* Remove unused columns - *(ssl)* Improve code in ssl helper - *(migration)* Ssl cert and key should not be nullable @@ -466,6 +545,7 @@ All notable changes to this project will be documented in this file. - Rename ca crt folder to ssl - *(ui)* Improve valid until handling - Improve code quality suggested by code rabbit +- *(supabase)* Update Supabase service template and Postgres image version - *(versions)* Update version numbers for coolify and nightly ## [4.0.0-beta.398] - 2025-03-01 @@ -858,14 +938,6 @@ All notable changes to this project will be documented in this file. ### 🚀 Features -- New ServerReachabilityChanged event -- Use new ServerReachabilityChanged event instead of isDirty -- Add infomaniak oauth -- Add server disk usage check frequency -- Add environment_uuid support and update API documentation -- Add service/resource/project labels -- Add coolify.environment label -- Add database subtype - Able to import full db backups for pg/mysql/mariadb - Restore backup from server file - Docker volume data cloning @@ -901,35 +973,6 @@ All notable changes to this project will be documented in this file. ### 🐛 Bug Fixes -- Fallback for copy button -- Copy the right text -- Maybe fallback is now working -- Only show copy button on secure context -- Render html on error page correctly -- Invalid API response on missing project -- Applications API response code + schema -- Applications API writing to unavailable models -- If an init script is renamed the old version is still on the server -- Oauthseeder -- Compose loading seq -- Resource clone name + volume name generation -- Update Dockerfile entrypoint path to /etc/entrypoint.d -- Debug mode -- Unreachable notifications -- Remove duplicated ServerCheckJob call -- Few fixes and use new ServerReachabilityChanged event -- Use serverStatus not just status -- Oauth seeder -- Service ui structure -- Check port 8080 and fallback to 80 -- Refactor database view -- Always use docker cleanup frequency -- Advanced server UI -- Html css -- Fix domain being override when update application -- Use nixpacks predefined build variables, but still could update the default values from Coolify -- Use local monaco-editor instead of Cloudflare -- N8n timezone - Compose envs - Scheduled tasks and backups are executed by server timezone. - Show backup timezone on the UI @@ -1029,7 +1072,6 @@ All notable changes to this project will be documented in this file. ### 🚜 Refactor -- Rename `coolify.environment` to `coolify.environmentName` - Rename parameter in DatabaseBackupJob for clarity - Improve checkbox component accessibility and styling - Remove unused tags method from ApplicationDeploymentJob @@ -1045,9 +1087,6 @@ All notable changes to this project will be documented in this file. ### ⚙️ Miscellaneous Tasks -- Regenerate API spec, removing notification fields -- Remove ray debugging -- Version ++ - Improve Penpot healthchecks - Switch up readonly lables to make more sense - Remove unused computed fields @@ -1071,11 +1110,44 @@ All notable changes to this project will be documented in this file. ### 🚀 Features +- New ServerReachabilityChanged event +- Use new ServerReachabilityChanged event instead of isDirty +- Add infomaniak oauth +- Add server disk usage check frequency +- Add environment_uuid support and update API documentation +- Add service/resource/project labels +- Add coolify.environment label +- Add database subtype - Migrate to new encryption options - New encryption options ### 🐛 Bug Fixes +- Render html on error page correctly +- Invalid API response on missing project +- Applications API response code + schema +- Applications API writing to unavailable models +- If an init script is renamed the old version is still on the server +- Oauthseeder +- Compose loading seq +- Resource clone name + volume name generation +- Update Dockerfile entrypoint path to /etc/entrypoint.d +- Debug mode +- Unreachable notifications +- Remove duplicated ServerCheckJob call +- Few fixes and use new ServerReachabilityChanged event +- Use serverStatus not just status +- Oauth seeder +- Service ui structure +- Check port 8080 and fallback to 80 +- Refactor database view +- Always use docker cleanup frequency +- Advanced server UI +- Html css +- Fix domain being override when update application +- Use nixpacks predefined build variables, but still could update the default values from Coolify +- Use local monaco-editor instead of Cloudflare +- N8n timezone - Smtp encryption - Bind() to 0.0.0.0:80 failed - Oauth seeder @@ -1085,11 +1157,15 @@ All notable changes to this project will be documented in this file. - Error message - Update healthcheck and port configurations to use port 8080 -## [4.0.0-beta.379] - 2024-12-13 +### 🚜 Refactor -### 🐛 Bug Fixes +- Rename `coolify.environment` to `coolify.environmentName` -- Saving oauth +### ⚙️ Miscellaneous Tasks + +- Regenerate API spec, removing notification fields +- Remove ray debugging +- Version ++ ## [4.0.0-beta.378] - 2024-12-13 @@ -1098,6 +1174,11 @@ All notable changes to this project will be documented in this file. - Monaco editor light and dark mode switching - Service status indicator + oauth saving - Socialite for azure and authentik +- Saving oauth +- Fallback for copy button +- Copy the right text +- Maybe fallback is now working +- Only show copy button on secure context ## [4.0.0-beta.377] - 2024-12-13 diff --git a/LICENSE b/LICENSE index 86c87eba2..e3cc59461 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [2022] [Andras Bacsai] + Copyright [2025] [Andras Bacsai] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.