diff --git a/doc/book/README b/doc/book/README new file mode 100644 index 00000000..2a543888 --- /dev/null +++ b/doc/book/README @@ -0,0 +1,3 @@ +These are the sources for the documentation but not the whole website. +The website templates and other things are in garage_website, which +uses this as a submodule. diff --git a/doc/book/book.toml b/doc/book/book.toml deleted file mode 100644 index 3e163990..00000000 --- a/doc/book/book.toml +++ /dev/null @@ -1,6 +0,0 @@ -[book] -authors = ["Quentin Dufour"] -language = "en" -multilingual = false -src = "src" -title = "Garage Documentation" diff --git a/doc/book/src/connect/index.md b/doc/book/connect/_index.md similarity index 95% rename from doc/book/src/connect/index.md rename to doc/book/connect/_index.md index 60a3b03b..c6a46aea 100644 --- a/doc/book/src/connect/index.md +++ b/doc/book/connect/_index.md @@ -1,4 +1,10 @@ -# Integrations ++++ +title = "Integrations" +weight = 3 +sort_by = "weight" +template = "documentation.html" ++++ + Garage implements the Amazon S3 protocol, which makes it compatible with many existing software programs. diff --git a/doc/book/src/connect/apps.md b/doc/book/connect/apps.md similarity index 99% rename from doc/book/src/connect/apps.md rename to doc/book/connect/apps.md index 14d69ef8..65b97dfe 100644 --- a/doc/book/src/connect/apps.md +++ b/doc/book/connect/apps.md @@ -1,4 +1,7 @@ -# Apps (Nextcloud, Peertube...) ++++ +title = "Apps (Nextcloud, Peertube...)" +weight = 5 ++++ In this section, we cover the following software: [Nextcloud](#nextcloud), [Peertube](#peertube), [Mastodon](#mastodon), [Matrix](#matrix) diff --git a/doc/book/src/connect/backup.md b/doc/book/connect/backup.md similarity index 95% rename from doc/book/src/connect/backup.md rename to doc/book/connect/backup.md index a0af3833..878660fc 100644 --- a/doc/book/src/connect/backup.md +++ b/doc/book/connect/backup.md @@ -1,4 +1,8 @@ -# Backups (restic, duplicity...) ++++ +title = "Backups (restic, duplicity...)" +weight = 25 ++++ + Backups are essential for disaster recovery but they are not trivial to manage. Using Garage as your backup target will enable you to scale your storage as needed while ensuring high availability. diff --git a/doc/book/src/connect/cli-nextcloud-gui.png b/doc/book/connect/cli-nextcloud-gui.png similarity index 100% rename from doc/book/src/connect/cli-nextcloud-gui.png rename to doc/book/connect/cli-nextcloud-gui.png diff --git a/doc/book/src/connect/cli.md b/doc/book/connect/cli.md similarity index 98% rename from doc/book/src/connect/cli.md rename to doc/book/connect/cli.md index f7e0b22f..a62594a7 100644 --- a/doc/book/src/connect/cli.md +++ b/doc/book/connect/cli.md @@ -1,4 +1,7 @@ -# CLI tools ++++ +title = "CLI tools" +weight = 20 ++++ CLI tools allow you to query the S3 API without too many abstractions. These tools are particularly suitable for debug, backups, website deployments or any scripted task that need to handle data. diff --git a/doc/book/src/connect/code.md b/doc/book/connect/code.md similarity index 98% rename from doc/book/src/connect/code.md rename to doc/book/connect/code.md index 3d7acd58..4b2c4cb0 100644 --- a/doc/book/src/connect/code.md +++ b/doc/book/connect/code.md @@ -1,4 +1,7 @@ -# Your code (PHP, JS, Go...) ++++ +title = "Your code (PHP, JS, Go...)" +weight = 30 ++++ If you are developping a new application, you may want to use Garage to store your user's media. diff --git a/doc/book/src/connect/fs.md b/doc/book/connect/fs.md similarity index 96% rename from doc/book/src/connect/fs.md rename to doc/book/connect/fs.md index be8a3402..60a60c7f 100644 --- a/doc/book/src/connect/fs.md +++ b/doc/book/connect/fs.md @@ -1,4 +1,7 @@ -# FUSE (s3fs, goofys, s3backer...) ++++ +title = "FUSE (s3fs, goofys, s3backer...)" +weight = 25 ++++ **WARNING! Garage is not POSIX compatible. Mounting S3 buckets as filesystems will not provide POSIX compatibility. diff --git a/doc/book/src/connect/repositories.md b/doc/book/connect/repositories.md similarity index 98% rename from doc/book/src/connect/repositories.md rename to doc/book/connect/repositories.md index 8a3dce14..1b06385c 100644 --- a/doc/book/src/connect/repositories.md +++ b/doc/book/connect/repositories.md @@ -1,4 +1,7 @@ -# Repositories (Docker, Nix, Git...) ++++ +title = "Repositories (Docker, Nix, Git...)" +weight = 15 ++++ Whether you need to store and serve binary packages or source code, you may want to deploy a tool referred as a repository or registry. Garage can also help you serve this content. diff --git a/doc/book/src/connect/websites.md b/doc/book/connect/websites.md similarity index 97% rename from doc/book/src/connect/websites.md rename to doc/book/connect/websites.md index 6f66c8d0..1ef50463 100644 --- a/doc/book/src/connect/websites.md +++ b/doc/book/connect/websites.md @@ -1,4 +1,7 @@ -# Websites (Hugo, Jekyll, Publii...) ++++ +title = "Websites (Hugo, Jekyll, Publii...)" +weight = 10 ++++ Garage is also suitable to host static websites. While they can be deployed with traditional CLI tools, some static website generators have integrated options to ease your workflow. diff --git a/doc/book/src/cookbook/index.md b/doc/book/cookbook/_index.md similarity index 94% rename from doc/book/src/cookbook/index.md rename to doc/book/cookbook/_index.md index 792a5e6e..72c32687 100644 --- a/doc/book/src/cookbook/index.md +++ b/doc/book/cookbook/_index.md @@ -1,4 +1,9 @@ -# Cookbook ++++ +title="Cookbook" +template = "documentation.html" +weight = 2 +sort_by = "weight" ++++ A cookbook, when you cook, is a collection of recipes. Similarly, Garage's cookbook contains a collection of recipes that are known to works well! diff --git a/doc/book/src/cookbook/exposing_websites.md b/doc/book/cookbook/exposing_websites.md similarity index 97% rename from doc/book/src/cookbook/exposing_websites.md rename to doc/book/cookbook/exposing_websites.md index 0cbb1150..dcb56d36 100644 --- a/doc/book/src/cookbook/exposing_websites.md +++ b/doc/book/cookbook/exposing_websites.md @@ -1,4 +1,7 @@ -# Exposing buckets as websites ++++ +title = "Exposing buckets as websites" +weight = 25 ++++ You can expose your bucket as a website with this simple command: diff --git a/doc/book/src/cookbook/from_source.md b/doc/book/cookbook/from_source.md similarity index 95% rename from doc/book/src/cookbook/from_source.md rename to doc/book/cookbook/from_source.md index 167f01db..84c0d514 100644 --- a/doc/book/src/cookbook/from_source.md +++ b/doc/book/cookbook/from_source.md @@ -1,4 +1,7 @@ -# Compiling Garage from source ++++ +title = "Compiling Garage from source" +weight = 10 ++++ Garage is a standard Rust project. diff --git a/doc/book/src/cookbook/gateways.md b/doc/book/cookbook/gateways.md similarity index 96% rename from doc/book/src/cookbook/gateways.md rename to doc/book/cookbook/gateways.md index f03671a4..0cec4c53 100644 --- a/doc/book/src/cookbook/gateways.md +++ b/doc/book/cookbook/gateways.md @@ -1,4 +1,7 @@ -# Gateways ++++ +title = "Configuring a gateway node" +weight = 20 ++++ Gateways allow you to expose Garage endpoints (S3 API and websites) without storing data on the node. diff --git a/doc/book/src/cookbook/real_world.md b/doc/book/cookbook/real_world.md similarity index 99% rename from doc/book/src/cookbook/real_world.md rename to doc/book/cookbook/real_world.md index 906fe31f..788c80a9 100644 --- a/doc/book/src/cookbook/real_world.md +++ b/doc/book/cookbook/real_world.md @@ -1,4 +1,7 @@ -# Deploying Garage on a real-world cluster ++++ +title = "Deployment on a cluster" +weight = 5 ++++ To run Garage in cluster mode, we recommend having at least 3 nodes. This will allow you to setup Garage for three-way replication of your data, diff --git a/doc/book/src/cookbook/recovering.md b/doc/book/cookbook/recovering.md similarity index 98% rename from doc/book/src/cookbook/recovering.md rename to doc/book/cookbook/recovering.md index 279d574c..d826ca6c 100644 --- a/doc/book/src/cookbook/recovering.md +++ b/doc/book/cookbook/recovering.md @@ -1,4 +1,7 @@ -# Recovering from failures ++++ +title = "Recovering from failures" +weight = 35 ++++ Garage is meant to work on old, second-hand hardware. In particular, this makes it likely that some of your drives will fail, and some manual intervention will be needed. diff --git a/doc/book/src/cookbook/reverse_proxy.md b/doc/book/cookbook/reverse_proxy.md similarity index 98% rename from doc/book/src/cookbook/reverse_proxy.md rename to doc/book/cookbook/reverse_proxy.md index 14633ae8..55a2e9b1 100644 --- a/doc/book/src/cookbook/reverse_proxy.md +++ b/doc/book/cookbook/reverse_proxy.md @@ -1,4 +1,7 @@ -# Configuring a reverse proxy ++++ +title = "Configuring a reverse proxy" +weight = 30 ++++ The main reason to add a reverse proxy in front of Garage is to provide TLS to your users. diff --git a/doc/book/src/cookbook/systemd.md b/doc/book/cookbook/systemd.md similarity index 96% rename from doc/book/src/cookbook/systemd.md rename to doc/book/cookbook/systemd.md index ff3541f5..b271010b 100644 --- a/doc/book/src/cookbook/systemd.md +++ b/doc/book/cookbook/systemd.md @@ -1,4 +1,7 @@ -# Starting Garage with systemd ++++ +title = "Starting Garage with systemd" +weight = 15 ++++ We make some assumptions for this systemd deployment. diff --git a/doc/book/src/design/index.md b/doc/book/design/_index.md similarity index 94% rename from doc/book/src/design/index.md rename to doc/book/design/_index.md index 2e3b5fd9..93b7a27c 100644 --- a/doc/book/src/design/index.md +++ b/doc/book/design/_index.md @@ -1,4 +1,9 @@ -# Design ++++ +title = "Design" +weight = 5 +sort_by = "weight" +template = "documentation.html" ++++ The design section helps you to see Garage from a "big picture" perspective. It will allow you to understand if Garage is a good fit for diff --git a/doc/book/src/design/benchmarks.md b/doc/book/design/benchmarks.md similarity index 100% rename from doc/book/src/design/benchmarks.md rename to doc/book/design/benchmarks.md diff --git a/doc/book/src/design/goals.md b/doc/book/design/goals.md similarity index 98% rename from doc/book/src/design/goals.md rename to doc/book/design/goals.md index 10ef6a8f..dea1d2c8 100644 --- a/doc/book/src/design/goals.md +++ b/doc/book/design/goals.md @@ -1,4 +1,7 @@ -# Goals and use cases ++++ +title = "Goals and use cases" +weight = 5 ++++ ## Goals and non-goals diff --git a/doc/book/src/design/img/endpoint-latency-dc.png b/doc/book/design/img/endpoint-latency-dc.png similarity index 100% rename from doc/book/src/design/img/endpoint-latency-dc.png rename to doc/book/design/img/endpoint-latency-dc.png diff --git a/doc/book/src/design/img/endpoint-latency.png b/doc/book/design/img/endpoint-latency.png similarity index 100% rename from doc/book/src/design/img/endpoint-latency.png rename to doc/book/design/img/endpoint-latency.png diff --git a/doc/book/src/design/internals.md b/doc/book/design/internals.md similarity index 99% rename from doc/book/src/design/internals.md rename to doc/book/design/internals.md index 0b31584c..be531e97 100644 --- a/doc/book/src/design/internals.md +++ b/doc/book/design/internals.md @@ -1,4 +1,7 @@ -# Internals ++++ +title = "Internals" +weight = 20 ++++ ## Overview diff --git a/doc/book/src/design/related_work.md b/doc/book/design/related_work.md similarity index 99% rename from doc/book/src/design/related_work.md rename to doc/book/design/related_work.md index da3f807e..da883c06 100644 --- a/doc/book/src/design/related_work.md +++ b/doc/book/design/related_work.md @@ -1,4 +1,7 @@ -# Related work ++++ +title = "Related work" +weight = 15 ++++ ## Context diff --git a/doc/book/src/development/index.md b/doc/book/development/_index.md similarity index 91% rename from doc/book/src/development/index.md rename to doc/book/development/_index.md index 09147ece..662ec358 100644 --- a/doc/book/src/development/index.md +++ b/doc/book/development/_index.md @@ -1,4 +1,9 @@ -# Development ++++ +title = "Development" +weight = 6 +sort_by = "weight" +template = "documentation.html" ++++ Now that you are a Garage expert, you want to enhance it, you are in the right place! We discuss here how to hack on Garage, how we manage its development, etc. diff --git a/doc/book/src/development/devenv.md b/doc/book/development/devenv.md similarity index 98% rename from doc/book/src/development/devenv.md rename to doc/book/development/devenv.md index 78affa48..c2ef4e7d 100644 --- a/doc/book/src/development/devenv.md +++ b/doc/book/development/devenv.md @@ -1,4 +1,7 @@ -# Setup your development environment ++++ +title = "Setup your environment" +weight = 5 ++++ Depending on your tastes, you can bootstrap your development environment in a traditional Rust way or through Nix. diff --git a/doc/book/src/development/miscellaneous_notes.md b/doc/book/development/miscellaneous_notes.md similarity index 98% rename from doc/book/src/development/miscellaneous_notes.md rename to doc/book/development/miscellaneous_notes.md index 1adc5744..f0083ae5 100644 --- a/doc/book/src/development/miscellaneous_notes.md +++ b/doc/book/development/miscellaneous_notes.md @@ -1,4 +1,7 @@ -# Miscellaneous Notes ++++ +title = "Miscellaneous notes" +weight = 20 ++++ ## Quirks about cargo2nix/rust in Nix diff --git a/doc/book/src/development/release_process.md b/doc/book/development/release_process.md similarity index 99% rename from doc/book/src/development/release_process.md rename to doc/book/development/release_process.md index e6f9e608..e8d29ad8 100644 --- a/doc/book/src/development/release_process.md +++ b/doc/book/development/release_process.md @@ -1,4 +1,7 @@ -# Release process ++++ +title = "Release process" +weight = 15 ++++ Before releasing a new version of Garage, our code pass through a succession of checks and transformations. We define them as our release process. diff --git a/doc/book/src/development/scripts.md b/doc/book/development/scripts.md similarity index 98% rename from doc/book/src/development/scripts.md rename to doc/book/development/scripts.md index 387cb349..25f2ce0e 100644 --- a/doc/book/src/development/scripts.md +++ b/doc/book/development/scripts.md @@ -1,4 +1,7 @@ -# Development scripts ++++ +title = "Development scripts" +weight = 10 ++++ We maintain a `script/` folder that contains some useful script to ease testing on Garage. diff --git a/doc/book/src/quick_start/index.md b/doc/book/quick-start/_index.md similarity index 98% rename from doc/book/src/quick_start/index.md rename to doc/book/quick-start/_index.md index ffb3ebbe..9c3f7315 100644 --- a/doc/book/src/quick_start/index.md +++ b/doc/book/quick-start/_index.md @@ -1,4 +1,9 @@ -# Quick Start ++++ +title = "Quick Start" +weight = 0 +sort_by = "weight" +template = "documentation.html" ++++ Let's start your Garage journey! In this chapter, we explain how to deploy Garage as a single-node server diff --git a/doc/book/src/reference_manual/index.md b/doc/book/reference-manual/_index.md similarity index 74% rename from doc/book/src/reference_manual/index.md rename to doc/book/reference-manual/_index.md index 0d4bd6f3..62716df8 100644 --- a/doc/book/src/reference_manual/index.md +++ b/doc/book/reference-manual/_index.md @@ -1,4 +1,9 @@ -# Reference Manual ++++ +title = "Reference Manual" +weight = 4 +sort_by = "weight" +template = "documentation.html" ++++ A reference manual contains some extensive descriptions about the features and the behaviour of the software. Reading of this chapter is recommended once you have a good knowledge/understanding of Garage. diff --git a/doc/book/src/reference_manual/cli.md b/doc/book/reference-manual/cli.md similarity index 76% rename from doc/book/src/reference_manual/cli.md rename to doc/book/reference-manual/cli.md index 80789b9d..43a0c823 100644 --- a/doc/book/src/reference_manual/cli.md +++ b/doc/book/reference-manual/cli.md @@ -1,4 +1,7 @@ -# Garage CLI ++++ +title = "Garage CLI" +weight = 15 ++++ The Garage CLI is mostly self-documented. Make use of the `help` subcommand and the `--help` flag to discover all available options. diff --git a/doc/book/src/reference_manual/configuration.md b/doc/book/reference-manual/configuration.md similarity index 99% rename from doc/book/src/reference_manual/configuration.md rename to doc/book/reference-manual/configuration.md index 9f88b232..b9c093aa 100644 --- a/doc/book/src/reference_manual/configuration.md +++ b/doc/book/reference-manual/configuration.md @@ -1,4 +1,7 @@ -# Garage configuration file format reference ++++ +title = "Configuration file format" +weight = 5 ++++ Here is an example `garage.toml` configuration file that illustrates all of the possible options: diff --git a/doc/book/src/reference_manual/layout.md b/doc/book/reference-manual/layout.md similarity index 98% rename from doc/book/src/reference_manual/layout.md rename to doc/book/reference-manual/layout.md index 80c71d60..3f818b62 100644 --- a/doc/book/src/reference_manual/layout.md +++ b/doc/book/reference-manual/layout.md @@ -1,4 +1,7 @@ -# Creating and updating a cluster layout ++++ +title = "Cluster layout management" +weight = 10 ++++ The cluster layout in Garage is a table that assigns to each node a role in the cluster. The role of a node in Garage can either be a storage node with diff --git a/doc/book/src/reference_manual/s3_compatibility.md b/doc/book/reference-manual/s3_compatibility.md similarity index 98% rename from doc/book/src/reference_manual/s3_compatibility.md rename to doc/book/reference-manual/s3_compatibility.md index e6f32f6a..fdac06ab 100644 --- a/doc/book/src/reference_manual/s3_compatibility.md +++ b/doc/book/reference-manual/s3_compatibility.md @@ -1,4 +1,7 @@ -# S3 Compatibility status ++++ +title = "S3 Compatibility status" +weight = 20 ++++ ## Global S3 features diff --git a/doc/book/src/SUMMARY.md b/doc/book/src/SUMMARY.md deleted file mode 100644 index d9b76e96..00000000 --- a/doc/book/src/SUMMARY.md +++ /dev/null @@ -1,49 +0,0 @@ -# Summary - -[The Garage Data Store](./intro.md) - -- [Quick start](./quick_start/index.md) - -- [Cookbook](./cookbook/index.md) - - [Multi-node deployment](./cookbook/real_world.md) - - [Building from source](./cookbook/from_source.md) - - [Integration with systemd](./cookbook/systemd.md) - - [Configuring a gateway node](./cookbook/gateways.md) - - [Exposing buckets as websites](./cookbook/exposing_websites.md) - - [Configuring a reverse proxy](./cookbook/reverse_proxy.md) - - [Recovering from failures](./cookbook/recovering.md) - -- [Integrations](./connect/index.md) - - [Apps (Nextcloud, Peertube...)](./connect/apps.md) - - [Websites (Hugo, Jekyll, Publii...)](./connect/websites.md) - - [Repositories (Docker, Nix, Git...)](./connect/repositories.md) - - [CLI tools (rclone, awscli, mc...)](./connect/cli.md) - - [Backups (restic, duplicity...)](./connect/backup.md) - - [Your code (PHP, JS, Go...)](./connect/code.md) - - [FUSE (s3fs, goofys, s3backer...)](./connect/fs.md) - - -- [Reference Manual](./reference_manual/index.md) - - [Garage configuration file](./reference_manual/configuration.md) - - [Cluster layout management](./reference_manual/layout.md) - - [Garage CLI](./reference_manual/cli.md) - - [S3 compatibility status](./reference_manual/s3_compatibility.md) - -- [Design](./design/index.md) - - [Goals and use Cases](./design/goals.md) - - [Benchmarks](./design/benchmarks.md) - - [Related work](./design/related_work.md) - - [Internals](./design/internals.md) - -- [Development](./development/index.md) - - [Setup your environment](./development/devenv.md) - - [Development scripts](./development/scripts.md) - - [Release process](./development/release_process.md) - - [Miscellaneous notes](./development/miscellaneous_notes.md) - -- [Working Documents](./working_documents/index.md) - - [S3 compatibility target](./working_documents/compatibility_target.md) - - [Load balancing data](./working_documents/load_balancing.md) - - [Migrating from 0.5 to 0.6](./working_documents/migration_06.md) - - [Migrating from 0.3 to 0.4](./working_documents/migration_04.md) - - [Design draft](./working_documents/design_draft.md) diff --git a/doc/book/src/cookbook/website.md b/doc/book/src/cookbook/website.md deleted file mode 100644 index 53488ac4..00000000 --- a/doc/book/src/cookbook/website.md +++ /dev/null @@ -1,3 +0,0 @@ -# Hosting a website - -TODO diff --git a/doc/book/src/img/eu-flag-logo.png b/doc/book/src/img/eu-flag-logo.png deleted file mode 100644 index eab9e833..00000000 Binary files a/doc/book/src/img/eu-flag-logo.png and /dev/null differ diff --git a/doc/book/src/img/logo.svg b/doc/book/src/img/logo.svg deleted file mode 100644 index fb02c40b..00000000 --- a/doc/book/src/img/logo.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/book/src/img/map.svg b/doc/book/src/img/map.svg deleted file mode 100644 index 7b38b2d8..00000000 --- a/doc/book/src/img/map.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
France
France
UK
UK
Belgium
Belgium
Switzerland
Switzerland
Germany
Germany
Legend
Legend
A Zone
(multiple servers)
A Zone...
Chunks of data
Chunks of data
Each chunk of data is replicated in 3 zones
Each chunk of data is replicated in 3 zones
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/doc/book/src/img/ngi-logo.png b/doc/book/src/img/ngi-logo.png deleted file mode 100644 index ee0f0c29..00000000 Binary files a/doc/book/src/img/ngi-logo.png and /dev/null differ diff --git a/doc/book/src/img/software.svg b/doc/book/src/img/software.svg deleted file mode 100644 index 178c5810..00000000 --- a/doc/book/src/img/software.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
CyberDuck
CyberDuck
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/doc/book/src/img/usage.svg b/doc/book/src/img/usage.svg deleted file mode 100644 index c861f6ac..00000000 --- a/doc/book/src/img/usage.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
Host a Website
Host a Website
Backup Target
Backup Target
Store Media
Store Media
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/doc/book/src/intro.md b/doc/book/src/intro.md deleted file mode 100644 index 5d6e2cf0..00000000 --- a/doc/book/src/intro.md +++ /dev/null @@ -1,101 +0,0 @@ -

- - Garage's Logo - -

- -

- [ Download - | Git repository - | Matrix channel - | Drone CI - ] -

- - -# Data resiliency for everyone - -Garage is an **open-source** distributed **storage service** you can **self-host** to fullfill many needs: - -

-Summary of the possible usages with a related icon: host a website, store media and backup target -

- -

-⮞ learn more about use cases ⮜ -

- -Garage implements the **[Amazon S3 API](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html)** and thus is already **compatible** with many applications: - -

-Garage is already compatible with Nextcloud, Mastodon, Matrix Synapse, Cyberduck, RClone and Peertube -

- -

-⮞ learn more about integrations ⮜ -

- - -Garage provides **data resiliency** by **replicating** data 3x over **distant** servers: - -

-An example deployment on a map with servers in 5 zones: UK, France, Belgium, Germany and Switzerland. Each chunk of data is replicated in 3 of these 5 zones. -

- -

-⮞ learn more about our design ⮜ -

- -Did you notice that *this website* is hosted and served by Garage? - -## Keeping requirements low - -We worked hard to keep requirements as low as possible as we target the largest possible public. - - * **CPU:** any x86\_64 CPU from the last 10 years, ARMv7 or ARMv8. - * **RAM:** 1GB - * **Disk Space:** at least 16GB - * **Network:** 200ms or less, 50 Mbps or more - * **Heterogeneous hardware:** build a cluster with whatever second-hand machines are available - -*For the network, as we do not use consensus algorithms like Paxos or Raft, Garage is not as latency sensitive.* -*Thanks to Rust and its zero-cost abstractions, we keep CPU and memory low.* - -## Built on the shoulder of giants - - - [Dynamo: Amazon’s Highly Available Key-value Store ](https://dl.acm.org/doi/abs/10.1145/1323293.1294281) by DeCandia et al. - - [Conflict-Free Replicated Data Types](https://link.springer.com/chapter/10.1007/978-3-642-24550-3_29) by Shapiro et al. - - [Maglev: A Fast and Reliable Software Network Load Balancer](https://www.usenix.org/conference/nsdi16/technical-sessions/presentation/eisenbud) by Eisenbud et al. - -## Talks - - - [(fr, 2021-11-13, video) Garage : Mille et une façons de stocker vos données](https://video.tedomum.net/w/moYKcv198dyMrT8hCS5jz9) and [slides (html)](https://rfid.deuxfleurs.fr/presentations/2021-11-13/garage/) - during [RFID#1](https://rfid.deuxfleurs.fr/programme/2021-11-13/) event - - - [(en, 2021-04-28, pdf) Distributed object storage is centralised](https://git.deuxfleurs.fr/Deuxfleurs/garage/raw/commit/b1f60579a13d3c5eba7f74b1775c84639ea9b51a/doc/talks/2021-04-28_spirals-team/talk.pdf) - - - [(fr, 2020-12-02, pdf) Garage : jouer dans la cour des grands quand on est un hébergeur associatif](https://git.deuxfleurs.fr/Deuxfleurs/garage/raw/commit/b1f60579a13d3c5eba7f74b1775c84639ea9b51a/doc/talks/2020-12-02_wide-team/talk.pdf) - -## Community - -If you want to discuss with us, you can join our Matrix channel at [#garage:deuxfleurs.fr](https://matrix.to/#/#garage:deuxfleurs.fr). -Our code repository and issue tracker, which is the place where you should report bugs, is managed on [Deuxfleurs' Gitea](https://git.deuxfleurs.fr/Deuxfleurs/garage). - -## License - -Garage's source code, is released under the [AGPL v3 License](https://www.gnu.org/licenses/agpl-3.0.en.html). -Please note that if you patch Garage and then use it to provide any service over a network, you must share your code! - -# Sponsors and funding - -The Deuxfleurs association has received a grant from [NGI POINTER](https://pointer.ngi.eu/), to fund 3 people working on Garage full-time for a year: from October 2021 to September 2022. - -
- - NGI Pointer logo - - - EU flag logo - -
- -_This project has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement N° 871528._ diff --git a/doc/book/src/working_documents/index.md b/doc/book/working-documents/_index.md similarity index 83% rename from doc/book/src/working_documents/index.md rename to doc/book/working-documents/_index.md index a9e7f899..9871d206 100644 --- a/doc/book/src/working_documents/index.md +++ b/doc/book/working-documents/_index.md @@ -1,4 +1,9 @@ -# Working Documents ++++ +title = "Working Documents" +weight = 7 +sort_by = "weight" +template = "documentation.html" ++++ Working documents are documents that reflect the fact that Garage is a software that evolves quickly. They are a way to communicate our ideas, our changes, and so on before or while we are implementing them in Garage. diff --git a/doc/book/src/working_documents/compatibility_target.md b/doc/book/working-documents/compatibility_target.md similarity index 98% rename from doc/book/src/working_documents/compatibility_target.md rename to doc/book/working-documents/compatibility_target.md index 3f121e47..836f3e30 100644 --- a/doc/book/src/working_documents/compatibility_target.md +++ b/doc/book/working-documents/compatibility_target.md @@ -1,4 +1,7 @@ -# S3 compatibility target ++++ +title = "S3 compatibility target" +weight = 5 ++++ If there is a specific S3 functionnality you have a need for, feel free to open a PR to put the corresponding endpoints higher in the list. Please explain diff --git a/doc/book/src/working_documents/design_draft.md b/doc/book/working-documents/design_draft.md similarity index 99% rename from doc/book/src/working_documents/design_draft.md rename to doc/book/working-documents/design_draft.md index 06ed46bd..830496ee 100644 --- a/doc/book/src/working_documents/design_draft.md +++ b/doc/book/working-documents/design_draft.md @@ -1,4 +1,7 @@ -# Design draft ++++ +title = "Design draft" +weight = 25 ++++ **WARNING: this documentation is a design draft which was written before Garage's actual implementation. The general principle are similar, but details have not been updated.** diff --git a/doc/book/src/working_documents/load_balancing.md b/doc/book/working-documents/load_balancing.md similarity index 99% rename from doc/book/src/working_documents/load_balancing.md rename to doc/book/working-documents/load_balancing.md index 99271add..87298ae6 100644 --- a/doc/book/src/working_documents/load_balancing.md +++ b/doc/book/working-documents/load_balancing.md @@ -1,4 +1,7 @@ -# Load Balancing Data (planned for version 0.2) ++++ +title = "Load balancing data" +weight = 10 ++++ **This is being yet improved in release 0.5. The working document has not been updated yet, it still only applies to Garage 0.2 through 0.4.** diff --git a/doc/book/src/working_documents/migration_04.md b/doc/book/working-documents/migration_04.md similarity index 98% rename from doc/book/src/working_documents/migration_04.md rename to doc/book/working-documents/migration_04.md index 05e7eafd..d9d3ede1 100644 --- a/doc/book/src/working_documents/migration_04.md +++ b/doc/book/working-documents/migration_04.md @@ -1,4 +1,7 @@ -# Migrating from 0.3 to 0.4 ++++ +title = "Migrating from 0.3 to 0.4" +weight = 20 ++++ **Migrating from 0.3 to 0.4 is unsupported. This document is only intended to document the process internally for the Deuxfleurs cluster where we have to do diff --git a/doc/book/src/working_documents/migration_06.md b/doc/book/working-documents/migration_06.md similarity index 97% rename from doc/book/src/working_documents/migration_06.md rename to doc/book/working-documents/migration_06.md index 687f7458..28e2c32e 100644 --- a/doc/book/src/working_documents/migration_06.md +++ b/doc/book/working-documents/migration_06.md @@ -1,4 +1,7 @@ -# Migrating from 0.5 to 0.6 ++++ +title = "Migrating from 0.5 to 0.6" +weight = 15 ++++ **This guide explains how to migrate to 0.6 if you have an existing 0.5 cluster. We don't recommend trying to migrate directly from 0.4 or older to 0.6.**