Commit graph

1605 commits

Author SHA1 Message Date
Andras Bacsai
994eee8377 fix(backups): retain volume backups without server 2026-07-19 22:35:33 +02:00
Andras Bacsai
28f8867567 feat(api): add volume backup schedule delete endpoints
Expose DELETE for application, database, and service storage backup
schedules (with OpenAPI docs), reject storage deletes while schedules
exist, skip retention cleanup when no limits are set, and remove S3
archives using the execution’s S3 storage.
2026-07-16 21:44:48 +02:00
Andras Bacsai
ac36a59088 fix(backups): pin S3 per volume execution and harden deletes
Store s3_storage_id on scheduled volume backup executions so retention
and recovery use the S3 that received the upload. Extract
DeleteScheduledVolumeBackup for UI and resource deletion, and isolate
database backup retention failures so cleanup errors do not fail the job.
2026-07-16 14:30:58 +02:00
Andras Bacsai
ddbed9f8a6 Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-16 13:47:15 +02:00
Andras Bacsai
2719d66042 feat: add ClickHouse backups and cloud ops tools
Enable scheduled ClickHouse backups across the job, API, and UI, and
guard unsupported database types via isBackupSolutionAvailable().
Convert Stripe subscription sync from a job to an action with clearer
discrepancy resolution, and add cloud:export-users plus
cloud:cleanup-unverified-users with tests.
2026-07-16 11:57:52 +02:00
Andras Bacsai
d7385ad0c4 feat(backups): support scheduled backups for application storage targets
Add polymorphic volume backup scheduling for persistent volumes and directories, expose schedule management via API, and reorganize backup configuration and execution views.
2026-07-15 17:34:22 +02:00
Andras Bacsai
4eec1ac547 fix(backups): stop containers during volume backup creation
Track and recover stopped containers across interrupted backup executions.
2026-07-15 15:59:35 +02:00
Andras Bacsai
63961e0799 feat(backups): add scheduled persistent volume backups 2026-07-15 15:47:57 +02:00
Andras Bacsai
c8a332a3bc fix(servers): isolate cloud status checks from SSH checks
Track provider state independently, skip SSH work for placeholder IPs, and clean up failed cloud server provisioning.
2026-07-11 22:52:10 +02:00
Andras Bacsai
e01b8a057e fix(servers): retain cloud instances awaiting IPs
Persist DigitalOcean, Hetzner, and Vultr servers before public IP
assignment, then backfill placeholder addresses from provider state.

Treat partial Sentinel snapshots as non-authoritative and document the
destinations API with OpenAPI schemas.
2026-07-11 21:35:10 +02:00
Andras Bacsai
3f960d94c3 fix(github): skip opened PR previews with skip ci 2026-07-08 14:41:37 +02:00
Andras Bacsai
f4f4274cee fix(github): skip PR previews from head commit flags 2026-07-08 13:31:23 +02:00
Andras Bacsai
c303c34cfd feat(digitalocean): add droplet provisioning support 2026-07-08 10:42:58 +02:00
Andras Bacsai
c58b4fd69c Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider 2026-07-07 13:44:37 +02:00
Andras Bacsai
9b060958aa
fix(ray): remove Ray debug hooks from runtime (#10847) 2026-07-03 11:40:20 +02:00
Andras Bacsai
bb2f70ac3b
fix(railpack): isolate buildx from Docker client env (#10840) 2026-07-02 18:53:00 +02:00
Andras Bacsai
cf6f5a2678
feat(registry): add configurable docker registry url (#9017) 2026-07-02 18:52:46 +02:00
Andras Bacsai
ed6352682e Merge remote-tracking branch 'origin/next' into improve-application-url-handling 2026-07-02 16:57:14 +02:00
Andras Bacsai
bbff70c8d0 fix: improve application URL handling 2026-07-02 16:52:07 +02:00
Andras Bacsai
0bf97df9af feat: add internal endpoint controls 2026-07-02 16:35:39 +02:00
Andras Bacsai
7a853efa79
chore: inspect PR context (#10834) 2026-07-02 16:27:06 +02:00
Andras Bacsai
20b5b90cf9 Merge remote-tracking branch 'origin/next' into improve-s3-storage-handling 2026-07-02 15:06:11 +02:00
Andras Bacsai
78d9244caa fix: improve s3 storage handling 2026-07-02 15:05:05 +02:00
Andras Bacsai
bed058b826
Improve outbound URL validation (#10833) 2026-07-02 15:02:37 +02:00
Andras Bacsai
a06c1a7bf5 Improve storage mount path handling 2026-07-02 14:54:38 +02:00
Andras Bacsai
c7f014017b Improve outbound URL validation 2026-07-02 14:46:46 +02:00
Andras Bacsai
9a64b2ea0a Merge remote-tracking branch 'origin/next' into fix/railpack-buildtime-env-interpolation 2026-06-29 10:20:07 +02:00
Andras Bacsai
2dc34f61ff fix(railpack): create empty build-time env file 2026-06-29 10:19:22 +02:00
Andras Bacsai
a630532308 fix(deploy): preserve deploy key command metadata 2026-06-29 10:17:09 +02:00
Andras Bacsai
1a5b8d3612 fix(deploy): skip logging deploy key commands 2026-06-28 13:15:18 +02:00
Aditya Tripathi
623bf89543
fix(railpack): interpolate build-time env variables by sourcing build-time .env
Railpack builds forwarded build-time variables inline as `env 'KEY=VALUE'`,
which single-quotes each value and prevents shell interpolation. References
like BETTER_AUTH_URL=$COOLIFY_URL reached the build as the literal string
"$COOLIFY_URL" instead of the resolved URL, breaking builds that validate
their env (e.g. SvelteKit/better-auth).

Wrap the railpack `docker buildx build` invocation with the same
wrap_build_command_with_env_export() helper used by the Dockerfile and
Nixpacks build paths, sourcing the build-time .env file (which writes
COOLIFY_* first and double-quotes normal vars to allow $VAR expansion).
Only buildpack control variables (NIXPACKS_/RAILPACK_), excluded from that
file and never needing interpolation, remain inline. Secret flags are
unchanged and read the interpolated values from the exported environment.

Fixes #10736
2026-06-24 20:11:46 +00:00
Andras Bacsai
00c5a630cf fix(subscription): clamp dynamic quantity to MIN_SERVER_LIMIT on update 2026-06-19 08:27:41 +02:00
Andras Bacsai
78d8afa602 Merge remote-tracking branch 'origin/next' into audit-policies 2026-06-15 12:05:19 +02:00
Andras Bacsai
52739141ee
fix(previews): clean up closed PR previews after update failures (#10180) 2026-06-12 20:08:34 +02:00
Andras Bacsai
61d2d17f52 feat(subscription): add Stripe action controls
Add subscription action handling and tests for cancel, resume, and refund flows while resolving StripeClient through the container.
2026-06-12 15:54:21 +02:00
Andras Bacsai
062ad57740 fix(security): enforce team access on mutable actions
Authorize cloud provider token access, audit sensitive operations, and
standardize public IDs across deployment and resource flows.
2026-06-04 11:03:06 +02:00
Cornelis Terblanche
94abbe1590 Add Vultr cloud provider integration 2026-06-03 21:32:18 +02:00
Andras Bacsai
3eb5463e3e Merge remote-tracking branch 'origin/next' into fix/deploy-key-dedicated-path-race 2026-06-03 14:00:34 +02:00
Andras Bacsai
07f381b88c Merge remote-tracking branch 'origin/next' into jean/port-exposes-improvement 2026-06-03 10:32:57 +02:00
Ömer Faruk ŞAHİN
903f7a7177
Merge branch 'next' into fix/deploy-key-dedicated-path-race 2026-06-03 10:28:34 +03:00
Andras Bacsai
5eec212ade fix(deploy): persist Railpack buildx metadata
Mount the host buildx metadata directory into helper containers so the
Railpack builder can be pruned during Docker cleanup.
2026-06-02 14:30:49 +02:00
Andras Bacsai
40294bc3b3 chore: inspect staged changes 2026-06-02 14:05:26 +02:00
Andras Bacsai
1bad82cf43 Merge remote-tracking branch 'origin/next' into chore/update-deployment-validation 2026-06-02 11:28:42 +02:00
Andras Bacsai
d72c1e2a47 fix(applications): harden image validation 2026-06-02 11:11:33 +02:00
Andras Bacsai
5e4873322e chore: improve deployment input handling 2026-06-01 15:15:38 +02:00
Andras Bacsai
92d6b577fd Merge remote-tracking branch 'origin/next' into 7616-conditional-image-tags 2026-06-01 11:15:55 +02:00
Andras Bacsai
a5313a78cf
fix(deployments): filter generated compose service env vars (#10186) 2026-06-01 10:38:36 +02:00
Andras Bacsai
e37f9401bc Merge remote-tracking branch 'origin/next' into 7552-pr-previews-not-working 2026-06-01 10:35:37 +02:00
Andras Bacsai
d4ff7ea791 Merge remote-tracking branch 'origin/next' into s3-backup-validation 2026-06-01 10:02:12 +02:00
ShadowArcanist
ab4b2045d4
fix(webhook): skip preview deployments for fork PRs when public previews are off 2026-05-29 23:53:51 +05:30