Skip to content

NebulaFS is an inspired project that mocks a minimal core concepts and functionalities of an IPFS.

Notifications You must be signed in to change notification settings

bielsawada/nebula-fs

Repository files navigation

NebulaFS 🌌

NebulaFS GitHub Releases

Welcome to NebulaFS, a project inspired by the core concepts and functionalities of IPFS (InterPlanetary File System). This repository aims to provide a minimal yet effective implementation that showcases how decentralized file storage can be achieved using modern technologies.

Table of Contents

Introduction

NebulaFS aims to replicate the fundamental features of IPFS while keeping the implementation straightforward and accessible. By focusing on core functionalities, this project serves as an educational tool for developers interested in decentralized storage solutions.

Features

  • Decentralized Storage: Store and retrieve files in a distributed manner.
  • API Gateway: Interact with the system through a RESTful API.
  • Microservices Architecture: Each component operates independently, improving scalability.
  • Multiple Storage Options: Supports MongoDB, PostgreSQL, and Redis for data storage.
  • Message Queuing: Utilizes RabbitMQ for efficient communication between services.
  • Built with Go: Leverages the performance and efficiency of the Go programming language.

Architecture

NebulaFS is built on a microservices architecture, allowing for modular development and easy scaling. The core components include:

  • API Gateway: Acts as the entry point for all client requests.
  • Storage Services: Handles file storage and retrieval using various databases.
  • Messaging Service: Manages inter-service communication.
  • Worker Services: Performs background tasks like file processing.

Architecture Diagram

Getting Started

To get started with NebulaFS, you can download the latest release from our Releases page. Follow the instructions to set up and run the application.

Prerequisites

Before running NebulaFS, ensure you have the following installed:

  • Go (version 1.16 or later)
  • Docker (for containerized services)
  • Node.js (for API Gateway if using NestJS)

Installation

  1. Clone the repository:

    git clone https://github.com/bielsawada/nebula-fs.git
    cd nebula-fs
  2. Install dependencies for each service. Navigate to each service folder and run:

    go mod tidy
    npm install
  3. Set up your database. Configure your MongoDB, PostgreSQL, or Redis instance as needed.

  4. Start the services. Use Docker Compose for easy setup:

    docker-compose up

Running the Application

Once all services are up and running, you can interact with the API through the provided endpoints. Visit the Releases page for any updates or new features.

API Documentation

NebulaFS provides a RESTful API for interacting with the storage system. Below are some key endpoints:

  • Upload File: POST /api/upload
  • Retrieve File: GET /api/file/:id
  • Delete File: DELETE /api/file/:id

Refer to the API documentation for detailed information on request parameters and response formats.

Technologies Used

NebulaFS utilizes a variety of technologies to provide a robust solution:

  • Backend:
    • Go for core functionalities
    • NestJS for the API Gateway
  • Database:
    • MongoDB for document storage
    • PostgreSQL for relational data
    • Redis for caching
  • Message Queue: RabbitMQ for service communication
  • Microservices: Each service operates independently, allowing for easy updates and scaling.

Contributing

We welcome contributions to improve NebulaFS. To contribute:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Submit a pull request.

Please ensure that your code adheres to our coding standards and includes tests where applicable.

License

NebulaFS is licensed under the MIT License. See the LICENSE file for more details.

Contact

For any questions or feedback, please reach out to the maintainers:

Thank you for your interest in NebulaFS! We hope you find this project useful and informative. Visit our Releases page for the latest updates.

About

NebulaFS is an inspired project that mocks a minimal core concepts and functionalities of an IPFS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •