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
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
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
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
772093928f
Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react
2026-07-11 10:06:49 +02: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
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
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
c303c34cfd
feat(digitalocean): add droplet provisioning support
2026-07-08 10:42:58 +02:00
Andras Bacsai
d74206f4a9
Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider
2026-07-08 09:48:18 +02:00
Andras Bacsai
b0f0f7d8d0
feat: harden auth flows and server mobile navigation
...
Add normalized email identity rate limiting for registration and forgot-password requests, and refresh Sentinel status from restart broadcasts.
Rework server sidebars and navbar for mobile menus and active status visibility.
2026-07-08 09:42:52 +02:00
Andras Bacsai
6ed92cb97a
fix(vultr): validate public network and token scope
...
Require IPv6 when public IPv4 is disabled, constrain cloud token
lookup by team and provider during deletion, and encode Vultr instance IDs
in API paths.
2026-07-07 21:39:57 +02:00
Andras Bacsai
31f904ef9f
Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider
2026-07-07 21:23:07 +02:00
Andras Bacsai
6872f63f5f
fix(api): audit moved resources
2026-07-07 21:20:41 +02:00
Andras Bacsai
f244b5e25d
test(api): assert target env authorization on moves
2026-07-07 21:07:50 +02:00
Andras Bacsai
676161a627
fix(api): authorize target environment moves
2026-07-07 20:56:55 +02:00
Andras Bacsai
cf63c7d154
Merge remote-tracking branch 'origin/next' into feat/api-move-resources-between-projects
2026-07-07 18:13:37 +02:00
Andras Bacsai
9f13434273
fix(docker): escape container status commands
...
Build container status commands with escaped container names in the
Docker helper so callers can pass raw identifiers consistently.
2026-07-07 18:00:40 +02:00
Andras Bacsai
a165e03d06
fix(service-apps): harden updates and docker commands
...
Escape service application lifecycle command arguments for deploy, restart, stop, and log status checks.
Validate API update payloads from JSON/form data before applying allowed fields, preserving explicit boolean and null values.
Add coverage for service application API authorization, team isolation, validation, and command escaping.
2026-07-07 15:10:24 +02:00
Andras Bacsai
95a3c453d8
Merge remote-tracking branch 'origin/next' into 9249-pr-investigation
2026-07-07 14:45:48 +02:00
Andras Bacsai
a8000ac2ad
fix(hetzner): require at least one public IP protocol
2026-07-07 14:41:17 +02:00
Andras Bacsai
c9ffa0db96
Merge remote-tracking branch 'origin/next' into feat/hetzner-firewalls-and-internal-networks
2026-07-07 14:37:54 +02:00
Andras Bacsai
b939e09f12
refactor(hetzner): move advanced options into dropdown
2026-07-07 14:36:11 +02:00
Andras Bacsai
d723a52d9c
fix(hetzner): secure token-backed option fetches
...
Authorize stored Hetzner cloud provider tokens before fetching
firewalls or networks, hide provider error details, and keep server
creation intact if backup activation fails.
Collapse advanced Hetzner server options by default while preserving
visibility when advanced values are selected.
2026-07-07 14:24:15 +02:00
Andras Bacsai
aded45acbe
Merge remote-tracking branch 'origin/next' into feat/api/tag-management
2026-07-07 14:02:45 +02:00
Andras Bacsai
11b35ba3c1
feat(api): add tags to resource creation
...
Normalize tag names before attaching them, reject names that are too short
after sanitization, and return 404 when removing tags not attached to the
resource.
Adds a per-team unique tag-name index and migrates duplicate tags onto the
kept record before creating the constraint.
2026-07-07 13:56:33 +02:00
Andras Bacsai
2ad11fdd9a
Merge remote-tracking branch 'origin/next' into feat/hetzner-firewalls-and-internal-networks
2026-07-07 13:47:51 +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
ff976a134f
Merge remote-tracking branch 'origin/next' into api-sensitive-data-scrubber
2026-07-07 12:56:19 +02:00
Andras Bacsai
9a2c432c79
fix(api): expose sensitive fields for privileged tokens
...
Privileged API tokens can read hidden resource fields in environment and
resource responses, including instance-admin team tokens with team_id 0.
Configuration hashes now include hidden environment variable values so
secret edits trigger restart detection.
2026-07-07 12:53:34 +02:00
Andras Bacsai
f617e58401
Merge remote-tracking branch 'origin/next' into feat/api/tag-management
...
# Conflicts:
# app/Http/Controllers/Api/ApplicationsController.php
2026-07-07 12:49:19 +02:00
Andras Bacsai
00a3738ec7
Merge remote-tracking branch 'origin/next' into api-application-preview-deployments
2026-07-07 12:38:37 +02:00
Andras Bacsai
cf12e1d7ef
feat(api): allow preview deployments on app create
...
Expose is_preview_deployments_enabled in the application create API
schema and validation, and skip deployment configuration column casts on
sqlite migrations.
2026-07-07 12:36:35 +02:00
Andras Bacsai
2caa5e67ff
fix(github): derive API URLs from GitHub HTML hosts ( #10610 )
2026-07-07 12:29:15 +02:00
Andras Bacsai
21bd8fa2bc
fix(github): reject malformed app URL origins
2026-07-07 12:24:52 +02:00
Andras Bacsai
b50839d451
Merge remote-tracking branch 'origin/next' into fix/url-validator-underscore-hostnames
2026-07-07 12:24:32 +02:00
Andras Bacsai
bce871d991
fix(domains): reject non-HTTP URL schemes
2026-07-07 12:20:26 +02:00
Andras Bacsai
d01e3a9730
fix(parsers): populate docker_compose_domains for API-created Docker Compose apps ( #9300 )
2026-07-07 12:17:52 +02:00
Andras Bacsai
d657c10df3
fix(api): allow source commit build setting ( #10551 )
2026-07-07 12:12:32 +02:00
Andras Bacsai
6c42ca82cb
fix: only strip git_host from repository_url when git_host is github.com ( #10274 )
2026-07-07 12:11:45 +02:00
Andras Bacsai
2741bc1d0d
test(api): cover public git repository URL storage
2026-07-07 12:10:38 +02:00
Andras Bacsai
ff5cfd4253
fix(api): normalize log endpoint query handling
...
Clamp log line counts, parse timestamp flags consistently, and filter
service subcontainers by Coolify labels. Document log endpoint timestamp
parameters and database/service log routes in OpenAPI.
2026-07-06 23:58:12 +02:00
Andras Bacsai
a2fc08a7b3
Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react
2026-07-06 23:19:55 +02:00
Andras Bacsai
a9501d5476
fix(v5): backfill missing canvas uuid columns
...
Add guarded migration for existing v5 application, cluster, and resource
connection tables missing uuid columns.
Add Vitest, jsdom, and React Testing Library coverage for optimistic
updates, canvas hooks, ingress, resource merging, viewport behavior, and
v5 browser canvas and cluster flows.
2026-07-06 23:17:32 +02:00
Andras Bacsai
fbc6fd5ce5
fix(v5): rotate agent tokens every fifteen minutes
2026-07-06 22:35:17 +02:00
Andras Bacsai
51ed86fe63
feat(v5): add coold restart action
...
Add the V5 server endpoint and UI action to restart coold over SSH with
a fresh host token, plus Flux reconnect handling and coverage for the
new backend, browser, and canvas test suites.
2026-07-06 22:30:50 +02:00
Andras Bacsai
9db103cc77
fix(v5): preserve firewall directions when editing ports
2026-07-06 17:52:04 +02:00
Andras Bacsai
6ae45684f9
feat(v5): add server reconciliation and canvas APIs
...
Split V5 dashboard behavior into domain controllers and policies,
add agent token rotation/revocation, status reconciliation jobs,
ingress firewall syncing, and canvas connection APIs.
Add migrations for V5 status tracking, server capabilities, resource
connection aliases, and revoked agent tokens.
2026-07-06 17:40:37 +02:00
Andras Bacsai
b6a4c7383a
fix(env): preserve empty service variable values ( #10850 )
2026-07-03 20:47:18 +02:00
Andras Bacsai
1adeed2a48
fix(github): preserve custom app API URLs
2026-07-03 12:01:16 +02:00
Andras Bacsai
eddcbe819b
fix(parser): populate compose domains from service env keys
2026-07-03 11:57:02 +02:00
Andras Bacsai
9b060958aa
fix(ray): remove Ray debug hooks from runtime ( #10847 )
2026-07-03 11:40:20 +02:00
Andras Bacsai
e551f9c176
Merge remote-tracking branch 'origin/next' into fix/docker-compose-domains-api-9211
2026-07-03 11:32:41 +02:00
Andras Bacsai
29c122b31a
fix(api): return deployment UUID strings directly
2026-07-03 11:31:49 +02:00
Andras Bacsai
df854feee8
Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react
2026-07-03 10:59:49 +02:00
Andras Bacsai
a7dddccd2e
Merge remote-tracking branch 'origin/next' into ghe-support-helpers
2026-07-03 10:26:58 +02:00
Andras Bacsai
b5ba40b049
Merge remote-tracking branch 'origin/next' into fix/docker-compose-domains-api-9211
2026-07-03 10:26:19 +02:00
Andras Bacsai
8ce054c10c
fix(git): use cloud install path for ghe apps ( #10576 )
2026-07-03 10:24:04 +02:00
Andras Bacsai
b90380f542
Merge remote-tracking branch 'origin/next' into ghe-support-helpers
2026-07-03 10:15:29 +02:00
Andras Bacsai
67693acce7
fix(parser): preserve file volume state ( #10843 )
2026-07-03 10:14:39 +02:00
Andras Bacsai
d73649ca15
Merge remote-tracking branch 'origin/next' into fix-ghe-app-install-url
2026-07-03 10:10:39 +02:00
Andras Bacsai
08e0d02643
Merge remote-tracking branch 'origin/next' into next
2026-07-03 10:09:50 +02:00
Andras Bacsai
4435a46f07
fix(server): hide sentinel status before validation
2026-07-03 10:08:55 +02:00
Andras Bacsai
58f6f9e05b
feat(dev): add Lima testing server fixtures ( #10844 )
2026-07-03 10:07:55 +02:00
Andras Bacsai
7b317c44c4
Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react
2026-07-03 10:03:39 +02:00
Andras Bacsai
c0866d4cb3
fix(auth): preserve invite login with database sessions
2026-07-03 09:38:05 +02:00
Andras Bacsai
fd5b2fec9a
feat(v5): use resource uuids at boundaries
2026-07-02 21:26:41 +02:00
Andras Bacsai
c9416abec6
Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react
2026-07-02 21:25:02 +02:00
Andras Bacsai
eb56287b57
Merge remote-tracking branch 'origin/next' into 10633-invitation-link-redirect
2026-07-02 18:55:25 +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
99f60228ad
fix(api): avoid lazy loading nested server secrets
2026-07-02 17:47:22 +02:00
Andras Bacsai
c6c7ec1c31
fix(security): validate application domains safely
...
Use shared domain validation and normalization for application, service, and
preview domains so unsafe host input is rejected consistently.
Cover command-substitution payloads in application domain tests.
2026-07-02 17:47:04 +02:00
Andras Bacsai
cc4f666ba2
Merge remote-tracking branch 'origin/next' into improve-application-url-handling
2026-07-02 17:40:31 +02:00
Andras Bacsai
954c1e369c
fix(env-vars): avoid service preview variable lookups ( #10837 )
2026-07-02 17:39:16 +02:00
Andras Bacsai
d5395f0500
fix(services): preserve template keys for selection
2026-07-02 17:16:40 +02:00