2022-01-24 17:36:50 +00:00
{% extends "base.html" %}
2022-09-14 17:33:05 +00:00
{% block title %}
Garage - An open-source distributed object storage service
{% endblock title %}
2022-01-24 17:36:50 +00:00
{% block content %}
< section class = "section" id = "home-section" >
< div >
2022-02-01 11:12:59 +00:00
< div class = "flex flex-col items-center justify-center py-12 px-8 md:px-12 xl:px-0" >
2022-01-28 12:14:24 +00:00
< h1 class = "hidden" > {{config.extra.organization.name}}< / h1 >
2022-02-10 08:15:13 +00:00
< img src = "{{ config.extra.organization.logo }}" width = "220" alt = "{{config.extra.organization.name}}" / >
2022-01-26 13:44:47 +00:00
< p class = "text-gray-500 leading-10 pt-4 text-xl text-center" > {{ config.extra.organization.description }}< / p >
2022-02-01 11:12:59 +00:00
< div class = "flex items-center justify-center space-x-2 md:space-x-4 py-4" >
< a
2022-02-01 16:17:01 +00:00
href="{{ config.base_url }}/download/"
2022-02-01 11:12:59 +00:00
title="Garage releases"
2023-05-23 15:08:08 +00:00
class="group flex items-center justify-center space-x-1 font-semibold shadow hover:shadow-lg px-4 py-3 rounded text-white transition-all duration-500 bg-gradient-to-tl from-aerogramme-blue via-orange-500 to-orange-300 bg-size-200 bg-pos-0 hover:bg-pos-100">
2022-02-01 11:12:59 +00:00
< svg class = "w-6 h-6 animate-pulse" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" xmlns = "http://www.w3.org/2000/svg" > < path stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" d = "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10" > < / path > < / svg >
< span class = "inline text-sm md:text-base" > Download< / span >
< / a >
< a
href="/documentation/quick-start/"
title="Get started with the documentation"
class="group flex items-center justify-center space-x-1 font-semibold shadow hover:shadow-lg px-4 py-3 rounded text-white transition-all duration-500 bg-gradient-to-tl from-gray-400 via-gray-500 to-gray-400 bg-size-200 bg-pos-0 hover:bg-pos-100">
< svg class = "w-6 h-6 animate-pulse" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" xmlns = "http://www.w3.org/2000/svg" > < path stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" d = "M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253" > < / path > < / svg >
< span class = "inline text-sm md:text-base" > Get Started< / span >
< / a >
< / div >
2022-01-27 17:10:37 +00:00
< div class = "max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-3 gap-x-32 py-12" >
2022-02-01 16:17:01 +00:00
< a href = "{{config.base_url}}/documentation/connect/websites/" class = "group flex flex-col items-center justify-center p-2" >
2022-01-28 00:02:02 +00:00
< img src = "{{ get_url(path='images/host.png') }}" class = "transform group-hover:translate-y-2 transition duration-500" >
2022-01-29 13:42:09 +00:00
< span class = "text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap" > Host a Website< / span >
2022-02-01 16:17:01 +00:00
< / a >
< a href = "{{config.base_url}}/documentation/connect/apps/" class = "group flex flex-col items-center justify-center p-2" >
2022-01-27 17:10:37 +00:00
< img src = "{{ get_url(path='images/store.png') }}" class = "transform group-hover:translate-y-2 transition duration-500" >
2022-01-29 13:42:09 +00:00
< span class = "text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap" > Store Media< / span >
2022-02-01 16:17:01 +00:00
< / a >
< a href = "{{config.base_url}}/documentation/connect/backup/" class = "group flex flex-col items-center justify-center p-2" >
2022-01-27 17:10:37 +00:00
< img src = "{{ get_url(path='images/backup.png') }}" class = "transform group-hover:translate-y-2 transition duration-500" >
2022-01-29 13:42:09 +00:00
< span class = "text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap" > Backup Target< / span >
2022-02-01 16:17:01 +00:00
< / a >
2022-01-24 17:36:50 +00:00
< / div >
< / div >
2022-01-28 15:05:30 +00:00
< div class = "w-full flex flex-col items-center justify-center border-b" >
2022-01-31 18:13:50 +00:00
< div id = "map-about" class = "w-full shadow-lg mx-auto flex flex-col lg:flex-row items-center justify-around lg:space-x-12 py-4 text-sm text-gray-700 border-t" >
2023-05-23 15:08:08 +00:00
< p class = "text-aerogramme-blue text-2xl tracking-wide" > Made for redundancy< / p >
2022-01-31 18:13:50 +00:00
< / div >
< div id = "map-container" class = "relative w-full shadow-inner border-b" >
< div class = "absolute top-0 left-1/2 transform -translate-x-1/2 w-16 overflow-hidden inline-block" >
< div class = "h-8 w-8 bg-white -rotate-45 transform origin-top-left shadow-md" > < / div >
< / div >
2022-01-28 15:05:30 +00:00
< / div >
2022-01-29 13:42:09 +00:00
< div id = "map-legend-container" class = "max-w-7xl mx-auto flex flex-col lg:flex-row items-center justify-around lg:space-x-12 py-2 text-sm text-gray-700" >
2022-01-28 15:05:30 +00:00
< div >
< p class = "text-base text-gray-600" > Each chunk of data is replicated in 3 zones< / p >
< / div >
< div class = "flex items-center space-x-2" >
2022-02-10 08:15:13 +00:00
< img class = "select-none" src = "{{ get_url(path='icons/servers.svg') }}" width = "48" >
2022-01-28 15:05:30 +00:00
< span > Zone (multiple servers)< / span >
< / div >
< div class = "flex items-center space-x-2" >
2022-02-10 08:15:13 +00:00
< img class = "select-none" src = "{{ get_url(path='icons/datachunks.svg') }}" width = "48" >
2022-01-28 15:05:30 +00:00
< span > Chunks of data< / span >
< / div >
< / div >
< / div >
2022-01-24 17:36:50 +00:00
2023-05-23 15:08:08 +00:00
< div class = "grid grid-cols-1 xl:grid-cols-2 gap-x-0 xl:gap-x-12 gap-y-24 text-aerogramme-gray font-light bg-gray-100 py-12 px-4 md:px-0 w-full shadow-inner" >
2022-01-27 17:10:37 +00:00
< div class = "flex flex-col items-center justify-start space-y-2" >
2023-05-23 15:08:08 +00:00
< h2 class = "mb-2 text-xl text-center md:text-2xl font-bold text-aerogramme-blue leading-5" > Our Goals< / h2 >
< div class = "w-8 h-1 bg-aerogramme-blue" > < / div >
2022-02-01 17:36:39 +00:00
< p class = "text-center leading-5 italic text-lg" > We made it lightweight and kept the efficiency in mind:< / p >
2022-01-24 17:36:50 +00:00
< ul class = "list-style-none font-semibold flex flex-col items-center justify-center py-4" >
2022-02-01 16:17:01 +00:00
< li class = "py-1.5 flex flex-col items-center justify-center" >
< span > Self-contained< / span >
< p class = "font-normal text-center" > We ship a single dependency-free binary that runs on all Linux distributions< / p >
2022-01-24 17:36:50 +00:00
< / li >
2023-05-23 15:08:08 +00:00
< div class = "w-2 h-2 rounded-full bg-aerogramme-blue" > < / div >
2022-02-01 16:17:01 +00:00
< li class = "py-1.5 flex flex-col items-center justify-center" >
< span > Fast to deploy, safe to operate< / span >
2022-09-14 17:33:05 +00:00
< p class = "font-normal text-center" > We are sysadmins, we know the value of operator-friendly software< / p >
2022-01-24 17:36:50 +00:00
< / li >
2023-05-23 15:08:08 +00:00
< div class = "w-2 h-2 rounded-full bg-aerogramme-blue" > < / div >
2022-02-01 16:17:01 +00:00
< li class = "py-1.5 flex flex-col items-center justify-center" >
< span > Deploy everywhere on every machine< / span >
2022-09-14 17:33:05 +00:00
< p class = "font-normal text-center" > We do not have a dedicated backbone, and neither do you,< br >
2022-02-08 13:17:46 +00:00
so we made software that run over the Internet across multiple datacenters< / p >
2022-01-31 11:03:25 +00:00
< / li >
2023-05-23 15:08:08 +00:00
< div class = "w-2 h-2 rounded-full bg-aerogramme-blue" > < / div >
2022-02-01 16:17:01 +00:00
< li class = "py-1.5 flex flex-col items-center justify-center text-center" >
Highly resilient< br >
2022-01-24 17:36:50 +00:00
< div class = "font-normal" >
2022-02-01 16:17:01 +00:00
< span > to network failures< / span > ,
< span > network latency< / span > ,
2022-01-24 17:36:50 +00:00
< span > disk failures< / span > ,
< span > sysadmin failures< / span >
< / div >
< / li >
< / ul >
< / div >
2022-01-27 17:10:37 +00:00
< div class = "flex flex-col items-center justify-start space-y-2" >
2023-05-23 15:08:08 +00:00
< h2 class = "mb-2 text-xl text-center md:text-2xl font-bold text-aerogramme-blue leading-5" > Keeping requirements low< / h2 >
< div class = "w-8 h-1 bg-aerogramme-blue" > < / div >
2022-02-01 17:36:39 +00:00
< p class = "text-center leading-5 italic text-lg" >
2022-02-01 09:56:02 +00:00
We worked hard to keep requirements as low as possible:
2022-01-24 17:36:50 +00:00
< / p >
2022-01-26 13:44:47 +00:00
< ul class = "text-center list-style-none flex flex-col space-y-2 justify-start py-4" >
< li class = "flex flex-col md:flex-row items-center justify-start" >
2022-01-24 17:36:50 +00:00
< div class = "flex items-center space-x-2 w-max whitespace-nowrap bg-gray-200 shadow-inner py-0.5 px-1.5 rounded-md" >
2022-02-10 08:15:13 +00:00
< img src = "{{ get_url(path='icons/cpu.svg') }}" width = "24" >
2022-01-30 10:25:02 +00:00
< span class = "font-normal" > CPU< / span >
2022-01-24 17:36:50 +00:00
< / div >
< span class = "px-2" > Any x86_64 CPU from the last 10 years, ARMv7 or ARMv8< / span >
< / li >
2022-01-26 13:44:47 +00:00
< li class = "flex flex-col md:flex-row items-center justify-start" >
2022-01-24 17:36:50 +00:00
< div class = "flex items-center space-x-2 w-max whitespace-nowrap bg-gray-200 shadow-inner py-0.5 px-1.5 rounded-md" >
2022-02-10 08:15:13 +00:00
< img src = "{{ get_url(path='icons/ram.svg') }}" width = "24" >
2022-01-30 10:25:02 +00:00
< span class = "font-normal" > RAM< / span >
2022-01-24 17:36:50 +00:00
< / div >
< span class = "px-2" > 1 GB< / span >
< / li >
2022-01-26 13:44:47 +00:00
< li class = "flex flex-col md:flex-row items-center justify-start" >
2022-01-24 17:36:50 +00:00
< div class = "flex items-center space-x-2 w-max whitespace-nowrap bg-gray-200 shadow-inner py-0.5 px-1.5 rounded-md" >
2022-02-10 08:15:13 +00:00
< img src = "{{ get_url(path='icons/disk.svg') }}" width = "24" >
2022-01-30 10:25:02 +00:00
< span class = "font-normal" > Disk space< / span >
2022-01-24 17:36:50 +00:00
< / div >
< span class = "px-2" > At least 16 GB< / span >
< / li >
2022-01-26 13:44:47 +00:00
< li class = "flex flex-col md:flex-row items-center justify-start" >
2022-01-24 17:36:50 +00:00
< div class = "flex items-center space-x-2 w-max whitespace-nowrap bg-gray-200 shadow-inner py-0.5 px-1.5 rounded-md" >
2022-02-10 08:15:13 +00:00
< img src = "{{ get_url(path='icons/network.svg') }}" width = "24" >
2022-01-30 10:25:02 +00:00
< span class = "font-normal" > Network< / span >
2022-01-24 17:36:50 +00:00
< / div >
< span class = "px-2" > 200 ms or less, 50 Mbps or more< / span >
< / li >
2022-01-26 13:44:47 +00:00
< li class = "flex flex-col items-center md:items-start justify-center" >
2022-01-24 17:36:50 +00:00
< div class = "flex items-center space-x-2 w-max whitespace-nowrap bg-gray-200 shadow-inner py-0.5 px-1.5 rounded-md" >
2022-02-10 08:15:13 +00:00
< img src = "{{ get_url(path='icons/hardware.svg') }}" width = "24" >
2022-01-30 10:25:02 +00:00
< span class = "font-normal" > Heterogeneous hardware< / span >
2022-01-24 17:36:50 +00:00
< / div >
< span class = "px-2" > Build a cluster with whatever second-hand machines are available< / span >
< / li >
< / ul >
< / div >
2022-01-27 17:10:37 +00:00
< div class = "flex flex-col items-center justify-start space-y-2 px-6 xl:px-0" >
2023-05-23 15:08:08 +00:00
< h2 class = "mb-2 text-xl text-center md:text-2xl font-bold text-aerogramme-blue leading-5" > Data resiliency for everyone< / h2 >
< div class = "w-8 h-1 bg-aerogramme-blue" > < / div >
2022-02-01 17:36:39 +00:00
< p class = "text-center leading-5 italic pb-4 text-lg" >
2022-01-31 11:03:25 +00:00
We built Garage to suit your existing infrastructure:
2022-01-24 17:36:50 +00:00
< / p >
< p class = "font-normal" >
Garage implements the Amazon S3 API< br > and thus is already compatible with many applications.
< / p >
< ul class = "grid grid-cols-3 gap-6 py-4 px-8" >
< li class = "flex items-center justify-start" >
< a href = "https://nextcloud.com/" target = "_blank" title = "Nextcloud" >
< img class = "h-20 w-20" src = "{{ get_url(path='images/nextcloud-logo.svg') }}" alt = "Nextcloud" >
< / a >
< / li >
< li class = "flex items-center justify-start" >
< a href = "https://element.io/" target = "_blank" title = "Matrix" >
< img class = "h-20 w-20" src = "{{ get_url(path='images/matrix-logo.svg') }}" alt = "Matrix" >
< / a >
< / li >
< li class = "flex items-center justify-start" >
< a href = "https://cyberduck.io/" target = "_blank" title = "Cyberduck" >
2022-01-30 10:25:02 +00:00
< img class = "w-20" src = "{{ get_url(path='images/cyberduck-logo.png') }}" alt = "Cyberduck" >
2022-01-24 17:36:50 +00:00
< / a >
< / li >
< li class = "flex items-center justify-start" >
< a href = "https://mastodon.social/" target = "_blank" title = "Mastodon" >
< img class = "h-20 w-20" src = "{{ get_url(path='images/mastodon-logo.svg') }}" alt = "Mastodon" >
< / a >
< / li >
< li class = "flex items-center justify-start" >
< a href = "https://rclone.org/" target = "_blank" title = "Rclone" >
< img class = "h-20 w-20" src = "{{ get_url(path='images/rclone-logo.svg') }}" alt = "Rclone" >
< / a >
< / li >
< li class = "flex items-center justify-start" >
< a href = "https://joinpeertube.org/" target = "_blank" title = "PeerTube" >
< img class = "h-20 w-20" src = "{{ get_url(path='images/peertube-logo.svg') }}" alt = "PeerTube" >
< / a >
< / li >
< / ul >
< / div >
2022-01-27 17:10:37 +00:00
< div class = "flex flex-col items-center justify-start space-y-2 px-6 xl:px-0" >
2023-05-23 15:08:08 +00:00
< h2 class = "mb-2 text-xl text-center md:text-2xl font-bold text-aerogramme-blue leading-5" > Standing on the shoulders of giants< / h2 >
< div class = "w-8 h-1 bg-aerogramme-blue" > < / div >
2022-02-01 17:36:39 +00:00
< p class = "text-center leading-5 italic text-lg" >
2022-02-01 09:56:02 +00:00
Garage leverages insights from recent research in distributed systems:
2022-01-26 13:44:47 +00:00
< / p >
2022-01-24 17:36:50 +00:00
< ul class = "text-center list-style-none flex flex-col items-center py-4" >
< li >
2023-05-23 15:08:08 +00:00
< a target = "_blank" href = "https://dl.acm.org/doi/abs/10.1145/1323293.1294281" class = "font-semibold hover:text-aerogramme-blue" > Dynamo: Amazon’ s Highly Available Key-value Store< / a >
2022-01-24 17:36:50 +00:00
by DeCandia et al.
< / li >
< li >
2023-05-23 15:08:08 +00:00
< a target = "_blank" href = "https://hal.inria.fr/inria-00609399v1" class = "font-semibold hover:text-aerogramme-blue" > Conflict-Free Replicated Data Types< / a >
2022-01-24 17:36:50 +00:00
by Shapiro et al.
< / li >
< li >
2023-05-23 15:08:08 +00:00
< a target = "_blank" href = "https://www.usenix.org/conference/nsdi16/technical-sessions/presentation/eisenbud" class = "font-semibold hover:text-aerogramme-blue" > Maglev: A Fast and Reliable Software Network Load Balancer< / a >
2022-01-24 17:36:50 +00:00
by Eisenbud et al.
< / li >
< / ul >
< / div >
2022-01-28 12:14:24 +00:00
< / div >
2022-01-24 17:36:50 +00:00
2022-02-08 10:31:25 +00:00
< div class = "w-full flex flex-col items-center justify-center shadow-inner" >
2023-05-23 15:08:08 +00:00
< div class = "px-8 py-24 space-y-8 text-aerogramme-gray max-w-4xl mx-auto" >
< h2 class = "text-2xl text-aerogramme-blue font-semibold" > Sponsors and funding< / h2 >
< p > The < a class = "text-aerogramme-blue underline" href = "https://deuxfleurs.fr/" target = "_blank" > Deuxfleurs association< / a >
has received a grant from < a class = "text-aerogramme-blue underline" href = "https://pointer.ngi.eu/" target = "_blank" > NGI POINTER< / a > ,
2022-02-01 16:17:01 +00:00
to fund 3 people working on Garage full-time for a year : from October 2021 to September 2022.< / p >
< p > If you want to fund Garage development past its initial grant,
either through donation or support contract,
2023-05-23 15:08:08 +00:00
please < a class = "text-aerogramme-blue underline" href = "mailto:{{config.extra.social.email}}" > get in touch with us< / a > < / p >
2022-01-31 15:56:57 +00:00
< img src = "{{ get_url(path='images/ngi-pointer-eu.png') }}" class = "w-2/3 mx-auto" alt = "NGI Pointers" >
2022-02-01 16:17:01 +00:00
< p class = "italic" > This project has received funding from the European Union's Horizon 2021 research and innovation programme
within the framework of the NGI-POINTER Project funded under grant agreement N° 871528.< / p >
2022-01-24 17:36:50 +00:00
< / div >
2022-01-28 12:14:24 +00:00
< / div >
2022-01-24 17:36:50 +00:00
< / div >
< / section >
{% endblock %}