{"id":35408644,"url":"https://github.com/morpheuslord/komo.do-hub","last_synced_at":"2026-01-13T19:45:58.307Z","repository":{"id":330686342,"uuid":"1122656417","full_name":"morpheuslord/komo.do-hub","owner":"morpheuslord","description":"Android App for the Komodo Server Viewing","archived":false,"fork":false,"pushed_at":"2026-01-05T08:37:47.000Z","size":2439,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-06T22:46:28.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morpheuslord.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-25T08:09:58.000Z","updated_at":"2026-01-05T08:37:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/morpheuslord/komo.do-hub","commit_stats":null,"previous_names":["morpheuslord/komo.do-hub"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/morpheuslord/komo.do-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpheuslord%2Fkomo.do-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpheuslord%2Fkomo.do-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpheuslord%2Fkomo.do-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpheuslord%2Fkomo.do-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morpheuslord","download_url":"https://codeload.github.com/morpheuslord/komo.do-hub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpheuslord%2Fkomo.do-hub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28397826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-02T13:25:46.203Z","updated_at":"2026-01-13T19:45:58.302Z","avatar_url":"https://github.com/morpheuslord.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Komodo Manager\n\nA mobile-first server management console for [Komodo](https://komo.do) - monitor and control your servers, containers, stacks, builds, and repos from anywhere.\n\n**API by Komodo Team • App by Chiranjeevi G (Morpheuslord)**\n\n---\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/screenshots/white_login.png\" alt=\"Login Screen\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/white_stacks.png\" alt=\"Stacks View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/white_builds.png\" alt=\"Build View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/white_server.png\" alt=\"Server Screen\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/white_repos.png\" alt=\"Repo View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/white_containers.png\" alt=\"Containers View\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/screenshots/black_login.png\" alt=\"Login Screen\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/black_stack.png\" alt=\"Stacks View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/black_build.png\" alt=\"Build View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/black_server.png\" alt=\"Server Screen\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/black_repos.png\" alt=\"Repo View\" width=\"200\"/\u003e\n  \u003cimg src=\"public/screenshots/black_container.png\" alt=\"Containers View\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Features\n\n### 🖥️ Server Monitoring\n- **Real-time Resource Monitoring**: View live CPU, RAM, and disk usage with visual progress indicators\n- **Network Statistics**: Monitor network ingress/egress traffic in real-time\n- **Server Health Status**: Visual indicators for server state (running, stopped, error)\n- **Container Overview**: See all containers running on each server at a glance\n- **Bulk Server Actions**: Start, stop, restart, or prune all containers on a server\n\n### 📦 Container Management\n- **Container Lifecycle Control**: Start, stop, and restart individual containers\n- **Detailed Container Information**: \n  - View container status, uptime, and server assignment\n  - See container image details and tags\n  - Monitor network ingress/egress statistics\n  - Access container ID with one-click copy\n- **Container Details Dialog**: Click on any container name to view comprehensive details\n- **Exposed Ports Viewer**: \n  - View all exposed ports with host-to-container mappings\n  - Copy port mappings to clipboard\n  - Protocol information (TCP/UDP)\n- **Container Logs Viewer**: \n  - View container logs with configurable line count (100, 500, 1000 lines)\n  - Auto-scroll to latest logs\n  - Download logs functionality\n  - Support for both stdout and stderr streams\n- **Container Status Tracking**: Real-time status updates with visual indicators\n- **Network Statistics**: View network traffic per container\n\n### 🗂️ Stack Management\n- **Stack Deployment**: Deploy Docker stacks with a single click\n- **Stack Status Monitoring**: Track stack health and container states\n- **Container Integration**: View all containers belonging to a stack\n- **Stack Details**: See stack tags, server assignment, and deployment status\n- **Container Quick Access**: Click container names in stacks to view detailed information\n- **Multi-Container Management**: Manage all containers in a stack from one view\n\n### 🔨 Build Tracking\n- **Build Status Monitoring**: Track build progress and completion status\n- **Build Triggers**: Start new builds directly from the app\n- **Build History**: View all builds and their current states\n- **Visual Status Indicators**: Color-coded badges for build states (pending, building, success, failed)\n\n### 🔗 Repository Integration\n- **Repository Overview**: View all connected repositories\n- **Repository Actions**: \n  - Clone repositories\n  - Pull latest changes\n- **Repository Status**: Monitor repository sync status\n\n### 🎨 User Experience\n- **Dark/Light Theme Support**: Switch between themes with system preference detection\n- **Mobile-First Design**: Optimized for mobile devices with touch-friendly interfaces\n- **Responsive Layout**: Works seamlessly on phones and tablets\n- **Collapsible Panels**: Expandable sections for detailed information\n- **Toast Notifications**: Real-time feedback for all actions\n- **Loading States**: Visual indicators during API operations\n\n### 📊 Data Visualization\n- **Progress Bars**: Visual representation of CPU, memory, and disk usage\n- **Status Badges**: Color-coded status indicators throughout the app\n- **Statistics Charts**: 24-hour resource usage trends for servers\n- **Network Traffic Display**: Formatted network statistics (KB, MB, GB)\n\n### 🚀 Advanced Features\n- **Auto-Refresh**: Automatic data refresh for real-time monitoring\n- **Manual Refresh**: Pull-to-refresh functionality\n- **Error Handling**: Graceful error messages with retry options\n- **Offline Support**: Cached data display when connection is unavailable\n- **Copy to Clipboard**: Quick copy functionality for IDs, ports, and other data\n\n---\n\n## Tech Stack\n\n- **Frontend**: React 18, TypeScript, Vite\n- **UI**: Tailwind CSS, shadcn/ui\n- **Mobile**: Capacitor 8 (Android)\n- **API Client**: komodo_client\n\n---\n\n## Development Setup\n\n### Prerequisites\n\n- Node.js 18+ and npm\n- Git\n\n### Install Dependencies\n\n```bash\ngit clone \u003cyour-repo-url\u003e\ncd komodo-manager\nnpm install\n```\n\n### Run Development Server\n\n```bash\nnpm run dev\n```\n\nThe app will be available at `http://localhost:5173`\n\n---\n\n## Building for Android\n\n### Prerequisites\n\n- [Android Studio](https://developer.android.com/studio) (with SDK 24+)\n- Java JDK 17+\n- Android device or emulator\n\n### Step-by-Step Build Process\n\n#### 1. Install Dependencies\n\n```bash\nnpm install\n```\n\n#### 2. Build the Web App\n\n```bash\nnpm run build\n```\n\n#### 3. Add Android Platform (first time only)\n\n```bash\nnpx cap add android\n```\n\n#### 4. Sync Web Assets to Android\n\n```bash\nnpx cap sync android\n```\n\n\u003e **Note**: Run `npx cap sync` every time you pull new changes or modify web code.\n\n#### 5. Open in Android Studio\n\n```bash\nnpx cap open android\n```\n\n#### 6. Build APK\n\nIn Android Studio:\n1. Go to **Build → Build Bundle(s) / APK(s) → Build APK(s)**\n2. Wait for the build to complete\n3. Click **locate** to find the APK\n\nOr from command line:\n\n```bash\ncd android\n./gradlew assembleRelease\n```\n\nThe APK will be at: `android/app/build/outputs/apk/release/app-release.apk`\n\n#### 7. Run on Device/Emulator\n\n```bash\nnpx cap run android\n```\n\n---\n\n## Configuration\n\n### Capacitor Config\n\nEdit `capacitor.config.json` to modify app settings:\n\n```json\n{\n  \"appId\": \"com.komodo.app\",\n  \"appName\": \"Komodo Manager\",\n  \"webDir\": \"dist\"\n}\n```\n\n### Development with Live Reload\n\nFor testing on a physical device with live reload, update `capacitor.config.json`:\n\n```json\n{\n  \"server\": {\n    \"url\": \"http://YOUR_LOCAL_IP:5173\",\n    \"cleartext\": true\n  }\n}\n```\n\n\u003e **Important**: Remove the `server` block before building for production.\n\n---\n\n## Usage Guide\n\n### Connecting to Komodo API\n\n1. Launch the app\n2. Enter your Komodo server URL (e.g., `https://demo.komo.do:443` or `http://192.168.1.57:9120`)\n3. Enter your API Key and API Secret\n4. Tap **Connect**\n\nCredentials are encrypted and stored locally on your device.\n\n### Managing Servers\n\n1. Navigate to the **Servers** tab\n2. Tap on any server card to expand and view details\n3. View real-time CPU, memory, and disk usage\n4. See all containers running on the server\n5. Use action buttons to:\n   - Start/Stop/Restart all containers\n   - Prune system resources\n   - Refresh server statistics\n\n### Managing Containers\n\n1. Navigate to the **Containers** tab to see all containers\n2. Or view containers within a specific server in the **Servers** tab\n3. Tap on a container card to expand and see:\n   - Container status and uptime\n   - Server assignment\n   - Image information\n   - Network statistics\n4. Use management options:\n   - **Ports**: View exposed ports with server IP addresses\n   - **Logs**: View container logs (configurable line count)\n5. Use action buttons to Start, Stop, or Restart containers\n6. Click on container names in stacks to open detailed information dialogs\n\n### Managing Stacks\n\n1. Navigate to the **Stacks** tab\n2. View all deployed stacks with their status\n3. Tap on a stack to see:\n   - All containers in the stack\n   - Stack tags and metadata\n   - Server assignment\n4. Click container names to view detailed information\n5. Use the **Deploy** button to deploy or update stacks\n\n### Viewing Container Ports\n\n1. Open any container (from Containers tab, Servers tab, or Stacks)\n2. Click the **Ports** button in the Management Options section\n3. View all exposed ports with:\n   - Host port mappings\n   - Container ports\n   - Protocol information (TCP/UDP)\n4. Click the copy icon to copy port mappings to clipboard\n\n### Viewing Container Logs\n\n1. Open any container\n2. Click the **Logs** button in the Management Options section\n3. Select log line count (100, 500, or 1000 lines)\n4. View logs with auto-scroll to latest entries\n5. Use the download button to save logs\n6. Toggle auto-scroll on/off as needed\n\n### Managing Builds\n\n1. Navigate to the **Builds** tab\n2. View all builds with their current status\n3. Use the **Build** button to trigger new builds\n4. Monitor build progress in real-time\n\n### Managing Repositories\n\n1. Navigate to the **Repos** tab\n2. View all connected repositories\n3. Use **Clone** to clone a repository\n4. Use **Pull** to sync latest changes\n\n### Theme Customization\n\n1. Tap the settings icon in the top-right corner\n2. Toggle between **Light** and **Dark** themes\n3. Theme preference is saved automatically\n\n---\n\n## Project Structure\n\n```\n├── src/\n│   ├── components/     # UI components\n│   ├── contexts/       # React contexts (Auth)\n│   ├── hooks/          # Custom hooks\n│   ├── lib/            # API client, utilities\n│   ├── pages/          # App screens\n│   └── assets/         # Images, logos\n├── android/            # Android native project\n├── public/             # Static assets\n└── capacitor.config.json\n```\n\n---\n\n## Troubleshooting\n\n### App crashes on Android\n\n- Ensure `npx cap sync` was run after the latest build\n- Check Android Studio Logcat for errors\n\n### API connection fails\n\n- Verify the server URL includes protocol and port\n- For HTTP (non-HTTPS), ensure `cleartext` is enabled in Capacitor config\n- Check that your device can reach the server network\n\n### Build errors\n\n```bash\n# Clean and rebuild\ncd android\n./gradlew clean\ncd ..\nnpm run build\nnpx cap sync android\n```\n\n---\n\n## License\n\nMIT License - see LICENSE file for details.\n\n---\n\n## Credits\n\n- **Komodo API**: [Komodo Team](https://komo.do)\n- **App Development**: [Chiranjeevi G (Morpheuslord)](https://github.com/morpheuslord)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorpheuslord%2Fkomo.do-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorpheuslord%2Fkomo.do-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorpheuslord%2Fkomo.do-hub/lists"}