Rustmius is a full local Termius alternative for Linux, built with Tauri (Rust + Vue.js) that simplifies SSH server and key management. Say goodbye to manually editing SSH config files and managing keys through the command line!
- ๐ฅ๏ธ Visual Server Management: Add, edit, and organize your SSH servers with a modern, intuitive interface
- ๐ Hierarchical Organization: Organize your servers in folders for better structure
- ๐ SSH Key Management: View and manage your SSH key pairs effortlessly
- ๐ณ Docker Integration: Manage your Docker containers and images directly from the application
- ๐ System Monitoring: Monitor your servers' performance in real-time
- ๐ Smart Search: Quickly find your servers and keys with intelligent filtering
- ๐ One-Click Connection: Connect to servers directly from the app
- ๐จ Modern UI: User interface built with Vue.js and Tailwind CSS
- โก Optimal Performance: Rust backend for optimal performance and memory safety
- ๐ง Multi-Terminal Support: Works with multiple terminals (foot, gnome-terminal, konsole, alacritty, kitty, etc.)
Rustmius is a Tauri application that combines:
- Rust Backend: System operations management, data storage, and system integration
- Vue.js 3 Frontend: Reactive user interface with TypeScript
- Pinia: Centralized state management
- Vue Router: Navigation between pages
- Tailwind CSS: Modern and responsive styling
- UI Components: Reusable component library (shadcn/ui style)
rustmius/
โโโ src/ # Frontend source code (Vue.js)
โ โโโ pages/ # Application pages
โ โ โโโ home.vue # Home page (server list)
โ โ โโโ keys.vue # SSH key management
โ โ โโโ server/ # Server-related pages
โ โ โ โโโ index.vue # Server overview
โ โ โ โโโ docker.vue # Docker management
โ โ โ โโโ monitor.vue # System monitoring
โ โ โโโ settings.vue # Application settings
โ โโโ components/ # Reusable Vue components
โ โ โโโ AppSidebar.vue # Navigation sidebar
โ โ โโโ ServerCard.vue # Server card
โ โ โโโ DockerCard.vue # Docker card
โ โ โโโ ui/ # Base UI components
โ โโโ stores/ # Pinia stores
โ โ โโโ servers.ts # Server management
โ โ โโโ keys.ts # SSH key management
โ โ โโโ settings.ts # Settings
โ โโโ class/ # TypeScript classes
โ โ โโโ Server.ts # Server class
โ โ โโโ Class.ts # Utility classes
โ โโโ types/ # TypeScript definitions
โ โโโ router/ # Vue Router configuration
โ โโโ lib/ # Utilities
โโโ src-tauri/ # Backend source code (Rust)
โ โโโ src/
โ โ โโโ main.rs # Tauri entry point
โ โ โโโ lib.rs # Rust library
โ โโโ Cargo.toml # Rust dependencies
โโโ dist/ # Production build
# Install from source
yay -S rustmius
# Or install pre-built binary
yay -S rustmius-bin- Rust (1.70+) : rustup.rs
- Node.js (18+) or Bun : nodejs.org or bun.sh
- System Dependencies :
- Linux :
libwebkit2gtk-4.1-dev,libssl-dev,libgtk-3-dev,libayatana-appindicator3-dev,librsvg2-dev
- Linux :
# Clone the repository
git clone https://github.com/Cleboost/Rustmius.git
cd Rustmius
# Install frontend dependencies
npm install
# or
bun install
# Run in development mode
npm run tauri dev
# or
bun run tauri dev
# Build for production
npm run tauri build
# or
bun run tauri buildThe application is organized into several sections accessible via the sidebar:
- ๐ Home: Overview of all your servers organized in folders
- ๐ SSH Keys: Management of your SSH key pairs
- โ๏ธ Settings: Application configuration
- Add a server: Click "New Server" to add an SSH server with a user-friendly interface
- Organize in folders: Create folders to organize your servers by project or environment
- Edit a server: Click on a server to access its details and options
- Delete a server: Use the delete option in the server details
For each server, you can access:
- Docker Overview: List of containers and images
- Image Management: View and manage your Docker images
- Container Management: Create, start, stop, and delete containers
- Container Details: Inspect logs, statistics, and container configuration
Monitor your servers' performance with:
- CPU and memory usage
- Network statistics
- Disk usage
- Real-time graphs
- Visualization: View all your public and private SSH keys
- Generation: Create new SSH key pairs
- Association: Link keys to specific servers
# Development
npm run dev # Start Vite in development mode
npm run tauri dev # Start Tauri application in development mode
# Build
npm run build # Build the frontend
npm run tauri build # Build the complete application
# Code Quality
npm run lint # Check TypeScript types
npm run knip # Detect unused code# Run tests
npm test
# Tests with coverage
npm run test:coverageServers are stored in a hierarchical structure allowing folder organization:
type ServerConfig = Array<Folder | Server>;
interface Folder {
id: string;
name: string;
contents: ServerConfig;
}
interface Server {
id: string;
name: string;
host: string;
port: number;
user: string;
// ... other properties
}We welcome contributions from the community! ๐ Whether you're fixing bugs, adding features, or improving documentation, your help makes this project better for everyone.
- Fork the repository ๐ด
- Create a feature branch
git checkout -b feature/amazing-feature - Make your changes โจ
- Test thoroughly ๐งช
- Commit with clear messages ๐ (follow commit conventions)
- Push to your fork ๐
- Open a Pull Request ๐
- ๐ Bug Reports: Found a bug? Let us know!
- ๐ก Feature Requests: Have ideas? We'd love to hear them!
- ๐ Documentation: Help improve our docs and guides
- ๐จ UI/UX: Design improvements and user experience enhancements
- ๐งช Testing: Help us test on different systems and configurations
- ๐ Translations: Help us reach users in different languages
- Clear descriptions: Explain what your PR does and why
- Focused changes: Keep PRs focused on a single feature or fix
- Test your changes: Make sure everything works as expected
- Follow code style: Use
cargo fmtandcargo clippyfor Rust,npm run lintfor TypeScript
Contributors will be recognized in our README and release notes. We appreciate every contribution, no matter how small! ๐
This project is licensed under the MIT License - see the LICENSE file for details.
- Tauri team for the desktop application framework
- Vue.js community for the excellent frontend ecosystem
- Rust community for the backend ecosystem
- All contributors who help improve this project
- Arch Linux community for the AUR packages
Made with โค๏ธ by Cleboost
โญ Star this repo if you find it useful!
