Fluxmail
Upgrade guides

Upgrade to 0.6.0

Migrate plaintext configuration to typed deployment configuration and encrypted instance settings.

Fluxmail 0.6.0 separates restart-bound deployment configuration from OAuth and license settings that can change while the server runs.

Before upgrading

Back up the Fluxmail data directory, including the SQLite database and encryption.key. Fluxmail also creates a database backup before advancing the store to format 2.

Older Fluxmail releases cannot open format 2. Stop every process that shares the data directory before upgrading. Do not start the 0.6.0 server until you import the old configuration.

Migrate config.env

Fluxmail 0.6.0 does not read config.env. Use the new binary to import the file manually. If the file sets FLUXMAIL_DATA_DIR, Fluxmail uses that directory as the migration target. Otherwise, run the command with the same FLUXMAIL_DATA_DIR used by the old installation:

fluxmail config migrate --from /absolute/path/to/data-dir/config.env --dry-run
fluxmail config migrate --from /absolute/path/to/data-dir/config.env
fluxmail config show
fluxmail oauth status

The import moves deployment settings to config.toml and stores custom OAuth applications and the license key as encrypted SQLite records. It does not delete config.env. Remove that file after you verify the imported settings.

If the target database contains encrypted values, the migration requires its existing encryption key. Provide the key through the migration file, FLUXMAIL_ENCRYPTION_KEY, or FLUXMAIL_ENCRYPTION_KEY_FILE. Fluxmail does not replace a missing or mismatched key.

Command changes

The generic fluxmail config set, unset, and list commands have been replaced:

fluxmail config init
fluxmail config show
fluxmail oauth status
fluxmail oauth configure google --client-id <id>
fluxmail oauth configure outlook --client-id <id> --public-client
fluxmail oauth reset <google|outlook>

fluxmail license activate now prompts for the key. Automation can use --key-file <path|->. The positional key remains available for this release with a deprecation warning.

Environment compatibility

Existing environment variable names still work. Secret variables also support _FILE forms. A provider controlled by environment overrides cannot be changed through the CLI or REST API until the complete override group is removed and Fluxmail restarts.

Fluxmail no longer reads .env.local or .env from the working directory. Import a file explicitly if it contains settings that should move into Fluxmail:

fluxmail config migrate --from /absolute/path/to/old.env --dry-run
fluxmail config migrate --from /absolute/path/to/old.env

The command preserves the source file. Remove the imported Fluxmail settings from it after checking the result.

Docker Compose and process-manager env files still work because they set the process environment before Fluxmail starts.

Package API changes

The public config.env read, write, mask, and dotenv mutation helpers have been removed. Packages should use the typed deployment resolver and ConfigurationService. createContext() keeps the same call signature and now exposes the service as context.configuration; context.config remains the current effective snapshot.

Last updated