Skip to content

Commit

Permalink
release: 3.5.3
Browse files Browse the repository at this point in the history
  • Loading branch information
zyyzyykk committed Jan 13, 2025
1 parent f27fe1f commit 0f72f72
Show file tree
Hide file tree
Showing 27 changed files with 160 additions and 115 deletions.
56 changes: 28 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
>
> Preview: https://ssh.kkbpro.com/
>
> Update Time: 2025-01-04
> Update Time: 2025-01-10
>
<p align="center"><a href="https://ssh.kkbpro.com/" target="_blank" rel="noopener noreferrer"><img width="100" src="https://kkbapps.oss-cn-shanghai.aliyuncs.com/logo/terminal.png" alt="kkTerminal"></a></p>
Expand All @@ -35,43 +35,37 @@ Using the `iframe` tag in HTML web pages to quick integration:

### 🐳 Deploy with Docker

1.Pull image:
1. Pull image:

```bash
docker pull zyyzyykk/kkterminal
```

2.Create and run a container for port mapping: `-p port:3000`
2. Create and run a container for port mapping: `-p port:3000`

```bash
docker run -d --name kkterminal -p 3000:3000 zyyzyykk/kkterminal
```

3.Mount data volume: `-v path:/data`

```bash
docker run -d --name kkterminal -p 3000:3000 -v /data:/data zyyzyykk/kkterminal
```

4.Custom art word: `-e TITLE="ArtWord"`
3. Custom art word: `-e TITLE="ArtWord"`

```bash
docker run -d --name kkterminal -p 3000:3000 -e TITLE="kkbpro" zyyzyykk/kkterminal
```

5.Accessing in browser: `http://server-ip:3000/`
4. Accessing in browser: `http://server-ip:3000/`

### 🛸 Preview

Visit the following website: https://ssh.kkbpro.com/

![Connect](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.4.9/en/Connect.png)
![Connect](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.5.3/en/Connect.png)

![Preference](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.4.9/en/Preference.png)
![Preference](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.5.3/en/Preference.png)

![File](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.4.9/en/File.png)
![File](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.5.3/en/File.png)

![Editor](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.4.9/en/Editor.png)
![Editor](https://kkbapps.oss-cn-shanghai.aliyuncs.com/terminal/3.5.3/en/Editor.png)

[**More Module Previews**](./doc/en_US/MODULE.md)

Expand All @@ -81,17 +75,19 @@ Visit the following website: https://ssh.kkbpro.com/

2. Support the use of `iframe` tags in web pages for quick integration into third-party websites

3. Support internationalization and language switching between Chinese and English
3. Support customizing terminal configuration through [URL Parameters](./doc/en_US/PARAMS.md)

4. Support internationalization and language switching between Chinese and English

4. Support local PC deployment, automatically opens browser window upon startup
5. Support local PC deployment, automatically opens browser window upon startup

5. Support adaptive window size and Chinese input
6. Support adaptive window size and Chinese input

6. Support custom preference settings, allowing users to choose the background/foreground color, font size, cursor display style and enable TCode for the terminal
7. Support custom preference settings, allowing users to choose the background/foreground color, font size, cursor display style, enable TCode for the terminal, etc

7. Support restart: It will automatically restart after modifying SSH connection settings or custom preference settings, or can be manually restarted after SSH connection is disconnected
8. Support restart: It will automatically restart after modifying SSH connection settings or custom preference settings, or can be manually restarted after SSH connection is disconnected

8. Support copy and paste:
9. Support copy and paste:

- Copy: Same as `Git` terminal, selecting text will automatically copy it

Expand All @@ -100,15 +96,24 @@ Visit the following website: https://ssh.kkbpro.com/

9. Support file management, open the File Management Module to view, decompress, upload and download files/folders

10. Support shortcut key operations such as multiple/all file selection, copy and paste, cut, selection switch, open
10. Support shortcut key operations such as multiple/all file selection, copy and paste, cut, selection switch, open, etc

11. Support file browsing and editing, modify the file and save it to a remote server using `ctrl+s`

12. Support [TCode (Terminal Code)](./doc/en_US/TCODE.md),which can achieve automated Workflow similar to Shell scripts through Customized TCode

13. Support operation recording and cloud synchronization functions

### 👨‍💻 Update Records

##### zyyzyykk/kkterminal:3.4.9: latest
##### zyyzyykk/kkterminal:3.5.3: latest

- Add URL parameter to customize terminal configuration
- Fix bug of multi window restart
- Added operation recording and cloud synchronization functions
- Refactoring some code logic

##### zyyzyykk/kkterminal:3.4.9:

- Add private key login method
- Add automatic judging and save switch for file encoding
Expand All @@ -121,11 +126,6 @@ Visit the following website: https://ssh.kkbpro.com/
- Fix folder input upload bug caused by changing dir during upload
- Optimize page display

##### zyyzyykk/kkterminal:3.4.2:

- Implement internationalization and support language switching between Chinese and English
- Refactored some logic of code

[**History Update Records**](./doc/en_US/UPDATE.md)

### 🧬 Architecture
Expand Down
1 change: 1 addition & 0 deletions backend/terminal/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,4 @@ build/
### Java ###
.files/
data/
cloud/
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7TWRnsL/JOWQwX1PrOyHfMKTkMjsWrxZcOEZWCVQv5xTg43wjpYciSjRN19aGdTi9rhN7kXrEI4mk0jORalOij1LddPlzgsgFNWhjSjWqaNjqavYENOaU5g50RpQ2nrGtgIhmajQxIx9vHPak0Ix+HAOIQDg/kmeTys65N1YpW3QFQ2ZxKM5oJshXg7OM4i4bKHgjGKKsuoev//VhusXQeuOh79tGxsBcywziGuJFca47bOIhAGK952cw5z1TaVFm1Dvd+wxwz0A2D+NhVdc6FIF9WZ32zjb2SXeGgLkfYVa7OchrmzVjEclhNNQP6bmecohEci5qPpn0XcaR+RkDiuYiXJ4uqfmUqwJfuYuu4lHpOD6PKzruisregLYitBZbidkKOuFlaf1l2sYmpL64+bWebaSiJCqbvDKA+DyT0W9UzS93aerYeC+t6CnVlcJSWht4VUTLqQ2ZWXDxSI5VcUNNleDBZJ3IJp7BAvvZA2wtg2D3gpoGgdfBd/VjwFlTJJXIntLT6bBwzRL+GCysfA5i+LdPgHdH0llL123GRrwXOA0CSat4FHJL4Ei0lw2VugInu2BWgk7/S20DZohRhaTdEU6allMIEx4MLDuaKqEowF+iIREvstet8cmTNFCt4Dn29XzJzsuwSK8dHyB6ntntaP2sed2sX40PqE5SpRN3jy5cvoQGRD0kdPQIpauqitDtPa26q20ZBsnC6Ua6/XdvPv9xsMHi4zTj3CF9kzQFQ2ZxKM5oJshXg7OM4i4/xYhbm6mNmo5n9kjiMxlJCcF2ksxFTu0l1HxCHbzWFO61BL33iNbIvWedSNc8jFuO/SW1Kw4vqK5/Gu9O8Ad4mLmXsOtEtpLcmg25roD40/o0OTIakYRzW0sP4+zhnZ5tk/up5lcbwgH4shm7GX4//I/+iaEfDvgoB45qikaaGrh7P59HWomuXydRzb07nLgXRjz0ZISQ7guaFnvdGIchumhkDfb/E8yPnct5qZ+v36jT9lv1rVp5kKdX0Rx+Met9nkz2Wa8Z23KmXE300h/eTVHI6rTYS/6S/GUeKCit9WNjQ+oWkXeDn8GXvrvQaxGVHLphGFJBCSqZXfNVmk/5OjGW/JTM53t1PvcNK+5ltjHJur2feR515bC7R+5dXproIbFxMf4BqaSVFAY/BAPr1+MMTnhs3SiMeCRYXnYg9rCdoZHTvfNcx5WG+NEBgSYZkOn9umizgZnYrhTyW1764FXf2ceBsaauRGQa7aosO4FYQbz6MCQJLHrvC/x6sAfIavJzlA3bnMt8fJymTkTOan+guvnC2jZGPZKCiCvU68J8zUdjo6SANvKi+QBYAMWaTBUG8bGwADSlLKMj9Ue9AnoXhLfbj/NOeh2t2u5zJEPs06QFRvGSCMBbvSN/5JbJoV51p1gBVJ4R2UeE+pu7GC88ZKb8z7vQAfzrE3MG6sLc5xz2600DR1X9jKDwR/Xk7GLpCCDZpBPdrdz4vHRgQ==
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public enum FileBlockStateEnum {

CHUNK_MERGE_ERROR(505,"文件片合并失败"),

CLOUD_COUNT_ERROR(506,"云端文件过多"),

SSH_NOT_EXIST(602,"ssh连接断开");

private Integer state;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.kkbpro.terminal.controller;

import com.kkbpro.terminal.constants.enums.FileBlockStateEnum;
import com.kkbpro.terminal.result.Result;
import com.kkbpro.terminal.utils.StringUtil;
import org.springframework.scheduling.annotation.Scheduled;
Expand Down Expand Up @@ -42,7 +43,8 @@ public Result uploadCloud(String user, String type, String name, MultipartFile f
if (!folder.exists()) {
folder.mkdirs();
}
if(folder.listFiles().length > maxCount && countType.equals(type)) return Result.error("云端文件过多");
if(folder.listFiles().length > maxCount && countType.equals(type))
return Result.error(FileBlockStateEnum.CLOUD_COUNT_ERROR.getState(),"云端文件过多");
File aimFile = new File(folderPath + "/" + type + name);
// 如果文件存在则删除
if (aimFile.exists()) {
Expand Down
2 changes: 1 addition & 1 deletion backend/terminal/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=100MB

# PC端启用窗口
kk.pc.window=false
kk.pc.window=true
Loading

0 comments on commit 0f72f72

Please sign in to comment.