talawa-api icon indicating copy to clipboard operation
talawa-api copied to clipboard

Feature: Added MinIO Setup and Configuration for Local and Docker Environments (GSoC'24)

Open chandel-aman opened this issue 6 months ago • 24 comments

What kind of change does this PR introduce?

Feature: Adds MinIO setup and configuration instructions for both local and Docker environments.

Issue Number:

Fixes #2419

Did you add tests for your changes?

Yes

Snapshots/Videos:

Added MinIO setup

https://github.com/user-attachments/assets/ff8783ae-9053-4732-8cea-1b9b4c8cfe5c

MinIO docker setup

https://github.com/user-attachments/assets/0007cad5-014b-48e0-aa3e-818185852f0c

MinIO local setup

https://github.com/user-attachments/assets/0fe0f143-b8bd-4b7e-9db3-4855a5ff0e6e

If relevant, did you update the documentation?

Yes

Summary

This PR introduces MinIO setup instructions into the project to streamline its deployment and configuration. Specifically, it adds:

  • MinIO installation scripts and configuration.
  • Updates to .gitignore, .dockerignore, and package.json to exclude MinIO metadata and update relevant scripts.
  • Changes to create_env.py and envSchema to include MinIO-specific environment variables.
  • Detailed documentation updates in installation.md for setting up MinIO locally and with Docker.

Have you read the contributing guide?

Yes

Summary by CodeRabbit

  • New Features

    • Added support for MinIO object storage through new environment variables for configuration (MINIO_ENDPOINT, MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, MINIO_BUCKET, MINIO_DATA_DIR).
    • Introduced MinIO services in both development and production Docker configurations, improving application scalability and storage management.
    • Enhanced setup process with automated MinIO installation checks and configuration prompts.
    • Implemented a utility function to manage entries in an ignore file for the MinIO data directory.
  • Documentation

    • Updated installation documentation with detailed steps for setting up MinIO, including commands for various operating systems.
    • Added video resources to the contributing guide for improved onboarding.
  • Bug Fixes

    • Improved error handling for file read/write operations in the MinIO configuration process to enhance reliability.
    • Enhanced test coverage for MinIO installation and configuration functions to ensure robustness.
    • Added comprehensive unit tests for the ignore file management function to validate its behavior under various scenarios.

chandel-aman avatar Aug 23 '24 16:08 chandel-aman