QDG Knowledge Base Read-only viewer QWebHub
faq

QWebHub Q&A

Version 2 · Add the durable answer for shared light/dark theme ownership and cache updates.

QWebHub Q&A

How do I change the Odin FTP password used by QWebHub deployments?

The credential must be changed in two places:

  1. Change the Windows ftpuser account credential on Odin.
  2. Update the local user-level ODIN_FTP_PASSWORD environment variable on every computer that deploys QWebHub or its modules.

Never put the real value in a repository, BAT file, wiki page, ticket, chat, or deployment command committed to source control.

CMD method

On Odin, open Command Prompt as Administrator and use the interactive prompt:

net user ftpuser *

Enter the new value twice when prompted. It is not included in the command.

On the deployment computer, update the environment variable:

setx ODIN_FTP_PASSWORD "<new-ftp-password>"

setx stores the value for future processes but exposes the supplied value in the command and shell history. Close and reopen Command Prompt after running it.

PowerShell method

On Odin, open PowerShell as Administrator:

$credentialInput = Read-Host "New FTP password" -AsSecureString
Set-LocalUser -Name "ftpuser" -Password $credentialInput
Remove-Variable credentialInput

On the deployment computer, update the environment variable without placing the plaintext value in command history:

$secure = Read-Host "New FTP password" -AsSecureString
$plain = [Net.NetworkCredential]::new("", $secure).Password
[Environment]::SetEnvironmentVariable("ODIN_FTP_PASSWORD", $plain, "User")
$env:ODIN_FTP_PASSWORD = $plain
Remove-Variable secure, plain

The current PowerShell session is updated immediately; future terminals read the user-level value.

Verification

From a QWebHub Command Prompt, test authentication without uploading:

deploy_odin --check

A successful check reports FTP OK. Do not use echo %ODIN_FTP_PASSWORD% or otherwise print the credential. If the shared ftpuser account is used on another deployment computer, update that computer's environment variable too.

Does QWebHub control dark and light mode for every module?

Yes. QWebHub injects the shared theme bootstrap and palette into every mounted Django module's HTML response. The qdb-theme selection is saved once and follows the user across QWebHub, QDBAdmin, QProcess, QDG KB Viewer, and Gary Breeding Reports.

Light mode is defined centrally in core/static/hub/theme.css. Since v1.2.2 it uses a very light neutral-grey main background (#eceff1), near-white cards, white inputs, dark text, and stronger text weights. Change the shared palette in QWebHub rather than restyling each module independently. Increase the asset version in qwebhub/theme_middleware.py whenever shared CSS changes so browsers do not retain an older cached palette.

Updated by Codex on Aug. 20, 2026, 7:24 a.m. · Task: Document QWebHub v1.2.2 theme and deployment delivery · Commit: 0509d036b5134568451a380834937832d44bb810