mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-07 13:44:24 +00:00
- Replace plain textarea with CodeMirror editor (YAML syntax highlighting, line numbers, auto-indent) for Clash subscription template - Fix confAlerts crash when subClashURI/subURI/subJsonURI is null/undefined (prevented save button from enabling) - Add yaml.js CodeMirror mode asset - Include docs and .gitignore cleanup
60 lines
2.6 KiB
Markdown
60 lines
2.6 KiB
Markdown
# MariaDB Remote IP Access Implementation Plan
|
|
|
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
|
|
**Goal:** Add local MariaDB port customization plus x-ui.sh menu actions to manage remote access by explicit allowed IPs.
|
|
|
|
**Architecture:** Keep the existing MariaDB install/switch flow, but add reusable shell helpers to update MariaDB server network settings and per-IP grants. Store no new backend state; read active DB settings from `/etc/x-ui/x-ui.json` and query MariaDB for remote hosts when needed.
|
|
|
|
**Tech Stack:** Bash, MariaDB CLI, existing `install.sh`/`x-ui.sh`, shell prompt assertions in `tests/mariadb_install_switch_test.sh`
|
|
|
|
---
|
|
|
|
### Task 1: Extend prompt coverage first
|
|
|
|
**Files:**
|
|
- Modify: `tests/mariadb_install_switch_test.sh`
|
|
|
|
- [ ] Add assertions for the new local MariaDB port prompt and remote access menu labels.
|
|
- [ ] Run `bash tests/mariadb_install_switch_test.sh` and confirm it fails before implementation.
|
|
|
|
### Task 2: Add MariaDB network config helpers
|
|
|
|
**Files:**
|
|
- Modify: `install.sh`
|
|
- Modify: `x-ui.sh`
|
|
|
|
- [ ] Add shared shell helpers to detect a MariaDB server config file, update `port`, update `bind-address`, and restart MariaDB.
|
|
- [ ] Keep defaults local-only (`127.0.0.1`) unless remote access is explicitly enabled.
|
|
|
|
### Task 3: Support local MariaDB custom port
|
|
|
|
**Files:**
|
|
- Modify: `install.sh`
|
|
- Modify: `x-ui.sh`
|
|
|
|
- [ ] Prompt for local MariaDB port in local install / switch flows.
|
|
- [ ] Validate `1-65535`.
|
|
- [ ] Apply the chosen server port before business DB/user creation.
|
|
- [ ] Persist the selected port through the existing `x-ui setting -dbPort`.
|
|
|
|
### Task 4: Add remote IP allowlist management
|
|
|
|
**Files:**
|
|
- Modify: `x-ui.sh`
|
|
|
|
- [ ] Add menu actions to view status, enable remote access, disable remote access, list allowed IPs, add allowed IP, and remove allowed IP.
|
|
- [ ] Query MariaDB for existing non-local hosts of the current DB user.
|
|
- [ ] Add and remove per-IP grants for the current DB user against the current DB name.
|
|
- [ ] Enable remote access by switching bind address to `0.0.0.0`; disable by restoring `127.0.0.1` and removing remote grants.
|
|
|
|
### Task 5: Verify and record
|
|
|
|
**Files:**
|
|
- Modify: `tests/mariadb_install_switch_test.sh`
|
|
- Create: `docs/Tasktracking/2026-04-22-add-mariadb-remote-ip-access.md`
|
|
|
|
- [ ] Run `bash tests/mariadb_install_switch_test.sh`.
|
|
- [ ] Run `bash -n install.sh`.
|
|
- [ ] Run `bash -n x-ui.sh`.
|
|
- [ ] Write the Tasktracking record with exact verification and residual runtime risks.
|