Logo

Instalando RustFS una nueva alternativa a MinIO

Cómo instalar RustFS un nuevo storage con compatibilidad con S3 con docker-compose

Jhoan Vergara

Jhoan Vergara

9/10/2025 · 2 min read

RustFS Logo

RustFS está emergiendo como una alternativa ligera y moderna a MinIO, ofreciendo compatibilidad con la API de Amazon S3 pero con un enfoque en simplicidad y rendimiento gracias a que está desarrollado en Rust 🦀🦀.

En esta guía veremos cómo levantar un servidor de RustFS con Docker Compose, ideal para pruebas locales o entornos de desarrollo.

¿Por qué RustFS?

  • Compatibilidad con S3: puedes usar las mismas librerías o clientes que ya funcionan con MinIO o AWS.
  • Rendimiento y seguridad: Rust asegura buena gestión de memoria y velocidad.
  • Ligero: pensado para desplegar rápido sin depender de grandes infraestructuras ( Pensado para multiples casos de uso con monoservidores-monodiscos o multi 😊 ).

Requisitos previos

Antes de comenzar, asegúrate de tener:

  • Un vps o maquina local
  • Docker/Podman y la extensión Docker Compose instalados
  • Un puerto libre (por defecto 9000)
  • Opcional: un dominio o subdominio para exponer RustFS detrás de un proxy reverso (ej: Traefik o Nginx)

Paso 1. Crear el docker-compose.yml

Primero definiremos un archivo docker-compose.yml que pondrá en marcha RustFS con almacenamiento persistente en el host.

# https://docs.rustfs.com/integration/tls-configured.html
# Si vas a usar TLS ó conexión segura no olvides declarar tus cetificados en 
# certs/rustfs_cert.pem&rustfs_key.pem
# los certificados deben llevar de nombre: rustfs_cert.pem y rustfs_key.pem 
services:
  rustfs:
    image: rustfs/rustfs:latest
    expose:
      - '9000'
    environment:
      - RUSTFS_ADDRESS=0.0.0.0:9000
      - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9000
      - RUSTFS_EXTERNAL_ADDRESS=:9000
      - RUSTFS_CORS_ALLOWED_ORIGINS=*
      - RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*
      - RUSTFS_CONSOLE_ENABLE=true
      - RUSTFS_ACCESS_KEY=${RUSTFS_ACCESS_KEY}
      - RUSTFS_SECRET_KEY=${RUSTFS_SECRET_KEY}
      - RUSTFS_ROOT_USER=${RUSTFS_ROOT_USER}
      - RUSTFS_ROOT_PASSWORD=${RUSTFS_ROOT_PASSWORD}
      # - RUSTFS_TLS_PATH=/certs      
    volumes:
      - rustfs_data:/data
      - rustfs_logs:/var/log/rustfs
      # - ./certs:/certs # https://docs.rustfs.com/installation/docker/#important-notes
    restart: unless-stopped
    # THIS MAKES THE CONTAINER UNUSABLE IN PROD
    # healthcheck:
    #   test: ["CMD", "sh", "-c", "curl -f http://localhost:9000/health && curl -f http://localhost:9000/health"]
    #   interval: 30s
    #   timeout: 10s
    #   retries: 3
    #   start_period: 40s

volumes:
  rustfs_data: 
  rustfs_logs: 

Variables de entorno

RUSTFS_ACCESS_KEY=local
RUSTFS_SECRET_KEY=pass
RUSTFS_ROOT_USER=local
RUSTFS_ROOT_PASSWORD=pass

Paso 2. Iniciar el servicio

Ejecuta en la terminal:

docker compose up -d

Esto levantará el contenedor en segundo plano.

Paso 3. Acceder al panel de administración

Una vez iniciado, RustFS expone una consola web en:

http://0.0.0.0:9000/

Desde allí podrás iniciar sesión con el usuario y contraseña definidos en las variables de entorno.

Paso 4. Probar la compatibilidad con S3

Puedes probar RustFS con librerías como aws-cli o boto3 configurando el endpoint en http://0.0.0.0:9000.

Ejemplo con aws-cli:

aws configure
# Access Key: local
# Secret Key: pass
# Default region: us-east-1
# Output format: json

aws --endpoint-url http://0.0.0.0:9000 s3 ls