A Google Photos-like mobile application for browsing files on EC2 instances. Connect via SSH using your PEM key and browse photos, videos, documents, and folders in a beautiful, intuitive interface.
- Mobile-first design - Optimized for iOS and Android
- SSH Connection - Securely connect to EC2 instances using PEM keys
- Google Photos-like UI - Beautiful dark theme with album and grid views
- Photo/Video Viewer - Built-in viewer for images and videos
- Album Navigation - Browse folders as albums with breadcrumb navigation
- Media Filter - Toggle to show only photos and videos
- Offline Support - Saves connection details locally
- Frontend: Vue.js 3 + TypeScript + Vite
- Backend: Rust + Tauri 2.0
- SSH: ssh2 crate for secure connections
- Mobile: Tauri Mobile (iOS/Android)
- State Management: Pinia
- Icons: Lucide Vue
- Package Manager: pnpm
- Node.js 20+
- pnpm 9+
- Rust 1.75+
- Xcode (for iOS development - macOS only)
- Android Studio (for Android development)
# Navigate to project
cd iMAGE
# Install dependencies
pnpm install
# Run development server
pnpm tauri:dev
# For mobile development
pnpm tauri:android:dev
pnpm tauri:ios:dev# Build for desktop
pnpm tauri:build
# Build for Android
pnpm tauri:build:android
# Build for iOS (macOS only)
pnpm tauri:build:ios-
Connect: Enter your EC2 instance details:
- IP Address or hostname
- Username (ec2-user, ubuntu, root, etc.)
- SSH port (default: 22)
- PEM key file
-
Browse: Navigate through folders (shown as albums)
-
View: Click on photos or videos to view them
-
Filter: Toggle "Photos/Videos Only" mode to hide other files
This repository includes GitHub Actions workflows for building unsigned mobile packages:
- Build iOS (
.github/workflows/build-ios.yml): Builds unsigned IPA on macOS runners - Build Android (
.github/workflows/build-android.yml): Builds APK on Ubuntu runners
Both workflows run on:
- Push to
mainordevelopbranches - Pull requests to
main - Manual trigger via
workflow_dispatch
- IPA: Available as
iMAGE-unsigned-ipaartifact - APK: Available as
iMAGE-apksartifact (includes debug and release variants)
iMAGE/
├── .github/workflows/ # CI/CD workflows
├── src/ # Vue.js frontend
│ ├── components/ # Vue components
│ ├── views/ # Page views
│ ├── stores/ # Pinia stores
│ ├── router/ # Vue Router
│ └── style.css # Global styles
├── src-tauri/ # Rust backend
│ └── src/
│ ├── main.rs # Entry point
│ ├── ssh.rs # SSH connection logic
│ └── commands.rs # Tauri commands
└── package.json
- PEM keys are stored locally on your device
- All SSH connections are encrypted
- No data is sent to external servers
- Connection details are optionally saved locally
MIT
For issues and feature requests, please use the GitHub issue tracker.