mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-31 18:24:10 +00:00
Two PostgreSQL gaps on the panel:
1. x-ui setting and other CLI subcommands read XUI_DB_TYPE/XUI_DB_DSN from
the process environment, which systemd injects via EnvironmentFile but a
plain shell invocation does not. On a PostgreSQL install the CLI silently
fell back to SQLite, so changes made from the management menu never
reached the panel's database. Load the systemd EnvironmentFile
(/etc/default/x-ui and distro equivalents) at startup; godotenv.Load does
not override existing vars, so it stays a no-op for the managed service.
2. DB backup/restore (panel endpoints and the Telegram bot) only handled the
SQLite file, so on PostgreSQL Back Up returned a stale/absent x-ui.db and
Restore silently did nothing. Add pg_dump/pg_restore based backup/restore:
- GetDb/ImportDB run pg_dump (custom format) / pg_restore, passing
credentials via the PG* environment instead of argv.
- getDb downloads x-ui.dump on Postgres, x-ui.db on SQLite.
- Telegram backup sends the matching file via GetDb.
- BackupModal shows a Postgres note and accepts .dump; the dist page
injects window.X_UI_DB_TYPE; new strings translated for all locales.
- install.sh installs postgresql-client for the external-DSN path and
points the user to in-panel Backup & Restore.
Closes #4658
38 lines
No EOL
1,013 B
JSON
38 lines
No EOL
1,013 B
JSON
{
|
|
"$schema": "vscode://schemas/launch",
|
|
"version": "0.2.0",
|
|
"configurations": [
|
|
{
|
|
"name": "Run 3x-ui (Debug)",
|
|
"type": "go",
|
|
"request": "launch",
|
|
"mode": "auto",
|
|
"program": "${workspaceFolder}",
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"XUI_DEBUG": "true",
|
|
"XUI_DB_FOLDER": "x-ui",
|
|
"XUI_LOG_FOLDER": "x-ui",
|
|
"XUI_BIN_FOLDER": "x-ui"
|
|
},
|
|
"console": "integratedTerminal"
|
|
},
|
|
{
|
|
"name": "Run 3x-ui (Postgres)",
|
|
"type": "go",
|
|
"request": "launch",
|
|
"mode": "auto",
|
|
"program": "${workspaceFolder}",
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"XUI_DEBUG": "true",
|
|
"XUI_LOG_FOLDER": "x-ui",
|
|
"XUI_BIN_FOLDER": "x-ui",
|
|
"XUI_DB_TYPE": "postgres",
|
|
"XUI_DB_DSN": "postgres://xui:xuipass@127.0.0.1:5432/xui?sslmode=disable",
|
|
"PATH": "C:\\Program Files\\PostgreSQL\\18\\bin;${env:PATH}"
|
|
},
|
|
"console": "integratedTerminal"
|
|
},
|
|
]
|
|
} |