- Minio Storage: Interacts with Minio for file storage.
- HTTP and gRPC Support: Serves requests in both HTTP and gRPC formats.
- Redis Cache: Stores metadata for files in a Redis cache.
- Load Balancing: Nginx configuration for load balancing between client and API servers.
- Go installed on your machine
- Minio Server
- Redis Server
- Nginx
- Clone the repository:
git clone [email protected]:MikeMwita/minio_storage.git
- Install dependencies:
go mod download
- Configure environment variables:
Copy the example environment file:
cp .env.example .env
Modify the values in the .env file to match your setup.
- Run the application:
go run main.go
- Configure Nginx:
Update your Nginx configuration with the provided upstream configuration.
- Access the application:
The HTTP server is accessible at http://yourdomain/. The gRPC server is accessible at yourdomain:9000.
Update Minio server details in .env file.
Update Redis server details in .env file.
Modify Nginx configuration for load balancing as per your requirements.
Access the HTTP server at http://yourdomain/.
Access the gRPC server at yourdomain:9000.
This project is licensed under the MIT License - see the LICENSE file for details.