· kaynak dev.to (home feed)
RustFS, kendi sunucunuzda barındırabileceğiniz S3 uyumlu depolama için tek komutluk Docker Compose kurulumu sunuyor
Rust ile yazılmış, Apache 2.0 lisanslı S3 uyumlu bir object store olan RustFS, tek bir Docker Compose komutuyla ayağa kaldırılabiliyor; sürümleme, Object Lock, IAM ve sunucu tarafı şifreleme özellikleriyle geliyor.

Tek Compose komutuyla RustFS
Rust ile yazılmış ve Apache 2.0 lisansıyla yayınlanmış açık kaynak bir object store olan RustFS, S3 API'sini konuşuyor ve tek bir Docker Compose komutuyla yerel donanım üzerinde ayağa kaldırılabiliyor. dev.to'da yayınlanan bir kılavuz, projenin resmi docker-compose-simple.yml dosyasını adım adım inceliyor; bu dosya, S3 API'si için 9000, web konsolu için 9001 portlarını dinleyen bir node başlatıyor ve hem access hem secret key için rustfsadmin kullanıyor — dosyanın kendisi bu değerleri CHANGEME yorumuyla işaretliyor.
dev.to rehberine göre ortaya çıkan endpoint MinIO uyumlu ve üretim odaklı özelliklerle hazır geliyor: bucket sürümleme, Object Lock, IAM ve sunucu tarafı şifreleme. Tüm yığın sizin kontrolünüzdeki donanımda çalıştığı için hiçbir şey bir bulut hesabına bağlı değil.
İki Compose dosyası, iki farklı amaç
RustFS deposu iki Compose dosyasıyla geliyor. Basit varyant yalın bir node başlatırken, tam docker-compose.yml dosyası gözlemlenebilirlik araçlarını da ekliyor — Prometheus, Grafana, Tempo, Jaeger ve isteğe bağlı olarak Nginx. Hızlı bir başlangıç için basit dosya tercih edilmesi gereken seçenek ve tek ön koşul Docker'ın kendisi ya da podman compose ile Podman.
Basit dosya gerçekte ne tanımlıyor
Dosya iki servis tanımlıyor. rustfs servisi rustfs/rustfs:latest imajını çekiyor, 9000 ve 9001 portlarını eşliyor ve node'u environment variable'lar üzerinden yapılandırıyor: RUSTFS_VOLUMES=/data/rustfs{0...3} depolamayı dört volume'e yayıyor, RUSTFS_ADDRESS ve RUSTFS_CONSOLE_ADDRESS API ile konsolu bağlıyor, RUSTFS_CONSOLE_ENABLE=true ise web arayüzünü açıyor. Bir healthcheck her 30 saniyede bir 9000 portundaki /health ve 9001 portundaki /rustfs/console/health adreslerini yokluyor. TLS isteğe bağlı: bir sertifika dizinini /opt/tls altına mount edip RUSTFS_TLS_PATH ayarladığınızda health check'ler otomatik olarak HTTPS'e geçiyor.
İkinci servis olan volume-permission-helper, veri ve log volume'lerinin sahipliğini 10001:10001 UID/GID'sine — yani RustFS runtime'ının çalıştığı kullanıcıya — chown eden ve ardından sonlanan bir Alpine container'ı. dev.to rehberi, doğrudan docker run ve bind mount kullanıldığında bu izin adımının size kaldığını, Compose'un tercih edilmesinin nedenlerinden birinin de bu olduğunu belirtiyor.
Depolama, rustfs_data_0'dan rustfs_data_3'e kadar dört adet named volume ile ayrı bir logs volume'u kullanıyor. Sunucu container'ı no-new-privileges ile çalışıyor, durdurulmadıkça yeniden başlatlıyor ve katı disk topolojisi kontrolleri varsayılan olarak açık kalıyor; RUSTFS_UNSAFE_BYPASS_DISK_CHECK bunları devre dışı bırakabiliyor ancak dosya bunu yalnızca yerel testler için bilinçli bir tercih olarak görüyor.
Çalışan bir node'a üç adım
Rehber kurulumu üç harelete indiriyor: Docker Engine ve Compose eklentisini kurun (ya da Podman), depodan resmi docker-compose-simple.yml dosyasını alın ve docker compose -f docker-compose-simple.yml up -d komutunu çalıştırın. README, aynı port eşlemeleriyle ve bind mount edilmiş veri ile log dizinleriyle tek satırlık bir docker run komutunu da belgeliyor. Rehberin Compose lehine argümanı tekrarlanabilirlik: portlar, volume'lar, environment, restart politikası ve health check'in tamamı, sürüm kontrolüne commit edebileceğiniz tek bir dosyada yer alıyor.
Dikkat edilmesi gereken uyarılar
Basit yığın, dört yerel volume üzerine yazan tek bir node; dağıtık bir dağıtım değil. İki yetenek — Iceberg REST özelliği olan S3 Tables ve MinIO disk üstü uyumluluğu — hâlâ preview aşamasında. Ayrıca endpoint paylaşımlı bir ağa dahi değmeden önce varsayılan kimlik bilgilerinin değiştirilmesi gerekiyor.
Neden önemli
S3, object storage için varsayılan arayüz haline geldi ve araçların büyük bir kısmı — yedekleme sistemleri, veri hatları, CI cache'leri — bir yerlerde bir S3 endpoint'inin var olduğunu varsayıyor. Tek komutla dağıtılabilen, Rust ile yazılmış Apache 2.0 lisanslı bir uygulama, bulut hesabı ve müzakere edilmesi gereken tescilli lisans koşulları olmadan yerel geliştirme ortamları ve küçük self-hosted kurulumlar için engeli düşürüyor. Tek node'lu yapı ve preview durumundaki özellikler, basit yığının en iyi şekilde bir geliştirme ya da değerlendirme temeli olarak ele alınması gerektiğini gösteriyor; gözlemlenebilirlik bir gereksinim haline geldiğinde ise daha kapsamlı Compose dosyası devrede.
- #rust
- #docker
- #object-storage
- #s3
- #open-source
- #self-hosting