Reproduction steps
- Start with an existing, operational self-hosted Fluxer instance deployed using the original/legacy Docker Compose installation method, before adopting the new
rexctlmanagement system. - Migrate the existing installation to the new official
rexctldeployment and management system, retaining the original Docker volumes, PostgreSQL database, and existing production data. - Successfully upgrade the migrated instance to Fluxer
2026.1024.213335usingrexctl. - Confirm that the migrated instance operates normally and that all production containers, including PostgreSQL, are healthy.
- Run
rexctl status --dir /opt/fluxerand verify that it correctly reports Fluxer as running. - Inspect the existing PostgreSQL volume using
docker volume inspect fluxer_postgres-data. The volume exists and is actively used but reports"Labels": null, because it originated from the legacy deployment. - Run
rexctl backup --dir /opt/fluxerto create a native backup using the new management system. - Observe that the backup immediately fails, incorrectly stating that Fluxer has never started, despite the instance having operated successfully before and after migration. No backup archive is created.
Expected behaviour
After successfully migrating an existing self-hosted Fluxer installation from the legacy Docker Compose deployment method to the new official
rexctl management system, all supported rexctl functionality, including native backups, should work correctly.
rexctl backup should recognize and back up the existing PostgreSQL database, applicable Docker volumes, uploaded files, and instance configuration, even when the volumes were originally created by the legacy deployment method and lack Docker Compose project labels.
The migration should preserve compatibility with existing production data without requiring administrators to recreate, rename, or manually migrate Docker volumes.
A successful backup should generate a valid, restorable archive that can be used for disaster recovery or rollback during future upgrades.
If a required volume cannot be discovered, rexctl should report the specific missing resource rather than incorrectly stating that Fluxer has never started.Actual behaviour
After successfully migrating my existing self-hosted Fluxer instance from the legacy Docker Compose deployment method to the new official
No backup archive is generated, despite the instance being fully operational and containing existing production data.
Root cause identified through source-code investigation:
rexctl management system, the instance operates normally, but native backups fail.
The migration and subsequent upgrade to Fluxer 2026.1024.213335 completed successfully. All production containers, including PostgreSQL, are healthy, and rexctl status --dir /opt/fluxer correctly confirms that Fluxer is running.
However, executing rexctl backup --dir /opt/fluxer immediately produces the following error:
Fluxer stops for about a minute while rexctl copies your uploads.
✗ Fluxer hasn't started on this machine yet, and there's nothing to back up.
Run rexctl start, then run rexctl backup.
fluxer_rexctl/internal/engine/ps.go:Engine.Volumes()filters Docker volumes using thecom.docker.compose.projectlabel.- The existing Docker volumes inherited from the legacy installation, including
fluxer_postgres-data, have"Labels": null. - Because these volumes lack the expected labels, Docker excludes them from the filtered results.
fluxer_rexctl/internal/backup/create.go:findVolume()supports matching expected volume names, but cannot discover volumes excluded by the earlier filtering operation.- Consequently,
backup.Create()returnsErrNeverStarted, resulting in the misleading error message.
rexctl, where production volumes created by the previous deployment system are not recognized by the new native backup functionality.
No production data has been lost. The instance remains operational, and independent backups continue to function. However, native rexctl backups are currently unusable.Build information
Canary Desktop 2026.1024.213614, Web 2026.1024.213614, Linux 7.2.11-200.fc44.x86_64 (x64), Electron 44.9.1, Chrome 152.0.7977.167, Node 24.22.0, Locale en-US
Platform
Self-hosting
Evidence
Environment
- Fluxer version:
2026.1024.213335 - rexctl version:
2026.1024.213335 - OS: Ubuntu Linux (x86_64)
- Docker Engine:
29.9.0 - Deployment: Existing self-hosted Fluxer instance migrated from the original Docker Compose installation method to the new official
rexctlmanagement system.
1. Instance status
Command:rexctl status --dir /opt/fluxer✓ Fluxer is running.
Version 2026.1024.213335
Folder /opt/fluxer
2. Existing Docker volume information
Command:docker volume inspect fluxer_postgres-data \
--format '{{.Name}} | Labels: {{json .Labels}}' fluxer_postgres-data | Labels: null
3. Native backup failure
Command:rexctl backup --dir /opt/fluxerFluxer stops for about a minute while rexctl copies your uploads.
✗ Fluxer hasn't started on this machine yet, and there's nothing to back up.
Run rexctl start, then run rexctl backup.
4. Source-code observations
Investigation identified the following behavior:fluxer_rexctl/internal/engine/ps.go—Engine.Volumes()applies a Docker Compose project-label filter before listing volumes.fluxer_rexctl/internal/backup/create.go—findVolume()supports matching existing volume names but only receives volumes returned by the filtered query.fluxer_rexctl/internal/backup/create.go—backup.Create()returnsErrNeverStartedwhen it cannot identify the expected PostgreSQL volume.
c0ed67c on October 25, 2026.
Additional information
The original self-hosted instance was successfully migrated torexctl management without losing production data. The application remains operational, and independent encrypted backups continue to succeed.
The issue appears isolated to native backup functionality following migration.