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