aboutsummaryrefslogtreecommitdiff
path: root/doc/book/src/cookbook/from_source.md
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-05-31 17:13:36 +0200
committerAlex Auvolat <alex@adnab.me>2021-05-31 17:13:36 +0200
commitd76a8576f440a90d87fbeaabc80131eadafc88b7 (patch)
tree161128350c0b1af8415df195ffb001bf2a372e23 /doc/book/src/cookbook/from_source.md
parent289521886bc5819790c92da6cdf24898aacbaf58 (diff)
downloadgarage-d76a8576f440a90d87fbeaabc80131eadafc88b7.tar.gz
garage-d76a8576f440a90d87fbeaabc80131eadafc88b7.zip
Reorganize documentation
Diffstat (limited to 'doc/book/src/cookbook/from_source.md')
-rw-r--r--doc/book/src/cookbook/from_source.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/doc/book/src/cookbook/from_source.md b/doc/book/src/cookbook/from_source.md
new file mode 100644
index 00000000..167f01db
--- /dev/null
+++ b/doc/book/src/cookbook/from_source.md
@@ -0,0 +1,51 @@
+# Compiling Garage from source
+
+
+Garage is a standard Rust project.
+First, you need `rust` and `cargo`.
+For instance on Debian:
+
+```bash
+sudo apt-get update
+sudo apt-get install -y rustc cargo
+```
+
+You can also use [Rustup](https://rustup.rs/) to setup a Rust toolchain easily.
+
+## Using source from `crates.io`
+
+Garage's source code is published on `crates.io`, Rust's official package repository.
+This means you can simply ask `cargo` to download and build this source code for you:
+
+```bash
+cargo install garage
+```
+
+That's all, `garage` should be in `$HOME/.cargo/bin`.
+
+You can add this folder to your `$PATH` or copy the binary somewhere else on your system.
+For instance:
+
+```bash
+sudo cp $HOME/.cargo/bin/garage /usr/local/bin/garage
+```
+
+
+## Using source from the Gitea repository
+
+The primary location for Garage's source code is the
+[Gitea repository](https://git.deuxfleurs.fr/Deuxfleurs/garage).
+
+Clone the repository and build Garage with the following commands:
+
+```bash
+git clone https://git.deuxfleurs.fr/Deuxfleurs/garage.git
+cd garage
+cargo build
+```
+
+Be careful, as this will make a debug build of Garage, which will be extremely slow!
+To make a release build, invoke `cargo build --release` (this takes much longer).
+
+The binaries built this way are found in `target/{debug,release}/garage`.
+