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