Skip to content

A Modern Browser for S3-Compatible Object Storage

Notifications You must be signed in to change notification settings

swaruptripathy/sylo

Repository files navigation

SYLO

A Modern Browser for S3-Compatible Object Storage

License: MIT PRs Welcome

🚀 Overview

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.

✨ Features

  • 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

🔧 Getting Started

Project Structure

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

Quick Start

# Clone the repository
git clone https://github.com/swaruptripathy/sylo.git
cd sylo

# Install dependencies
npm install

# Run the development server
npm run dev

Visit http://localhost:3000 to start using SYLO.

Production Deployment

Standard Deployment

# Build for production
npm run build

# Start the production server
npm start

Docker Deployment

SYLO can also be deployed using Docker and Traefik for automatic HTTPS:

# Build and run using Docker Compose
docker-compose up -d

The 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

🛠️ Usage

  1. Connect to your S3-compatible storage using your access key, secret key, and region
  2. Browse your buckets and navigate through your folders and files
  3. Upload files, create folders, and manage your storage
  4. Preview compatible media and documents directly in your browser
  5. Generate shareable links for easy file sharing

🔒 Security

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

🧩 Compatible Storage Providers

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

🛣️ Roadmap

  • 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

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgements


Made with ❤️ for the open-source community

About

A Modern Browser for S3-Compatible Object Storage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published