{"id":24064328,"url":"https://github.com/omniflare/docker-vue","last_synced_at":"2026-04-18T07:32:18.877Z","repository":{"id":271582081,"uuid":"913836263","full_name":"omniflare/docker-vue","owner":"omniflare","description":"🚀 DockerVue - A Modern Docker Desktop Alternative  A blazing-fast, lightweight Docker management UI built with Rust, Tauri, and React. Perfect for Linux users who want a native-like Docker experience without the heavy resource overhead.  ✨ Key Features: - 🐳 Full Docker container management - 📦 Image handling with real-time progress - 🔌 Network ","archived":false,"fork":false,"pushed_at":"2025-01-08T16:37:26.000Z","size":284,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-09T08:07:40.633Z","etag":null,"topics":["docker","docker-desktop","rust-project","tauri","tauri-app","tauri-apps"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omniflare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-08T12:54:25.000Z","updated_at":"2025-04-24T18:33:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"57ace5c6-aab9-42a6-9865-d864feabc615","html_url":"https://github.com/omniflare/docker-vue","commit_stats":null,"previous_names":["omniflare/docker-vue"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/omniflare/docker-vue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniflare%2Fdocker-vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniflare%2Fdocker-vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniflare%2Fdocker-vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniflare%2Fdocker-vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omniflare","download_url":"https://codeload.github.com/omniflare/docker-vue/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniflare%2Fdocker-vue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31961158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-desktop","rust-project","tauri","tauri-app","tauri-apps"],"created_at":"2025-01-09T10:24:25.318Z","updated_at":"2026-04-18T07:32:18.860Z","avatar_url":"https://github.com/omniflare.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DockerVue: A Modern Docker Desktop Alternative\n\n[![Rust](https://img.shields.io/badge/rust-%23000000.svg?\u0026logo=rust\u0026logoColor=white)](https://www.rust-lang.org/)\n[![Tauri](https://img.shields.io/badge/tauri-%2324C8DB.svg?\u0026logo=tauri\u0026logoColor=white)](https://tauri.app/)\n[![React](https://img.shields.io/badge/react-%2361DAFB.svg?\u0026logo=react\u0026logoColor=black)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/typescript-%233178C6.svg?\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n\nA lightning-fast, resource-efficient alternative to Docker Desktop, built specifically with Linux users in mind. This project combines the power of Rust's performance with modern web technologies to create a seamless Docker management experience.\n\n## 🌟 Why Another Docker Desktop?\n\nWhile Docker Desktop is a fantastic tool, its implementation on Linux can be resource-intensive and sometimes sluggish. DockerVue was created to address these pain points by:\n\n- Providing a native-like experience with minimal resource overhead\n- Leveraging Rust's safety and performance capabilities\n- Offering a modern, responsive UI that feels natural on Linux systems\n- Ensuring smooth container management with real-time updates\n\n## 🚀 Features\n\n- **Container Management**\n  - Create, start, stop, and delete containers\n  - Real-time container logs\n  - Port mapping configuration\n  - Resource usage monitoring\n- **Image Management**\n  - Pull, remove, and manage Docker images\n  - Image size tracking\n  - Repository tag management\n- **Network Operations**\n  - Create and manage Docker networks\n  - Connect/disconnect containers to networks\n  - Network driver configuration\n- **Volume Management**\n  - Create and manage Docker volumes\n  - Mount point visualization\n  - Volume driver support\n\n## 🛠️ Technology Stack\n\n### Backend (Tauri + Rust)\n- **Tauri**: Provides the application framework and native capabilities\n- **Bollard**: Rust Docker API client for container management\n- **Tokio**: Async runtime for handling concurrent operations\n- **Serde**: Serialization/deserialization of Docker API data\n\n### Frontend\n- **React**: UI component library\n- **TypeScript**: Type-safe development\n- **Tailwind CSS**: Utility-first styling\n- **shadcn/ui**: Modern component library\n- **Lucide Icons**: Beautiful, consistent iconography\n\n## 💡 Key Implementation Details\n\n### Container Management\nThe core container management functionality is implemented using Bollard's Docker API client:\n\n```rust\n#[tauri::command]\nasync fn list_containers(state: State\u003c'_, AppState\u003e) -\u003e Result\u003cVec\u003cContainer\u003e, CommandError\u003e {\n    let docker = \u0026state.docker;\n\n    let containers = docker\n        .list_containers(Some(ListContainersOptions::\u003cString\u003e {\n            all: true,\n            ..Default::default()\n        }))\n        .await\n        .map_err(|e| CommandError::DockerError(e.to_string()))?;\n\n    let result = containers\n        .into_iter()\n        .map(|item| Container {\n            name: item.names.and_then(|names| {\n                names\n                    .first()\n                    .map(|name| name.strip_prefix('/').unwrap_or(name).to_owned())\n            }),\n            status: item.status,\n            state: item.state,\n            ports: item\n                .ports\n                .map(|ports| ports.into_iter().filter_map(|port| port.ip).collect()),\n        })\n        .collect();\n\n    Ok(result)\n}\n```\n\n### Real-time Container Logs\nImplemented streaming logs with proper error handling:\n\n```rust\n#[tauri::command]\nasync fn emit_logs(\n    state: State\u003c'_, AppState\u003e,\n    container_name: \u0026str,\n    on_event: Channel\u003cString\u003e,\n) -\u003e Result\u003c(), CommandError\u003e {\n    let docker = \u0026state.docker;\n    let options = Some(LogsOptions::\u003cString\u003e {\n        stdout: true,\n        stderr: true,\n        tail: \"all\".parse().unwrap(),\n        ..Default::default()\n    });\n\n    let mut logs_stream = docker.logs(container_name, options);\n\n    while let Some(log_result) = logs_stream.next().await {\n        match log_result {\n            Ok(log) =\u003e {\n                on_event.send(log.to_string())?;\n            }\n            Err(e) =\u003e {\n                return Err(CommandError::UnexpectedError(format!(\n                    \"Failed to fetch logs: {}\",\n                    e\n                )));\n            }\n        }\n    }\n    Ok(())\n}\n```\n\n## 🏗️ Architecture\n\nThe application follows a clean architecture pattern:\n\n```\nsrc/\n├── main.rs           # Application entry point\n├── error.rs          # Error handling\n├── payload/          # Data structures\n    ├── mod.rs\n    └── types.rs\n\n```\n\n## 🚦 Getting Started\n\n### Prerequisites\n- Rust 1.70 or higher\n- Node.js 16 or higher\n- Docker Engine running on your system\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/omniflare/docker-vue.git\ncd docker-vue\n```\n\n2. Install dependencies:\n```bash\n# Install Rust dependencies\ncargo install tauri-cli\n\n# Install frontend dependencies\ncd src-tauri\nyarn install\n```\n\n3. Run the development version:\n```bash\ncargo tauri dev\n```\n\n4. Build for production:\n```bash\ncargo tauri build\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Tauri](https://tauri.app/) for providing the framework that makes this possible\n- [Bollard](https://github.com/fussybeaver/bollard) for the excellent Docker API implementation\n- [shadcn/ui](https://ui.shadcn.com/) for the beautiful component library\n- The Docker community for inspiration and support\n\n## 📫 Contact\n\nFor questions and support, please open an issue in the GitHub repository.\n\n---\n\nMade with ❤️ for the Linux community by github.com/omniflare\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomniflare%2Fdocker-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomniflare%2Fdocker-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomniflare%2Fdocker-vue/lists"}