Commit graph

15396 commits

Author SHA1 Message Date
rosslh
680b9305a2 fix(ci): recreate CDN storage zone in EU (DE) region
Storage zone was accidentally created in NY. Recreated as
'coolify-update' in DE (Falkenstein) to keep update artifacts
in EU jurisdiction, consistent with Bunny.net data sovereignty
justification. Updated storage zone name, pull zone ID, and
reverted storage endpoint to default (storage.bunnycdn.com).
2026-05-01 19:00:45 -04:00
rosslh
bc26fb6fe1 fix(ci): use NY region storage endpoint for Bunny CDN uploads 2026-05-01 19:00:45 -04:00
rosslh
e563a9c79a fix(ci): use apk instead of apt-get for curl install 2026-05-01 19:00:45 -04:00
rosslh
702b47788f fix(ci): install curl in runner for CDN uploads 2026-05-01 19:00:45 -04:00
rosslh
20a4b53950 feat: add update pipeline with MapleDeploy CDN and versioning
Route all Coolify update artifacts (versions.json, upgrade.sh,
compose files) through updates.mapledeploy.ca instead of upstream
cdn.coollabs.io. Extend CI to publish artifacts to Bunny CDN
storage zone and purge cache on each build.

- Point CDN_URL, versions_url, upgrade_script_url to updates.mapledeploy.ca
- Hardcode helper/realtime images to ghcr.io (not mirrored to Forgejo)
- Pass registry_url as 3rd arg to upgrade.sh for main image pulls
- Adopt versioning scheme 4.0.0-beta.X.N (bump to 4.0.0-beta.463.1)
- Add CI steps: generate versions.json, upload to Bunny, purge cache
2026-05-01 19:00:45 -04:00
rosslh
21bb24fe6f feat(branding): apply MapleDeploy branding to Coolify
Replace Coolify branding with MapleDeploy throughout the UI: logos,
favicon, fonts (Overlock 900), color scheme, help links, and page
titles. Remove GitHub Actions workflows and add Forgejo CI build
workflow. Strip cloud-only features (subscription prompts, sponsor
links, server creation cloud options).
2026-05-01 19:00:45 -04:00
Andras Bacsai
922950de59
chore(templates): sync service-templates from next (#9884) 2026-04-30 07:05:35 +02:00
Andras Bacsai
51d6795eeb chore(templates): sync service-templates from next
Pulls latest service-templates JSON files from `next` so cloud's hourly
PullTemplatesFromCDN job picks up queued template fixes (Jitsi, Plane,
Cap, Beszel, Langfuse, Twenty, Cal.com, etc.).

`templates/**` is in `paths-ignore` of coolify-production-build.yml so
no image rebuild triggered.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 07:04:12 +02:00
Andras Bacsai
96bfc14543
v4.0.0 (#9818) 2026-04-27 10:51:15 +02:00
Andras Bacsai
d0ed4fa4c4 version ++ finally 2026-04-27 09:09:01 +02:00
Andras Bacsai
8deb19e5e4
fix(service): rally invalid next public url (#9041) 2026-04-27 09:08:04 +02:00
Andras Bacsai
e1a295ac6c
fix(service): add missing database alteration step for Logto latest image (#9376) 2026-04-27 09:07:53 +02:00
Andras Bacsai
5a4f79441c
fix(service): Jitsi Meet doesn't work (#9594) 2026-04-27 09:06:57 +02:00
Andras Bacsai
349e9289ad
fix(service): twenty fails to deploy due to dependency unhealthy (#9603) 2026-04-27 09:06:41 +02:00
Andras Bacsai
43b8304e02
feat(service): enable plane (#9641) 2026-04-27 09:06:32 +02:00
Andras Bacsai
e9a9a32e87
feat(services): add Cap to templates (#9729) 2026-04-27 09:06:09 +02:00
Andras Bacsai
3f736b5afd
feat(service): add healthcheck to langfuse-worker (#9772) 2026-04-27 09:05:38 +02:00
Andras Bacsai
66ce3009a3
chore(service): update beszel to 0.18.7 (#9775) 2026-04-27 09:05:22 +02:00
Andras Bacsai
d131066701
feat(service): disable calcom (#9776) 2026-04-27 09:04:56 +02:00
Andras Bacsai
968ae97dfc version++ 2026-04-27 09:01:36 +02:00
Andras Bacsai
8ef238d19c
fix(helper): stop info icon click from propagating to parent on mobile (#9809) 2026-04-26 13:54:59 +02:00
Andras Bacsai
9cd379e737 fix(helper): add Alpine.js click toggle to info helper popup
Replace CSS-only hover with Alpine.js click-based open/close,
including click.outside to dismiss.
2026-04-26 12:55:34 +02:00
Andras Bacsai
cad9fc99d6 docs(sponsors): add ParsecPH to Small sponsors 2026-04-26 12:53:45 +02:00
Andras Bacsai
74cc85139f docs(sponsors): add NetRouting to Small sponsors 2026-04-24 22:33:32 +02:00
ShadowArcanist
d2b7dfe92a
fix(service): remove volume declaration on jitsi 2026-04-24 09:40:01 +05:30
ShadowArcanist
424a41dbd0
fix(service): add missing category to jitsi 2026-04-24 09:30:57 +05:30
ShadowArcanist
cd47711cd0
feat(service): disable calcom
Not maintained anymore by the calcom team
2026-04-24 02:28:08 +05:30
ShadowArcanist
5f45deedce
chore(service): update beszel-agent to 0.18.7 2026-04-24 02:22:08 +05:30
ShadowArcanist
b3d6877404
chore(service): update beszel to 0.18.7 2026-04-24 02:21:33 +05:30
ShadowArcanist
32ae288a12
fix(service): add port to metadata on plane 2026-04-24 00:12:17 +05:30
Gauthier POGAM--LE MONTAGNER
f77fd2161c feat(service): add healthcheck to langfuse-worker 2026-04-23 18:08:40 +02:00
Andras Bacsai
c5ce36018c docs(sponsors): add MindedTech to Small sponsors 2026-04-23 14:13:55 +02:00
Andras Bacsai
237313f5c7 docs(sponsors): update PrivateAlps description 2026-04-23 00:17:53 +02:00
ShadowArcanist
e26d4e39e6
fix(service): add healthcheck on cap-captcha.yaml 2026-04-23 01:07:14 +05:30
ShadowArcanist
716c741fff
fix(service): pin docker image on cap-captcha.yaml 2026-04-23 01:07:00 +05:30
ShadowArcanist
d425998476
fix(service): service url variable on cap-captcha.yaml 2026-04-23 01:06:44 +05:30
ShadowArcanist
ae1a24a83b
fix(service): add category on cap-captcha.yaml 2026-04-23 01:06:25 +05:30
ShadowArcanist
833f5769e5
fix(service): docs link on cap-captcha.yaml 2026-04-23 01:06:07 +05:30
Andras Bacsai
6b00c31ff2
fix(navigation): replace wire:navigate.hover with wire:navigate (#9742) 2026-04-22 20:56:45 +02:00
Andras Bacsai
19767a569b fix(navigation): replace wire:navigate.hover with wire:navigate
Remove hover prefetching variant from SPA navigation helper,
both in the happy path and the exception fallback.
2026-04-22 20:55:09 +02:00
tiago
0c1c5c5831
feat: add Cap to templates 2026-04-22 10:15:18 +01:00
Andras Bacsai
4e561264b4 docs(sponsors): add PrivateAlps to Huge and YouStable to Small sponsors 2026-04-22 08:58:38 +02:00
Andras Bacsai
37518813a6
v4.0.0-beta.474 (#9542) 2026-04-21 12:30:44 +02:00
Andras Bacsai
e1aac50b74
refactor(validation): tokenize shell-safe command pattern (#9684) 2026-04-20 22:04:36 +02:00
Andras Bacsai
817128c5af refactor(validation): tokenize shell-safe command pattern
Replace the flat character-class regex for SHELL_SAFE_COMMAND_PATTERN with
a token-aware alternation. The parser now recognizes explicit tokens
(`&&`, `||`, balanced single/double quotes, whitespace, and an unquoted
safe-char run) instead of a bag of characters, which lets us extend the
accepted grammar without loosening the guarantees.

New surface area, with tests:
- logical OR chaining (`make build || make clean`)
- shell globs and bang (`rm *.tmp`, `cp src/?.js dist/`, `! grep -q foo`)
- single-quoted arguments are now treated as balanced runs rather than
  rejected per-character

Preserved surface area:
- && chaining, balanced "..." and '...' quotes, the previous safe path /
  argument characters, and the existing error-path contract in
  ApplicationDeploymentJob::validateShellSafeCommand().

Also refreshes the user-facing validation messages in General.php so the
allow/deny list shown on failure matches the new grammar.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 22:00:41 +02:00
Andras Bacsai
8e22360139
refactor(database): align Postgres SSL chown escaping with MySQL (#9682) 2026-04-20 21:44:02 +02:00
Andras Bacsai
f0e955bf45 refactor(database): escape postgres_user in SSL chown command
Apply escapeshellarg() to the Postgres username before interpolating it
into the chown command used to fix SSL certificate ownership, matching
the handling already in place for StartMysql. This keeps the sink-side
escaping consistent across database actions, independent of upstream
input validation.

Also adjusts an assertion in DatabaseSslCredentialEscapingTest to match
the actual double-escaped output of executeInDocker, and adds Postgres
regression cases for subshell and semicolon payloads.
2026-04-20 21:41:48 +02:00
Andras Bacsai
1cf6c7d0ae
fix(database): tighten Postgres init script filename handling (#9681) 2026-04-20 21:27:56 +02:00
Andras Bacsai
a05d4e3a4b fix(database): tighten Postgres init script filename handling
Validate new init-script filenames against path traversal and shell
metacharacters via a new validateFilenameSafe() helper, and harden the
write/delete paths with basename() + escapeshellarg() so legacy rows
still deploy and can be cleaned up without regressions.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 21:26:34 +02:00
Andras Bacsai
b1a78df58e
feat(security): add expiration support for API tokens (#9677) 2026-04-20 14:29:28 +02:00