Skip to content

Generated server compose drops nginx-proxy-manager volumes #176

@vsilent

Description

@vsilent

Description

Server-side generated docker-compose.yml can drop nginx-proxy-manager volumes and other service settings even when they are declared in the project compose definition.

In Syncopia, the checked-in docker/prod/compose.yml includes:

  • npm-data:/data
  • npm-letsencrypt:/etc/letsencrypt
  • published ports 80, 81, and 443

After regeneration on the target server, nginx-proxy-manager restarted without its volumes mounted, which caused previously configured proxied hosts/settings to disappear and had to be restored manually.

Suspected Cause

The server deploy path appears to rebuild project services from the reduced stacker.yml service model and/or auto-generated proxy service rather than preserving the richer compose-file definition for production deploys.

Steps to Reproduce

  1. Define nginx-proxy-manager volumes and related settings in the production compose configuration.
  2. Deploy to a remote server through Stacker.
  3. Inspect the generated docker-compose.yml on the target server.
  4. Observe that nginx-proxy-manager volumes and/or extra service settings are missing.
  5. Restart/redeploy and observe loss of persisted NPM state.

Expected Behavior

The generated compose used on the target server should preserve declared service volumes and additional config, especially for stateful services like nginx-proxy-manager.

Actual Behavior

Generated compose can omit those settings, leading to container recreation without mounted volumes and loss of existing NPM state.

Acceptance Criteria

  • Add a failing regression test that proves generated remote compose preserves declared service volumes and additional service settings.
  • Add a BDD scenario for deploying a stack with stateful nginx-proxy-manager volumes and retaining prior configuration across redeploys.
  • Ensure remote/server deploy generation honors the configured production compose or fully carries equivalent service metadata through the Stacker payload.
  • Verify nginx-proxy-manager redeploys keep /data and /etc/letsencrypt mounted when defined by the project.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions