How zyyzyykk/kkterminal works
kkTerminal is a browser-based Web SSH client with a Spring Boot backend. The main workflow initializes the app, checks access when configured, opens a terminal session to a remote server, and supports file operations over SSH/SFTP. Separate product branches provide preference and command workflows, cloud synchronization, collaboration, monitoring, and Docker management. Controller excerpts are partial, so some UI-to-controller links are based on documented capabilities; uncertain internal dispatch details are omitted.
Main entry points: Request.js HTTP client · TerminalView.vue Terminal UI · App.vue App bootstrap · FileBlock.vue File browser
Components 23
Browser client
- App bootstrap
front/terminal/src/App.vue - View routing
front/terminal/src/router/index.js - Terminal UI
front/terminal/src/views/TerminalView.vue - File browser
front/terminal/src/components/file/FileBlock.vue - File preview
front/terminal/src/components/preview/FilePreview.vue - Connection settings
front/terminal/src/components/connect/ConnectSetting.vue - Preferences
front/terminal/src/components/preference/PreferenceSetting.vue - Command workflows
front/terminal/src/components/cmdcode/CmdCodeWorkflow.vue
Access and setup
- Access check
front/terminal/src/views/AccessCheck.vue - HTTP client
front/terminal/src/utils/Request.js - Cloud sync client
front/terminal/src/utils/Cloud.js - System API
backend/terminal/src/main/java/com/kkbpro/terminal/controller/SystemController.java - Access API
backend/terminal/src/main/java/com/kkbpro/terminal/controller/AccessController.java - Session state
backend/terminal/src/main/java/com/kkbpro/terminal/utils/SessionUtil.java
Remote operations
- File API
backend/terminal/src/main/java/com/kkbpro/terminal/controller/FileController.java - SSH and SFTP
backend/terminal/src/main/java/com/kkbpro/terminal/utils/SSHUtil.java - Terminal socket
backend/terminal/src/main/java/com/kkbpro/terminal/consumer/WebSocketServer.java
Advanced features
- Cloud API
backend/terminal/src/main/java/com/kkbpro/terminal/controller/CloudController.java - Cloud files
backend/terminal/src/main/java/com/kkbpro/terminal/controller/CloudController.java - Advanced UI
front/terminal/src/components/advance/CooperateGen.vue - Advanced API
backend/terminal/src/main/java/com/kkbpro/terminal/controller/AdvanceController.java
Other components
- User
- Remote server
Connections 31
- User → App bootstrap: opens
- App bootstrap → HTTP client: initializes via
- App bootstrap → View routing: selects view
- HTTP client → System API: requests init
- System API → Session state: reads/writes
- View routing → Access check: shows login
- Access check → HTTP client: submits access
- HTTP client → Access API: requests login
- Access API → Session state: reads/writes
- View routing → Terminal UI: shows terminal
- Terminal UI → Connection settings: configures connection
- Terminal UI → Terminal socket: opens socket
- Terminal socket → Remote server: SSH session
- Terminal UI → File browser: opens file module
- File browser → HTTP client: requests file actions
- HTTP client → File API: calls file API
- File API → SSH and SFTP: uses SFTP/SSH
- SSH and SFTP → Remote server: operates remotely
- File browser → File preview: opens selected file
- File preview → File browser: requests save
- Terminal UI → Preferences: configures display
- Terminal UI → Command workflows: runs workflows
- App bootstrap → Cloud sync client: syncs data
- Cloud sync client → HTTP client: uses HTTP
- HTTP client → Cloud API: calls cloud API
- Cloud API → Cloud files: reads/writes
- Terminal UI → Advanced UI: opens advanced tools
- Advanced UI → HTTP client: requests operations
- HTTP client → Advanced API: calls advanced API
- Advanced API → SSH and SFTP: runs remote commands
- Advanced API → Terminal socket: manages cooperation