@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.
- package/README.md +53 -55
- package/README.vi.md +54 -56
- 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
|
-
|
|
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
|
|
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`
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|