Commit graph

16238 commits

Author SHA1 Message Date
Andras Bacsai
662633399f Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-18 16:07:26 +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
913d033c75
fix(resources): clarify build server hosting restrictions (#10961) 2026-07-16 21:35:23 +02:00
Andras Bacsai
fab012b5c8 fix(backups): allow volume backup delete without password when 2FA off
Skip empty-password rejection so delete works when two-step confirmation is disabled; cover with a feature test.
2026-07-16 14:43:02 +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
8cfa41a7d9 fix(backups): sync Backup Now with live database status
Subscribe BackupEdit to database status broadcasts and refresh the
database status so the Backup Now control updates without a full reload.
2026-07-16 14:01:34 +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
7d699818e8 fix: harden Vultr create, Gmail identity, and provider retries
Wrap Vultr server creation in DB transactions and delete the remote
instance when local persistence fails (API and Livewire). Scope
plus/dot email normalization to gmail.com/googlemail.com only.
Use throw:false on DigitalOcean/Vultr HTTP retries, and normalize
service log line counts via normalizeLogLines.
2026-07-16 13:42:53 +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
6ae1b4eba2 fix(backups): show setup prompt when no S3 storage is available 2026-07-15 20:36:23 +02:00
Andras Bacsai
91d97bfad2 fix(status): prevent health badge row height expansion 2026-07-15 20:07:51 +02:00
Andras Bacsai
e0f85de3fe fix(backups): move S3 retention settings to retention page 2026-07-15 20:00:10 +02:00
Andras Bacsai
aef70eb053 refactor(backups): consolidate volume backup retention columns 2026-07-15 19:55:29 +02:00
Andras Bacsai
9d04bb7e59 fix(backups): rename storage backup page heading 2026-07-15 18:17:54 +02:00
Andras Bacsai
41eee14bd3 fix(backups): redirect to executions after manual backup queueing
Queue manual database and volume backups before redirecting to their execution views, including schedules with unusable S3 storage.
2026-07-15 17:39:48 +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
995ec5fbb6 Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-15 16:33:51 +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
908b5cc09d feat(api): add service database management endpoints
Add service database CRUD, logs, and lifecycle actions, and document service application operations with OpenAPI tests.
2026-07-15 12:29:58 +02:00
Andras Bacsai
64667574f6 fix(api): correct service and application OpenAPI schemas 2026-07-15 12:29:20 +02:00
Andras Bacsai
05dc2c65f6
chore(deps): bump web-auth/webauthn-lib from 5.3.3 to 5.3.5 (#10901) 2026-07-14 14:18:00 +02:00
Andras Bacsai
198e9f8fff fix(environment-variable): align settings and actions responsively 2026-07-14 14:02:34 +02:00
Andras Bacsai
59605fe7d3 fix(environment-variable): keep delete button compact 2026-07-14 13:58:15 +02:00
Andras Bacsai
34e6a6dd5d feat(api): add application settings to application endpoints 2026-07-14 13:44:45 +02:00
Andras Bacsai
99e255a572 fix(deployment): detect application configuration changes consistently
Expand configuration snapshots, handle defaults from older snapshots, and refresh configuration state after Livewire setting changes.
2026-07-14 12:54:31 +02:00
Andras Bacsai
5381287606
Update configuration for compatibility with EspoCRM v10 (#10848) 2026-07-13 15:06:35 +02:00
Andras Bacsai
683a2ce2e9
feat(services): bump alexandrie to version 8.10.0 (#10864) 2026-07-13 15:06:16 +02:00
Andras Bacsai
47a292486c chore(deps): bump NGINX package to 1.31.2-r1 2026-07-13 10:54:31 +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
dependabot[bot]
bd82b4c1cd
chore(deps): bump web-auth/webauthn-lib from 5.3.3 to 5.3.5
Bumps [web-auth/webauthn-lib](https://github.com/web-auth/webauthn-lib) from 5.3.3 to 5.3.5.
- [Commits](https://github.com/web-auth/webauthn-lib/compare/5.3.3...5.3.5)

---
updated-dependencies:
- dependency-name: web-auth/webauthn-lib
  dependency-version: 5.3.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 18:35:42 +00:00
Andras Bacsai
d3fbb32c52 feat(cdn): sync release metadata through BunnyCDN
Replace the legacy sync:bunny flags with an interactive CDN sync flow for service templates and release metadata. Serve official service templates from the Coollabs CDN, update version metadata, and remove obsolete helper scripts.
2026-07-10 14:29:11 +02:00
Andras Bacsai
e4f925ebbf fix(meta): serve releases metadata from Coollabs CDN 2026-07-10 10:49:59 +02:00
Andras Bacsai
dd10a90d8c fix(meta): update social preview image URL 2026-07-10 10:48:06 +02:00
Andras Bacsai
bcadcc9200 docs(readme): serve sponsor images from Coollabs CDN 2026-07-10 10:47:38 +02:00
Andras Bacsai
2a0183bfad Revert "feat(notifications): deduplicate repeated email alerts"
This reverts commit 8c1405e168.
2026-07-09 13:19:48 +02:00
Andras Bacsai
8c1405e168 feat(notifications): deduplicate repeated email alerts
Add notification-level deduplication keys and TTLs for deployment, backup,
server, container, scheduled task, SSL, token, and transactional emails.
Apply deduplication in email channels before sending rendered messages.
2026-07-08 15:23:14 +02:00
Andras Bacsai
ee620a5413
fix(github): honor skip flags for PR preview syncs (#10873) 2026-07-08 15:06:31 +02:00
Andras Bacsai
e325f93662 Merge remote-tracking branch 'origin/next' into 10870-pr-previews-ignore 2026-07-08 15:06:16 +02:00
Andras Bacsai
f24439f9c8 test(github): cover PR previews without skip ci 2026-07-08 14:44:40 +02:00
Andras Bacsai
3f960d94c3 fix(github): skip opened PR previews with skip ci 2026-07-08 14:41:37 +02:00
Andras Bacsai
0217e2b0c0 feat(server): improve private key and cloud link flows
Add server private key generation from the dropdown, prevent deleting
private keys that are still in use, and close cloud provider link modals
after successful linking.
2026-07-08 13:35:09 +02:00
Andras Bacsai
f4f4274cee fix(github): skip PR previews from head commit flags 2026-07-08 13:31:23 +02:00
Andras Bacsai
9b8aeb4758 feat(server): add private key creation to IP server form 2026-07-08 13:05:29 +02:00
Andras Bacsai
e200d881f5 feat(security): add editable cloud credential pages
Add dedicated show/edit pages for cloud provider tokens and cloud-init
scripts, including descriptions and UUID routes.

Generate private keys directly from the index and surface cloud provider
API loading errors in server creation flows.
2026-07-08 12:58:27 +02:00
Andras Bacsai
7236cb8228 feat(server): add dedicated server creation flow 2026-07-08 12:20:56 +02:00
Andras Bacsai
18f0f7f6be
feat(digitalocean): add droplet provisioning support (#10871) 2026-07-08 10:50:25 +02:00
Andras Bacsai
c303c34cfd feat(digitalocean): add droplet provisioning support 2026-07-08 10:42:58 +02:00
Andras Bacsai
5936874ffd
feat(vultr): add cloud provider integration (#10533) 2026-07-08 10:24:10 +02:00