Commit Graph
100 Commits
Author SHA1 Message Date
peaklabs-dev 06ad71439c build: move the helper image to coollabsio/coolify-helper
- Docker Compose builds the development helper from the main branch of that repository, scripts/dev-helper from there or from a local checkout
- Remove buildHelperImage from the settings, nothing calls it since its button was removed
2026-11-02 00:03:45 +01:00
🏔️ Peak babd21d51c feat: add new release process (#12357) 2026-11-02 00:03:41 +01:00
peaklabs-dev 8e200cc85d docs: add the new release process changes to CHANGELOG.md 2026-11-01 23:10:53 +01:00
peaklabs-dev 766a3b8fcb fix(release): preselect a minor for feat(release) changes
- only the commits that bump the Coolify version stay ignored, so a feat change to the release process asks for a minor
2026-11-01 19:37:43 +01:00
peaklabs-dev 9d1faa568e fix(release): version a pull request like a nightly of its base branch
- a pull request into next took the preview version in release.json, which still names 4.6.0-beta.1 once 4.6.0 is released, so its image sorted before 4.6.0
2026-11-01 19:37:43 +01:00
peaklabs-dev 7d1970a8c7 ci: build pull requests from branches that release
- a push that changes release.json stays unbuilt, the release workflow builds it
2026-11-01 19:37:42 +01:00
peaklabs-dev 4c78b72e9b ci: merge forward only after a release
- next gets one merge per release, named after its tag, and no merge of main commits that are not released yet
2026-11-01 19:37:42 +01:00
peaklabs-dev 0922ebe019 ci: name every step and job after what it does 2026-11-01 19:37:42 +01:00
peaklabs-dev 5f48d2fc54 ci: simplify the PR description of a conflicting merge 2026-11-01 19:37:41 +01:00
peaklabs-dev fc01324da5 ci(release): plan the moving tags in a step of their own 2026-11-01 19:37:41 +01:00
peaklabs-dev 2956929817 refactor(release): rename version.sh to plan-version.sh 2026-11-01 19:37:41 +01:00
peaklabs-dev e30cdd8325 refactor(release): put a v in front of the upstream version in tags
- An upstream line is tagged v<upstream>-v<version> in git instead of <upstream>-v<version>
- Coolify has no upstream lines, its git tags stay v<version>, and the v is stripped from the Docker image tags
2026-11-01 19:37:40 +01:00
peaklabs-dev a9044e87fc ci(build): skip pull requests from branches that release 2026-11-01 19:37:40 +01:00
peaklabs-dev 852fc041f3 ci: build main twice a day for testing
- Moves the main tag on ghcr.io when main changed since the last build, versioned after the stable version like 4.5.0.20261028.1
- Pushes no version tag, so the clean manifests workflow deletes the build it replaces
- version.sh --main picks the version from MAIN_VERSION and MAIN_REVISION, the labels of the build main points at
2026-11-01 19:37:40 +01:00
peaklabs-dev 161f4459a6 feat(release): let the image set the Coolify version
- The upgrade script removes COOLIFY_VERSION from .env, so a tag such as nightly or pr-1234 is never taken for the version
- install.sh still takes a version such as 4.6.0-beta.1, LATEST_IMAGE in .env picks the image and the image carries its version
2026-11-01 19:37:39 +01:00
peaklabs-dev e0fb2b3897 ci(release): build and release a nightly twice a day
- Remove other/nightly, the nightly channel uses the production files, so there are no longer two copies to keep in sync
- sync-cdn.sh --nightly syncs the files of the commit the nightly is built from to /coolify/nightly on the CDN, with the nightly version in its versions.json and in /coolify/release.json, and pushes them straight to main of coollabs-cdn
- version.sh picks the branch the nightly comes from, the release branch of the next version after the newest stable one or next, and names the version <preview>.<YYYYMMDD>.<N>
- The image is labeled with its version and commit, the nightly workflow reads both from the image nightly points at to count up N and to skip a run without a new commit
2026-11-01 19:37:39 +01:00
peaklabs-dev 2615559b5e ci: publish an image for every pull request
- version.sh --build appends the -pr.<number> suffix
2026-11-01 19:37:39 +01:00
peaklabs-dev 49590cf959 docs: rewrite RELEASE.md for the new release process 2026-11-01 19:37:36 +01:00
peaklabs-dev 02c370d34b ci: use the new release process
- build.yaml and release.yaml replace the main, next, rc, release and hotfix workflows
2026-11-01 15:16:40 +01:00
peaklabs-dev 8878ea0dcd ci: merge main and release branches forward
- Replaces sync-main-to-next, which merged main into next every 10 minutes
2026-11-01 15:16:01 +01:00
peaklabs-dev f1ab6069be feat(release): add release.sh to bump the Coolify version
- Asks for the stage of a prerelease and offers the versions the branch allows, the bump the commits need is preselected
- Sets the version in release.json, dates CHANGELOG.md for a stable release, commits and pushes
- undo-release.sh resets the release commit while it is not pushed
2026-11-01 15:15:54 +01:00
peaklabs-dev 8fac6ecf80 feat(release): add version.sh to decide releases and tags 2026-11-01 15:15:45 +01:00
peaklabs-dev 911e68ab27 feat(release): add release.json and upstream.json
- config/constants.php reads the Coolify and helper versions from them
- The image and sync-cdn.sh write versions.json from upstream.json, install.sh reads it by key
2026-11-01 15:15:33 +01:00
peaklabs-dev 7560d0745d feat(release): add sync-cdn.sh to sync a release to the CDN
- Replaces php artisan sync:cdn and its sync:cdn task in scripts/run
- --purge clears the Cloudflare cache sooner than the 10 minutes it keeps a file, with the token and zone from the environment or .env
2026-11-01 15:13:43 +01:00
peaklabs-dev 42382d8a4c docs: write CHANGELOG.md by hand instead of with git-cliff
- git-cliff did not work properly with the style of our commit messages, and the CHANGELOG.md it wrote did not fit our style
2026-11-01 15:10:56 +01:00
peaklabs-dev 8cd0dcb4fc chore: merge main into next 2026-10-30 23:41:32 +01:00
🏔️ Peak 751ecb91c5 ci: add a workflow to cleanup unused manifests (#12362) 2026-10-30 23:19:46 +01:00
peaklabs-dev fb0210f582 feat(scripts): harden the requests of the manifest cleanup
- passes the Docker Hub login to curl on stdin, which keeps it out of the process list
- checks the format of version ids and digests before a delete
2026-10-30 23:00:56 +01:00
peaklabs-dev b001e80fc9 feat(scripts): delete only versions older than a day
- a build pushes its images before the index that tags them, a run in between would see them as unused
- a push while the run reads the pages of versions shows one version twice, the list keeps it once so the second delete does not stop the run
2026-10-30 22:53:11 +01:00
peaklabs-dev 0375750aed feat(scripts): show the ghcr.io sizes in brackets 2026-10-30 22:37:03 +01:00
peaklabs-dev 4b7b9bc145 ci: run the workflow as a dry run first
- a manually triggered first run in CI uploads the full list of manifests to delete
- a later pull request makes the workflow hourly again
2026-10-30 22:37:03 +01:00
peaklabs-dev 200042e16b feat(scripts): check twice the delete limit on docker.io
- ghcr.io lists deleted versions for 30 days, a HEAD on docker.io for each would reach thousands per run, which could trigger rate limits
- twice the delete limit covers the last two runs, and manifests only docker.io has sort first, so a copy docker.io refused is deleted within two runs
2026-10-30 22:35:49 +01:00
peaklabs-dev c5d380a4c6 feat(scripts): give each registry a column in the lists
- docker_hub is undefined for a manifest ghcr.io has, as a HEAD on docker.io for every one of them could trigger rate limits
2026-10-30 22:35:49 +01:00
peaklabs-dev 26f8c990a5 ci: delete unused manifests every hour
- with a run every hour and 200 deletions per run the about 35,000 unused manifests on ghcr.io and docker.io are deleted in about 7 days, then the schedule goes back to every 2 weeks or every month
- a run deletes 200 at most, as GitHub allows an account 500 requests per hour and the ghrc.io PAT is an account level PAT
2026-10-30 22:35:47 +01:00
peaklabs-dev c5d53418da chore: merge main into next 2026-10-30 22:16:19 +01:00
peaklabs-dev 82f1f974f1 feat(scripts): add a script to delete unused manifests
- v3 and 4.0.0-beta.420.x do not follow semantic versioning, KEEP_TAG_EXCEPTIONS keeps them explicitly
2026-10-30 22:15:51 +01:00
🏔️ Peak 119ba74750 feat(database): bump the SQLite image to 3.54.1-v0.2.0 (#12400) 2026-10-30 18:42:14 +01:00
peaklabs-dev 3665482f77 feat(database): replace the SQLite uid note with a bind mount warning
- 3.54.1-v0.2.0 lets any uid write the databases, so the application no longer has to run as 65532 or root for improved compatibility, however the SQLite files are now writable by every user, so a bind mount instead of a docker volume mount opens them to every user on the host
2026-10-30 18:27:17 +01:00
peaklabs-dev f780d7429c feat(database): bump the SQLite image to 3.54.1-v0.2.0 2026-10-30 18:27:16 +01:00
peaklabs-dev 35e1a05705 chore(docker): bump serversideup PHP image to v5.0.3 2026-10-25 22:48:06 +01:00
peaklabs-dev 755f731bad chore(deps): bump Laravel to 12.70.1 2026-10-25 22:46:49 +01:00
peaklabs-dev 57d75d85d4 fix(docker): bump Nginx to 1.31.8 2026-10-25 22:46:49 +01:00
peaklabs-dev 681a0e2aee fix(scripts): read the Coolify version from the containers files 2026-10-21 21:55:52 +02:00
peaklabs-dev 82b40eb852 fix(scripts): improve patch.sh
- let patch.sh run while the coolify container is stopped
- If the compose files are from 4.4 but an older Coolify is installed the error now prints the command to update to 4.4.7
2026-10-21 21:35:08 +02:00
🏔️ Peak ff642008f1 fix(security): releease v4.4.7 (#12257) 2026-10-21 16:18:27 +02:00
peaklabs-dev eeda30719f feat(cdn): add patch.sh to sync:cdn 2026-10-21 16:16:13 +02:00
peaklabs-dev 86c21c0d5b fix(docker): bump cloudflared to 2026.10.3 2026-10-21 16:04:59 +02:00
peaklabs-dev 4b11e0b97e chore(release): bump version to 4.4.7 2026-10-21 15:50:33 +02:00
peaklabs-dev a220c1c7fe ci(release): allow stable releases from fix branches 2026-10-21 15:50:33 +02:00
peaklabs-dev 19d1014e2b fix(sentinel): bump Sentinel to 1.1.2 2026-10-21 15:50:33 +02:00
peaklabs-dev 6a6d33cd04 fix(docker): use Node.js 24.22.1 2026-10-21 15:50:33 +02:00
🏔️ Peak b12d1386f3 feat(security): add tmp security release setup (#12256) 2026-10-21 15:47:41 +02:00
peaklabs-dev 0364f01fe9 fix(sentinel): bump Sentinel to 1.1.2 2026-10-21 14:20:51 +02:00
peaklabs-dev 48573fc865 ci: add temporary hotfix release workflow 2026-10-21 14:20:51 +02:00
peaklabs-dev 435b2bcf54 ci: add temporary patched PHP base image build 2026-10-21 14:20:51 +02:00
peaklabs-dev dfcf4245b8 feat(scripts): add patch script for security fix releases 2026-10-21 14:20:50 +02:00
peaklabs-dev f05609dc11 fix(docker): use the patched PHP base image 2026-10-21 14:05:44 +02:00
🏔️ Peak 856735613d feat(backups): back up the coolify database before an update (#12093) 2026-10-12 00:59:14 +02:00
🏔️ Peak 068f02e274 chore(repo): add why section and maintainer PR templates (#12091) 2026-10-12 00:12:40 +02:00
🏔️ Peak 863c89a347 feat: show the full file path inline and warn on a repeated base dir (#12081) 2026-10-08 18:14:19 +02:00
🏔️ Peak 3f953d1dce revert(git): stop forcing HTTP/1.1 for repository imports (#12080) 2026-10-08 18:10:07 +02:00
🏔️ Peak 9ff749b69a feat(database): add flush cache option for Redis, KeyDB and Dragonfly (#11513) 2026-10-04 23:17:10 +02:00
peaklabs-dev 189207a7a5 refactor(database): rename FlushCacheDatabase action to FlushDatabase 2026-10-04 23:07:05 +02:00
peaklabs-dev 5d9ea79ac8 refactor(database): move flush into the shared danger zone 2026-10-04 23:07:05 +02:00
peaklabs-dev 1e70c73215 refactor(database): simplify flush command and drop password escaping 2026-10-04 23:07:04 +02:00
peaklabs-dev f5b221e3f3 fix(database): flush KeyDB and TLS Dragonfly and detect failed flushes 2026-10-04 23:07:04 +02:00
peaklabs-dev d351233e77 chore(repo): add default PR template for most core team PRs 2026-10-04 22:40:59 +02:00
peaklabs-dev 4abeba843c chore(repo): add version PR template for next to main or minor version PRs 2026-10-04 22:40:58 +02:00
peaklabs-dev 4a2d47822e chore(repo): add why section to contributor PR template 2026-10-04 22:40:58 +02:00
🏔️ Peak 5f413cd7af chore(deps): add laravel vet an update composer dependencies (#12084) 2026-10-04 20:18:54 +02:00
🏔️ Peak 15ac5b7534 feat(proxy): add hashing options for basic authentication (#12086) 2026-10-04 20:13:16 +02:00
peaklabs-dev 00dced2c24 refactor(api): check HTTP basic auth request fields with one hasAny call 2026-10-04 19:57:48 +02:00
peaklabs-dev 174e0131f7 feat(proxy): add hashing options for HTTP basic authentication 2026-10-04 19:57:48 +02:00
peaklabs-dev c298c22f99 chore(deps): upgrade swagger-php to v6 2026-10-03 22:59:20 +02:00
peaklabs-dev d5b3fad6cd chore(deps): upgrade composer dependencies to new major versions 2026-10-03 22:55:28 +02:00
peaklabs-dev a30b0ee721 chore(deps): update composer dependencies 2026-10-03 22:52:26 +02:00
peaklabs-dev 0c7d9af196 chore(deps): add Laravel Vet 2026-10-03 22:51:31 +02:00
peaklabs-dev 9683fd3466 chore(deps): restore composer version ranges 2026-10-03 22:51:07 +02:00
peaklabs-dev b634d1061a fix(ui): place the Docker build stage target next to the builder selection 2026-10-03 19:57:26 +02:00
peaklabs-dev 6f75c601c3 feat(application): show the full file path inline and warn on a repeated base directory 2026-10-03 19:43:34 +02:00
peaklabs-dev 650351e2da fix(application): show the default file location when the field is empty or cleared 2026-10-03 19:43:34 +02:00
peaklabs-dev aef0f29b84 feat(services): update service template json 2026-09-28 01:18:01 +02:00
🏔️ Peak fe5bddfefb feat(services): update and add new service templates (#11217) 2026-09-28 00:56:55 +02:00
🏔️ Peak 91a1fff35a Merge branch 'main' into feat/services 2026-09-27 23:23:27 +02:00
peaklabs-dev 2aef5ab459 feat(database): let docker compose applications mount the sqlite volume 2026-09-27 18:00:34 +02:00
🏔️ Peak 12753a0519 feat(database): add experimental standalone SQLite database (#11992) 2026-09-26 23:43:23 +02:00
peaklabs-dev a52cafb2db Merge branch 'main' into feat/add-sqlite-database 2026-09-26 23:22:49 +02:00
🏔️ Peak edcb884266 Merge branch 'main' into feat/add-sqlite-database 2026-09-26 21:32:43 +02:00
peaklabs-dev 0687d1f55f feat(database): unlink applications from sqlite and protect connected volumes 2026-09-26 20:39:07 +02:00
peaklabs-dev 09c5cbcbb0 feat(database): record which sqlite database a connected volume comes from 2026-09-26 18:05:18 +02:00
peaklabs-dev b182654203 feat(database): add option to connect a sqlite database to an application in 1 click 2026-09-25 22:54:11 +02:00
peaklabs-dev 5261785c69 Merge remote-tracking branch 'origin/next' into feat/add-sqlite-database 2026-09-25 22:47:29 +02:00
peaklabs-dev 02b8aafee0 docs: list sqlite among the standalone databases 2026-09-24 22:15:09 +02:00
peaklabs-dev b429c3d88e test: add tests for sqlite 2026-09-24 22:15:09 +02:00
peaklabs-dev 0c0bed6774 feat(mcp): include sqlite in database and infrastructure tools 2026-09-24 22:15:08 +02:00
peaklabs-dev 032ea6498c feat(api): support sqlite databases in the databases API 2026-09-24 22:15:08 +02:00
peaklabs-dev 46e53e1fb8 feat(backups): support restoring sqlite backups 2026-09-24 22:15:06 +02:00
peaklabs-dev 9998dccc0a feat(backups): support scheduled sqlite backups 2026-09-24 19:03:43 +02:00
peaklabs-dev f9d93eb7d4 feat(ui): list sqlite databases in dashboard, project and destination views 2026-09-24 19:03:43 +02:00
peaklabs-dev b112927000 feat(ui): add sqlite to the new resource selection 2026-09-24 19:03:43 +02:00