A Modern Browser for S3-Compatible Object Storage
SYLO is an open-source web application that provides a secure, elegant interface for AWS S3, MinIO, Backblaze B2, Wasabi, and any S3-compatible object storage. It's completely browser-based with no server component, ensuring your credentials never leave your device.
- Secure by Design: Your credentials never leave your browser and are encrypted in local storage
- Universal Compatibility: Works with AWS S3, MinIO, Backblaze B2, DigitalOcean Spaces, Wasabi, and any S3-compatible storage
- Modern File Browser: Intuitive navigation with both grid and list views
- File Management: Upload files, create folders, and organize your content
- Media Preview: View images, videos, audio files, and more directly in your browser
- Shareable Links: Generate time-limited shareable URLs for files
- Zero Backend: 100% client-side operation with direct communication to your storage service
- Responsive Design: Optimized for both desktop and mobile use
- Dark Mode Support: Light and dark themes for comfortable viewing in any environment
sylo/
├── src/ # Source code
│ ├── app/ # Next.js app router pages
│ │ ├── auth/ # Authentication page
│ │ ├── browser/ # Bucket and file browser
│ │ │ └── [bucket]/ # Dynamic bucket contents page
│ │ ├── layout.tsx # Root layout with common UI elements
│ │ └── page.tsx # Landing page
│ ├── components/ # React components
│ │ ├── auth/ # Authentication components
│ │ ├── browser/ # Browser components (file views, etc.)
│ │ └── ui/ # UI components (header, toggles, etc.)
│ ├── lib/ # Core libraries and utilities
│ │ ├── s3/ # S3 client implementation
│ │ ├── storage/ # Local storage utilities
│ │ └── utils/ # Utility functions
│ └── styles/ # Global styles
└── public/ # Static assets
# Clone the repository
git clone https://github.com/swaruptripathy/sylo.git
cd sylo
# Install dependencies
npm install
# Run the development server
npm run devVisit http://localhost:3000 to start using SYLO.
# Build for production
npm run build
# Start the production server
npm startSYLO can also be deployed using Docker and Traefik for automatic HTTPS:
# Build and run using Docker Compose
docker-compose up -dThe Docker setup includes:
- Multi-stage build for an optimized container
- Traefik as a reverse proxy with automatic HTTPS
- Configuration for domain and www subdomain redirection
- Connect to your S3-compatible storage using your access key, secret key, and region
- Browse your buckets and navigate through your folders and files
- Upload files, create folders, and manage your storage
- Preview compatible media and documents directly in your browser
- Generate shareable links for easy file sharing
SYLO is designed with security as the top priority:
- Your credentials are stored encrypted in your browser's local storage
- No server-side storage or processing of your credentials or data
- Direct communication between your browser and your storage provider
- Implements best practices for secure credential handling
SYLO works with any S3-compatible storage service, including:
- Amazon S3
- MinIO
- Backblaze B2
- DigitalOcean Spaces
- Wasabi
- Scaleway Object Storage
- Linode Object Storage
- Any other S3 API-compatible service
- Multi-file selection and batch operations
- File type filtering and sorting
- Improved file viewers for more file types
- Search capabilities
- Drag-and-drop file organization
- Multiple account management
- Keyboard shortcuts and accessibility improvements
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the open-source community