A modern, web-based MySQL management tool for GMSSH. Lightweight, fast, and built for server operations.
DBStudio is a database management plugin for the GMSSH desktop system, providing a visual database experience similar to Navicat / DBeaver, purpose-built for server administration.
- π AES-256-GCM encrypted credential storage
- π Multiple concurrent connections with automatic pool recycling
- β Connection testing & one-click save
- π Paginated data browsing (Grid View)
- π Inline editing β modify data directly in the grid
- π Form View β view and edit individual records vertically
- β Add rows / ποΈ Delete rows with batch commit
- π Safe CRUD for tables with and without primary keys
- β‘ SQL Editor powered by CodeMirror 6
- π Query history with re-execution support
- π― Multi-statement execution,
Ctrl+Entershortcut
- ποΈ Visual structure editor (columns, indexes, foreign keys)
- π DDL preview with real-time diff comparison
- π Auto-generated ALTER TABLE statements
- π€ Database export (mysqldump compatible + pure Go fallback)
- π₯ SQL file import with automatic database creation
- π Table-level data export (CSV / JSON / SQL formats)
- π Task management panel with real-time progress tracking
- π Table/view listing with row count, size, and engine info
- π Object search & filter
- π Quick DDL preview & copy
- π Chinese / English dual-language support
- π€ Auto-detects GMSSH system language
βββββββββββββββββββββββββββββββββββββββββββ
β GMSSH Desktop (Host) β
β βββββββββββββββββββββββββββββββββββββ β
β β Iframe (Plugin) β β
β β βββββββββββ βββββββββββββββ β β
β β β Vue 3 βββββΊβ Go Backend β β β
β β β Naive UI β β JSON-RPC β β β
β β βββββββββββ ββββββββ¬βββββββ β β
β βββββββββββββββββββββββββββΌββββββββββ β
β β β
β Unix Socket β
β (app.sock) β
βββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββΌβββββββ
β MySQL β
β Server β
βββββββββββββββ
| Layer | Tech Stack |
|---|---|
| Frontend | Vue 3 + Naive UI + CodeMirror 6 + Pinia |
| Backend | Go + simplejrpc-go (JSON-RPC over Unix Socket) |
| Communication | GMSSH proxy β Unix Socket β JSON-RPC |
| Storage | AES-256-GCM encrypted JSON (connection configs) |
DBStudio/
βββ backend/ # Go backend
β βββ handler/rpc/ # JSON-RPC route handlers
β βββ service/ # Business logic layer
β βββ pkg/
β β βββ config/ # Connection store (encrypted)
β β βββ db/ # Database abstraction layer
β β βββ files/ # File utilities
β β βββ rpcutil/ # RPC utilities
β βββ i18n/ # Backend i18n
β βββ Makefile # Build script
β βββ main.go # Entry point
β
βββ www/ # Vue frontend
β βββ src/
β β βββ components/ # Core components
β β βββ views/ # Page layouts
β β βββ stores/ # Pinia state management
β β βββ styles/ # CSS design system
β β βββ i18n/ # Frontend i18n
β β βββ utils/ # API client & SDK wrappers
β βββ vite.config.js
β
βββ docs/ # Design docs
βββ designs/ # Design specs (tokens, components)
- Go β₯ 1.21
- Node.js β₯ 18 + pnpm
- GMSSH desktop system (runtime environment)
# 1. Frontend dev server
cd www
pnpm install
pnpm dev # http://localhost:5173
# 2. Backend dev server
cd backend
go mod tidy
go run main.gocd backend
make help # Show all build targets
make amd64 # Build linux/amd64
make arm64 # Build linux/arm64
make package # Build frontend + dual-arch packages (tar.gz)Build output structure:
build/linux-amd64/
βββ app/
β βββ bin/ # Backend binary + config + i18n
β βββ www/ # Frontend static files
βββ data/ # Runtime data
βββ logs/ # Logs
βββ tmp/ # Temporary files
DBStudio runs as a GMSSH external application and communicates with the host via:
// Frontend communicates with GMSSH through window.$gm
window.$gm.request(url, options) // API request proxy
window.$gm.execShell({ cmd }) // Remote command execution
window.$gm.chooseFile(callback) // File picker
window.$gm.message.success(msg) // UI feedback
window.$gm.userName // Current logged-in userComing soon
Contributions are welcome! Please follow these guidelines:
- Fork this repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'feat: add some feature' - Push to the branch:
git push origin feature/your-feature - Open a Pull Request
- Backend: Layered architecture
handler β service β pkg, i18n error messages - Frontend: Follow design specs under
docs/designs/(tokens, typography, spacing) - Commits: Use Conventional Commits
Built with β€οΈ for the GMSSH ecosystem