From 9fae8d0a5b9c905fe757b35e4416d48998211158 Mon Sep 17 00:00:00 2001 From: Pascal Bouquet Date: Sat, 19 Sep 2026 15:41:11 +0200 Subject: [PATCH] docs: update README with detailed configuration and usage instructions --- README.md | 50 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index a621383..43690cc 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ # INWX DNS TUI Client -Python ane **Textual** no upyog kari banavavama aavelo ek aadhunik, clickable Terminal User Interface (TUI) client, jena thi tame INWX na DNS records ane domains ne sahelta thi manage kari shako chho. +A modern, interactive Terminal User Interface (TUI) client built with Python and **Textual** to manage INWX domains and DNS records directly from your terminal. ## Features -- **Clickable GUI in Terminal**: Mouse ane keyboard shortcuts banne dwara chalavi shakay chhe. -- **Domain Overview**: Login thaya pachhi account ma rahela badha domains automatic left sidebar ma load thai jaay chhe. -- **DNS Records Management**: - - DNS records jova (A, AAAA, CNAME, MX, TXT, SRV, CAA, NS, PTR, vagere). - - Double-click athva `Enter` dabavi ne record edit karvo. - - Nava records dropdown menu ane custom input sathe add karva. - - Records delete ane live refresh karva. -- **2FA / TOTP Support**: - - Jo account ma 2FA chalu hoy to j code mangshe. - - `.env` ma TOTP secret mukine automatic unlock pan kari shakay chhe. -- **Non-blocking Workers**: Background async workers lidhe API call vakhte UI freeze thatu nathi. +- **Interactive Terminal UI**: Full mouse support and intuitive keyboard navigation. +- **Automatic Domain Discovery**: Automatically retrieves and lists all configured domains in a dedicated sidebar upon login. +- **Complete DNS Record Management**: + - View DNS records (A, AAAA, CNAME, MX, TXT, SRV, CAA, NS, PTR, etc.). + - Quick inline editing via mouse double-click or `Enter`. + - Add new records using a dropdown preset or custom type input. + - Delete records with confirmation. +- **Conditional 2FA / TOTP Support**: + - Only prompts for a 2FA code if two-factor authentication is active on the account. + - Supports automatic 2FA unlocking via a TOTP secret stored in `.env`. +- **Responsive Non-blocking UI**: API calls run on background worker threads to keep the interface smooth and responsive. --- @@ -22,13 +22,14 @@ Python ane **Textual** no upyog kari banavavama aavelo ek aadhunik, clickable Te ```text inwx_tui/ -├── .env # INWX API credentials ane config -├── inwx_api.py # INWX JSON-RPC API logic ane session management -├── tui_modals.py # Modal popups (Login, 2FA prompt, Record Edit/Add) -├── tui_app.py # Textual TUI main interface ane event handling -├── main.py # Application start karvani entrypoint script +├── .env # INWX API credentials and configuration (ignored by git) +├── inwx_api.py # INWX JSON-RPC API logic, session handling, and 2FA +├── tui_modals.py # Modal dialog screens (Login, 2FA prompt, Record Edit/Add) +├── tui_app.py # Main Textual TUI layout, styles, and event handling +├── main.py # Application entrypoint └── README.md # Project documentation ``` + ## Requirements Python 3.10+ @@ -38,6 +39,21 @@ Linux / macOS / WSL (Windows Terminal) ```bash pip install textual python-dotenv requests pyotp ``` + +## Configuration + +You can provide your credentials in a .env file in the project root to bypass manual login: + +```bash +# INWX Account Credentials +INWX_USER=your_username +INWX_PASS=your_password + +# Optional: TOTP Secret Key (Base32) for automatic 2FA unlock +# If left empty, an interactive 6-digit TAN modal will appear when required. +INWX_2FA_SECRET= +``` + ## Usage ```bash