Replace MinIO with an alternative S3-compatible storage for local development

Aperta
#177 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
aws, django, docker-compose, python

Direzione di ricerca

Start by reviewing docker-compose.yml and the current S3 integration, then compare Garage and LocalStack against the listed GET, PUT, DELETE, and LIST needs. Test the selected alternative with boto3 and django-storages, including local media uploads. Done means docker-compose.yml, CLAUDE.md, README, and any MinIO references use the chosen solution and local development remains compatible with production S3.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

MinIO has entered maintenance mode and is no longer actively developed for the open-source community. The MinIO team is now focusing on a commercial, paid version.

Reference: https://github.com/minio/minio/commit/27742d469462e1561c776f88ca7a1f26816d69e2

This means that for local development, we should migrate away from MinIO to ensure we have a well-maintained and actively supported S3-compatible storage solution.

Current Usage

MinIO is currently used in our docker-compose.yml for local S3-compatible object storage during development. This allows developers to test S3 integration locally without needing AWS credentials.

Proposed Alternatives

1. Garage (Recommended to investigate first)

Website: https://garagehq.deuxfleurs.fr/
GitHub: https://git.deuxfleurs.fr/Deuxfleurs/garage

Pros:

  • Lightweight and designed for self-hosting
  • S3-compatible API
  • Active development by Deuxfleurs
  • Open-source (AGPL-3.0)
  • Good documentation

Cons:

  • Smaller community compared to MinIO
  • Need to evaluate maturity and stability
2. LocalStack

Website: https://localstack.cloud/
GitHub: https://github.com/localstack/localstack

Pros:

  • Very popular for local AWS development
  • Emulates multiple AWS services (not just S3)
  • Well-documented
  • Large community
  • Actively maintained

Cons:

  • More heavyweight (emulates many AWS services we don't need)
  • Some advanced features require a paid license
  • May be overkill if we only need S3
3. Other Options to Consider
  • MinIO fork: Check if there's an active community fork
  • AWS S3 LocalStack: Use only the S3 component of LocalStack
  • SeaweedFS: Another distributed storage system with S3 compatibility
  • Ceph with RGW: More complex but enterprise-grade

Tasks

  • Research and compare Garage vs LocalStack for our specific use case
  • Test chosen alternative with our current S3 integration
  • Update docker-compose.yml to use the new solution
  • Update development documentation (CLAUDE.md, README)
  • Test that media uploads work correctly in local development
  • Ensure compatibility with production S3 usage (boto3, django-storages)

Additional Context

Our production setup uses AWS S3 with boto3 and django-storages. The local development alternative must be compatible with the same boto3 S3 API to ensure consistency between development and production environments.

Files to update:

  • docker-compose.yml
  • CLAUDE.md (development setup instructions)
  • Any scripts or documentation referencing MinIO

Questions

  1. Do we need any S3 features beyond basic object storage (GET, PUT, DELETE, LIST)?
  2. Are there any MinIO-specific configurations we're using that need equivalent support?
  3. Should we prioritize lightweight (Garage) or feature-complete (LocalStack)?
Lingua principale
Python
Stelle
17
Fork
27
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PythonIreland/website

Tutte le issue di PythonIreland/website

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.