@quangnv13/nonstop 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +53 -55
  2. package/README.vi.md +54 -56
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -14,6 +14,23 @@
14
14
 
15
15
  ---
16
16
 
17
+ ## 📖 Table of Contents
18
+
19
+ * [🌟 Key Features](#-key-features)
20
+ * [⚙️ Architecture & Data Flow](#️-architecture--data-flow)
21
+ * [🚀 Quick Start](#-quick-start)
22
+ * [1. Installation](#1-installation)
23
+ * [2. Creating a Telegram Bot](#2-creating-a-telegram-bot)
24
+ * [3. Run and Setup](#3-run-and-setup)
25
+ * [🕹️ Usage Guide](#️-usage-guide)
26
+ * [1. Local TUI Control Center](#1-local-tui-control-center)
27
+ * [2. Telegram Bot Interaction](#2-telegram-bot-interaction)
28
+ * [🎛️ Configuration](#️-configuration)
29
+ * [🛡️ Security Best Practices](#️-security-best-practices)
30
+ * [📄 License](#-license)
31
+
32
+ ---
33
+
17
34
  ## 🌟 Key Features
18
35
 
19
36
  * **💻 Immersive TUI Control Center** — Manage runtime processes, inspect logs, register workspaces, and edit configuration directly from a command-line interface.
@@ -45,10 +62,43 @@ graph TD
45
62
 
46
63
  ---
47
64
 
65
+ ## 🚀 Quick Start
66
+
67
+ ### 1. Installation
68
+ Install the package globally using npm:
69
+ ```bash
70
+ npm install -g @quangnv13/nonstop
71
+ ```
72
+
73
+ ### 2. Creating a Telegram Bot
74
+ To run `nonstop`, you must obtain a Telegram Bot token. Here is how to create one using `@BotFather`:
75
+
76
+ 1. Open Telegram and search for **@BotFather** (ensure it has the verified blue checkmark).
77
+ 2. Start a chat and click **Start** (or send the `/start` command).
78
+ 3. Send the `/newbot` command to initiate the bot creation process.
79
+ 4. Choose a friendly name for your bot (e.g., `My Nonstop Controller`).
80
+ 5. Choose a unique username for your bot, which must end in `bot` (e.g., `my_nonstop_bot`).
81
+ 6. Once created, `@BotFather` will reply with your **HTTP API Access Token** (e.g., `123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ`). Copy this token. Keep it private!
82
+
83
+ ### 3. Run and Setup
84
+ Navigate to the directory where you want to store your configuration and run:
85
+ ```bash
86
+ nonstop
87
+ ```
88
+ > [!NOTE]
89
+ > On the first launch, if your `.env` configuration file is missing, `nonstop` will automatically trigger a **Setup Wizard** in your terminal to configure:
90
+ > * **Telegram Bot Token**: The token you copied from BotFather.
91
+ > * **Allowed Admin Username**: Your Telegram username (starting with `@`) to prevent unauthorized access.
92
+ > * **Client Name**: A name to identify this server.
93
+ > * **Language**: Choose between English (`en`) and Vietnamese (`vi`).
94
+ > * **Startup Mode**: Choose whether it runs on system boot.
95
+
96
+ ---
97
+
48
98
  ## 🕹️ Usage Guide
49
99
 
50
100
  ### 1. Local TUI Control Center
51
- Run `npm start` (or `npm run dev`) to open the terminal management dashboard. From here, you can:
101
+ Simply run `nonstop` in your terminal to open the management dashboard. From here, you can:
52
102
  * **Start / Stop** the background bot runtime.
53
103
  * **Configure Workspaces**: Manage directories where terminal sessions can be started.
54
104
  * **Autostart Settings**: Set up the application to run automatically on system boot.
@@ -75,7 +125,7 @@ Once the bot runtime is active, you can interact with it via the following Teleg
75
125
  * **▲ Up / ▼ Down** — Navigate command history.
76
126
 
77
127
  #### **📂 Directory Workspaces**
78
- * Select **📁 Workspaces** from the main menu to view the folders configured in `data/workspaces.json`.
128
+ * Select **📁 Workspaces** from the main menu to view configured folders.
79
129
  * Selecting a workspace sets it as the working directory for your next PTY session.
80
130
 
81
131
  #### **⚙️ Dynamic Configuration**
@@ -85,61 +135,9 @@ Once the bot runtime is active, you can interact with it via the following Teleg
85
135
 
86
136
  ---
87
137
 
88
- ## 🛠️ Quick Start
89
-
90
- ### 1. Prerequisites
91
- Ensure you have [Node.js](https://nodejs.org/) (v18+) and `npm` installed.
92
-
93
- ### 2. Installation
94
- Clone the repository and install the dependencies:
95
- ```bash
96
- git clone https://github.com/quangnv13/nonstop.git
97
- cd nonstop
98
- npm install
99
- ```
100
-
101
- ### 3. Build the Application
102
- Compile TypeScript to JavaScript production files:
103
- ```bash
104
- npm run build
105
- ```
106
-
107
- ### 4. Run `nonstop`
108
- Launch the interactive terminal-based Control Center:
109
- ```bash
110
- npm start
111
- ```
112
- > [!NOTE]
113
- > On the first launch, if your `.env` configuration file is missing, `nonstop` will automatically trigger a **Setup Wizard** to configure your Telegram bot token, allowed admin username, client name, language, and startup settings.
114
-
115
- For development mode (with hot-reload):
116
- ```bash
117
- npm run dev
118
- ```
119
-
120
- ---
121
-
122
- ## 📁 Repository Layout
123
-
124
- ```text
125
- nonstop/
126
- ├── data/ # Persistent storage (logs, workspaces.json, last-chat-id)
127
- ├── src/ # TypeScript source files
128
- │ ├── bot.ts # Telegram bot handlers & callback commands
129
- │ ├── config.ts # Config parsers, disk storage, and env bindings
130
- │ ├── runtime.ts # Shell session controls & PTY managers
131
- │ ├── ui.ts # TUI Control Center console interface
132
- │ └── index.ts # App bootstrapper
133
- ├── dist/ # Compiled JavaScript files
134
- ├── .env # Runtime environment file (git-ignored)
135
- └── package.json # Node manifest & scripts
136
- ```
137
-
138
- ---
139
-
140
138
  ## 🎛️ Configuration
141
139
 
142
- Configuration is managed via `.env` at the root of the project. You can copy the template from [`.env.example`](.env.example):
140
+ Configuration is managed via `.env` in the folder where you run the CLI. A template is generated automatically as `.env.example`:
143
141
 
144
142
  ```ini
145
143
  TELEGRAM_BOT_TOKEN=your_telegram_bot_token
package/README.vi.md CHANGED
@@ -14,6 +14,23 @@
14
14
 
15
15
  ---
16
16
 
17
+ ## 📖 Mục Lục
18
+
19
+ * [🌟 Tính Năng Nổi Bật](#-tính-năng-nổi-bật)
20
+ * [⚙️ Kiến Trúc & Luồng Dữ Liệu](#️-kiến-trúc--luồng-dữ-liệu)
21
+ * [🚀 Hướng Dẫn Nhanh](#-hướng-dẫn-nhanh)
22
+ * [1. Cài Đặt](#1-cài-đặt)
23
+ * [2. Tạo Bot Telegram](#2-tạo-bot-telegram)
24
+ * [3. Khởi Chạy và Thiết Lập](#3-khởi-chạy-và-thiết-lập)
25
+ * [🕹️ Hướng Dẫn Sử Dụng](#️-hướng-dẫn-sử-dụng)
26
+ * [1. Trung Tâm Điều Khiển TUI Cục Bộ](#1-trung-tâm-điều-khển-tui-cục-bộ)
27
+ * [2. Tương Tác Qua Telegram Bot](#2-tương-tác-qua-telegram-bot)
28
+ * [🎛️ Cấu Hình Ban Đầu](#️-cấu-hình-ban-đầu)
29
+ * [🛡️ Khuyến Nghị Bảo Mật](#️-khuyến-nghị-bảo-mật)
30
+ * [📄 Bản Quyền](#-bản-quyền)
31
+
32
+ ---
33
+
17
34
  ## 🌟 Tính Năng Nổi Bật
18
35
 
19
36
  * **💻 Trung Tâm Điều Khiển TUI Trực Quan** — Quản lý các tiến trình runtime, kiểm tra nhật ký (logs), đăng ký thư mục làm việc và sửa đổi cấu hình trực tiếp từ giao diện terminal.
@@ -45,10 +62,43 @@ graph TD
45
62
 
46
63
  ---
47
64
 
65
+ ## 🚀 Hướng Dẫn Nhanh
66
+
67
+ ### 1. Cài Đặt
68
+ Cài đặt package toàn cục (globally) bằng npm:
69
+ ```bash
70
+ npm install -g @quangnv13/nonstop
71
+ ```
72
+
73
+ ### 2. Tạo Bot Telegram
74
+ Để chạy `nonstop`, bạn cần chuẩn bị một token của bot Telegram. Dưới đây là hướng dẫn tạo bot qua `@BotFather`:
75
+
76
+ 1. Mở ứng dụng Telegram, tìm kiếm **@BotFather** (chú ý chọn tài khoản có dấu tích xanh xác thực).
77
+ 2. Nhấn **Start** (hoặc gửi lệnh `/start`).
78
+ 3. Gửi lệnh `/newbot` để bắt đầu quy trình tạo bot mới.
79
+ 4. Nhập tên hiển thị cho bot của bạn (ví dụ: `My Nonstop Controller`).
80
+ 5. Nhập tên người dùng (username) duy nhất cho bot, tên này bắt buộc phải kết thúc bằng chữ `bot` (ví dụ: `my_nonstop_bot`).
81
+ 6. Sau khi hoàn thành, `@BotFather` sẽ gửi lại cho bạn một mã **HTTP API Access Token** (dạng như: `123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ`). Copy lại mã token này và giữ bí mật.
82
+
83
+ ### 3. Khởi Chạy và Thiết Lập
84
+ Di chuyển tới thư mục bạn muốn lưu cấu hình nonstop và chạy lệnh:
85
+ ```bash
86
+ nonstop
87
+ ```
88
+ > [!NOTE]
89
+ > Trong lần chạy đầu tiên, nếu tệp `.env` chưa tồn tại trong thư mục, `nonstop` sẽ tự động hiển thị **Trình hướng dẫn thiết lập (Setup Wizard)** trực tiếp trên terminal của bạn để giúp bạn điền:
90
+ > * **Telegram Bot Token**: Token bạn vừa lấy từ BotFather.
91
+ > * **Allowed Admin Username**: Tên người dùng Telegram của bạn (bắt đầu bằng `@`) để ngăn chặn các truy cập trái phép.
92
+ > * **Client Name**: Tên định danh cho server này.
93
+ > * **Language**: Chọn ngôn ngữ hiển thị (tiếng Anh `en` hoặc tiếng Việt `vi`).
94
+ > * **Startup Mode**: Cấu hình tự khởi động cùng hệ điều hành.
95
+
96
+ ---
97
+
48
98
  ## 🕹️ Hướng Dẫn Sử Dụng
49
99
 
50
100
  ### 1. Trung Tâm Điều Khiển TUI Cục Bộ
51
- Chạy lệnh `npm start` (hoặc `npm run dev`) để mở giao diện quản trên terminal của bạn. Tại đây, bạn có thể:
101
+ Chỉ cần chạy lệnh `nonstop` trên terminal của bạn để mở giao diện bảng điều khiển. Từ đây bạn có thể:
52
102
  * **Khởi động / Dừng (Start / Stop)** bot chạy ẩn.
53
103
  * **Cấu hình Workspace**: Quản lý các thư mục mà phiên terminal được phép khởi chạy từ đó.
54
104
  * **Tự động khởi động (Autostart)**: Thiết lập ứng dụng tự chạy khi hệ thống khởi động.
@@ -75,7 +125,7 @@ Khi bot đang hoạt động, bạn có thể tương tác với nó thông qua
75
125
  * **▲ Up / ▼ Down** — Duyệt lại lịch sử các lệnh đã gõ.
76
126
 
77
127
  #### **📂 Thư Mục Làm Việc (Workspaces)**
78
- * Chọn **📁 Workspaces** từ menu chính để xem danh sách các thư mục được cấu hình trong `data/workspaces.json`.
128
+ * Chọn **📁 Workspaces** từ menu chính để xem danh sách các thư mục được cấu hình.
79
129
  * Việc chọn một workspace sẽ đổi thư mục hiện tại của phiên PTY tiếp theo sang thư mục đó.
80
130
 
81
131
  #### **⚙️ Cấu Hình Hệ Thống Động**
@@ -85,61 +135,9 @@ Khi bot đang hoạt động, bạn có thể tương tác với nó thông qua
85
135
 
86
136
  ---
87
137
 
88
- ## 🛠️ Hướng Dẫn Cài Đặt
89
-
90
- ### 1. Yêu Cầu Hệ Thống
91
- Hãy chắc chắn rằng máy tính của bạn đã cài đặt [Node.js](https://nodejs.org/) (v18+) và `npm`.
92
-
93
- ### 2. Cài Đặt
94
- Tải mã nguồn và cài đặt các thư viện cần thiết:
95
- ```bash
96
- git clone https://github.com/quangnv13/nonstop.git
97
- cd nonstop
98
- npm install
99
- ```
100
-
101
- ### 3. Biên Dịch Dự Án
102
- Biên dịch các tệp TypeScript sang mã JavaScript chạy chính thức:
103
- ```bash
104
- npm run build
105
- ```
106
-
107
- ### 4. Khởi Chạy `nonstop`
108
- Khởi động giao diện trung tâm điều khiển TUI:
109
- ```bash
110
- npm start
111
- ```
112
- > [!NOTE]
113
- > Trong lần chạy đầu tiên, nếu tệp `.env` chưa tồn tại, `nonstop` sẽ tự động hiển thị **Trình hướng dẫn thiết lập (Setup Wizard)** để giúp bạn điền Token Telegram, tên người dùng Admin được phép truy cập, ngôn ngữ và cấu hình khởi động.
114
-
115
- Với chế độ phát triển (hỗ trợ hot-reload):
116
- ```bash
117
- npm run dev
118
- ```
119
-
120
- ---
121
-
122
- ## 📁 Cấu Trúc Dự Án
123
-
124
- ```text
125
- nonstop/
126
- ├── data/ # Lưu trữ dữ liệu (logs, workspaces.json, last-chat-id)
127
- ├── src/ # Mã nguồn viết bằng TypeScript
128
- │ ├── bot.ts # Xử lý bot Telegram & các callback query
129
- │ ├── config.ts # Phân tích cấu hình, ghi tệp cấu hình & nạp biến môi trường
130
- │ ├── runtime.ts # Quản lý shell session & tiến trình PTY
131
- │ ├── ui.ts # Giao diện trung tâm điều khiển TUI
132
- │ └── index.ts # Điểm khởi chạy ứng dụng
133
- ├── dist/ # Mã JavaScript sau khi biên dịch
134
- ├── .env # Lưu trữ cấu hình môi trường cục bộ (được bỏ qua bởi git)
135
- └── package.json # Định nghĩa dự án & các script chạy lệnh
136
- ```
137
-
138
- ---
139
-
140
138
  ## 🎛️ Cấu Hình Ban Đầu
141
139
 
142
- Các cài đặt cấu hình nằm trong file `.env` tại thư mục gốc của dự án. Bạn thể tạo từ tệp mẫu [`.env.example`](.env.example):
140
+ Các cài đặt cấu hình nằm trong file `.env` tại thư mục nơi bạn chạy lệnh CLI. Tệp mẫu cấu hình `.env.example` sẽ được tự động sinh ra:
143
141
 
144
142
  ```ini
145
143
  TELEGRAM_BOT_TOKEN=your_telegram_bot_token
@@ -157,7 +155,7 @@ STARTUP_MODE=disabled
157
155
  > [!WARNING]
158
156
  > Do `nonstop` cung cấp quyền truy cập shell trực tiếp trên máy của bạn thông qua ứng dụng Telegram, hãy lưu ý các quy tắc bảo mật sau:
159
157
  >
160
- > 1. **Giữ Bí Mật Token Bot**: Tuyệt đối không commit tệp `.env` chứa token lên các kho lưu trữ công cộng.
158
+ > 1. **Giữ Bí Mật Token Bot**: Tuyệt đối không để lộ tệp `.env` chứa token lên các kho lưu trữ công cộng.
161
159
  > 2. **Kiểm Tra Kỹ Tên Admin**: Đảm bảo `ADMIN_USERNAME` được điền đúng (bao gồm cả ký tự `@` ở đầu) để tránh kẻ xấu lợi dụng.
162
160
  > 3. **Chạy Với Quyền Hạn Hạn Chế**: Không nên chạy ứng dụng dưới các quyền quản trị cao nhất (như Administrator hoặc root) trừ khi thực sự cần thiết.
163
161
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quangnv13/nonstop",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },