Docker Swarm settings are not persisted from the UI
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 37.4k
- Forks
- 3k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 73
Description
To Reproduce
-
Create or open an Application deployed as a Docker Swarm service on a remote server.
-
Go to the application's Swarm Settings section.
-
Change one or more deployment settings, for example:
- Update order:
start-first - Failure action:
rollback - Update monitor:
120s - Stop grace period:
60s
- Update order:
-
Save the application/settings.
-
Navigate away and return to the application, or reload the page.
-
Inspect the Swarm service on the server:
docker service inspect <service-name> --format \ 'update={{.Spec.UpdateConfig.Order}} failure={{.Spec.UpdateConfig.FailureAction}} monitor={{.Spec.UpdateConfig.Monitor}} rollback={{.Spec.RollbackConfig.Order}} failure={{.Spec.RollbackConfig.FailureAction}} monitor={{.Spec.RollbackConfig.Monitor}} stopGrace={{.Spec.TaskTemplate.ContainerSpec.StopGracePeriod}}'
Current vs. Expected behavior
Expected behavior
Changes made in the Swarm Settings UI should be persisted by Dokploy, restored after a page reload, and applied to the Docker Swarm service specification.
For example, selecting start-first, rollback, a 120s monitor period, and a 60s stop grace period should be visible both in the UI after reloading and in docker service inspect.
Current behavior
The UI appears to accept the selected values immediately, but they are not reliably persisted. After navigating away or reloading the application, the Swarm Settings do not reflect the saved changes.
The corresponding Docker Swarm service specification also does not consistently contain the values configured through the UI. I had to apply the configuration manually with docker service update.
This is particularly problematic for production services because deployment order, rollback behavior, monitoring, and graceful shutdown settings are required to implement safe rolling deployments and zero-downtime updates.
Provide environment information
- Dokploy version: `v0.30.2`
- Deployment type: Docker Swarm
- Deployment target: Remote server
- Applications affected: Django API, WebSocket service, Celery worker, and Celery Beat
- The issue is reproducible across multiple applications/services in the same environment.
Which area(s) are affected? (Select all that apply)
Docker
Are you deploying the applications where Dokploy is installed or on a remote server?
Remote server
Additional context
No response
Will you send a PR to fix it?
No
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Swarm Settings UI save and reload flow, then follow how those values are applied to the Docker Swarm service specification. Reproduce the issue with the listed settings and verify completion by reloading the UI and checking the resulting service with the provided docker service inspect command.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, typescript
- Domain
- backend, devops, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100