diff options
Diffstat (limited to 'doc/book/connect')
-rw-r--r-- | doc/book/connect/_index.md | 3 | ||||
-rw-r--r-- | doc/book/connect/apps/index.md | 19 | ||||
-rw-r--r-- | doc/book/connect/backup.md | 2 | ||||
-rw-r--r-- | doc/book/connect/code.md | 82 | ||||
-rw-r--r-- | doc/book/connect/repositories.md | 4 |
5 files changed, 18 insertions, 92 deletions
diff --git a/doc/book/connect/_index.md b/doc/book/connect/_index.md index 07c4e31f..ca44ac17 100644 --- a/doc/book/connect/_index.md +++ b/doc/book/connect/_index.md @@ -1,5 +1,5 @@ +++ -title = "Integrations" +title = "Existing integrations" weight = 3 sort_by = "weight" template = "documentation.html" @@ -14,7 +14,6 @@ In particular, you will find here instructions to connect it with: - [Applications](@/documentation/connect/apps/index.md) - [Website hosting](@/documentation/connect/websites.md) - [Software repositories](@/documentation/connect/repositories.md) - - [Your own code](@/documentation/connect/code.md) - [FUSE](@/documentation/connect/fs.md) ### Generic instructions diff --git a/doc/book/connect/apps/index.md b/doc/book/connect/apps/index.md index 05e7cad9..78d9310d 100644 --- a/doc/book/connect/apps/index.md +++ b/doc/book/connect/apps/index.md @@ -8,7 +8,7 @@ In this section, we cover the following web applications: | Name | Status | Note | |------|--------|------| | [Nextcloud](#nextcloud) | ✅ | Both Primary Storage and External Storage are supported | -| [Peertube](#peertube) | ✅ | Must be configured with the website endpoint | +| [Peertube](#peertube) | ✅ | Supported with the website endpoint, proxifying private videos unsupported | | [Mastodon](#mastodon) | ✅ | Natively supported | | [Matrix](#matrix) | ✅ | Tested with `synapse-s3-storage-provider` | | [Pixelfed](#pixelfed) | ❓ | Not yet tested | @@ -36,7 +36,7 @@ Second, we suppose you have created a key and a bucket. As a reminder, you can create a key for your nextcloud instance as follow: ```bash -garage key new --name nextcloud-key +garage key create nextcloud-key ``` Keep the Key ID and the Secret key in a pad, they will be needed later. @@ -128,13 +128,17 @@ In other words, Peertube is only responsible of the "control plane" and offload In return, this system is a bit harder to configure. We show how it is still possible to configure Garage with Peertube, allowing you to spread the load and the bandwidth usage on the Garage cluster. +Starting from version 5.0, Peertube also supports improving the security for private videos by not exposing them directly +but relying on a single control point in the Peertube instance. This is based on S3 per-object and prefix ACL, which are not currently supported +in Garage, so this feature is unsupported. While this technically impedes security for private videos, it is not a blocking issue and could be +a reasonable trade-off for some instances. ### Create resources in Garage Create a key for Peertube: ```bash -garage key new --name peertube-key +garage key create peertube-key ``` Keep the Key ID and the Secret key in a pad, they will be needed later. @@ -195,6 +199,11 @@ object_storage: max_upload_part: 2GB + proxy: + # You may enable this feature, yet it will not provide any security benefit, so + # you should rather benefit from Garage public endpoint for all videos + proxify_private_files: false + streaming_playlists: bucket_name: 'peertube-playlist' @@ -243,7 +252,7 @@ As such, your Garage cluster should be configured appropriately for good perform This is the usual Garage setup: ```bash -garage key new --name mastodon-key +garage key create mastodon-key garage bucket create mastodon-data garage bucket allow mastodon-data --read --write --key mastodon-key ``` @@ -369,7 +378,7 @@ Supposing you have a working synapse installation, you can add the module with p Now create a bucket and a key for your matrix instance (note your Key ID and Secret Key somewhere, they will be needed later): ```bash -garage key new --name matrix-key +garage key create matrix-key garage bucket create matrix garage bucket allow matrix --read --write --key matrix-key ``` diff --git a/doc/book/connect/backup.md b/doc/book/connect/backup.md index 48a2d7be..919e78c3 100644 --- a/doc/book/connect/backup.md +++ b/doc/book/connect/backup.md @@ -20,7 +20,7 @@ If you still want to use Borg, you can use it with `rclone mount`. Create your key and bucket: ```bash -garage key new my-key +garage key create my-key garage bucket create backup garage bucket allow backup --read --write --key my-key ``` diff --git a/doc/book/connect/code.md b/doc/book/connect/code.md deleted file mode 100644 index 4b2c4cb0..00000000 --- a/doc/book/connect/code.md +++ /dev/null @@ -1,82 +0,0 @@ -+++ -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. - -The S3 API that Garage uses is a standard REST API, so as long as you can make HTTP requests, -you can query it. You can check the [S3 REST API Reference](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_Simple_Storage_Service.html) from Amazon to learn more. - -Developping your own wrapper around the REST API is time consuming and complicated. -Instead, there are some libraries already avalaible. - -Some of them are maintained by Amazon, some by Minio, others by the community. - -## PHP - - - Amazon aws-sdk-php - - [Installation](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html) - - [Reference](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html) - - [Example](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-examples-creating-buckets.html) - -## Javascript - - - Minio SDK - - [Reference](https://docs.min.io/docs/javascript-client-api-reference.html) - - - Amazon aws-sdk-js - - [Installation](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started.html) - - [Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html) - - [Example](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/s3-example-creating-buckets.html) - -## Golang - - - Minio minio-go-sdk - - [Reference](https://docs.min.io/docs/golang-client-api-reference.html) - - - Amazon aws-sdk-go-v2 - - [Installation](https://aws.github.io/aws-sdk-go-v2/docs/getting-started/) - - [Reference](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/s3) - - [Example](https://aws.github.io/aws-sdk-go-v2/docs/code-examples/s3/putobject/) - -## Python - - - Minio SDK - - [Reference](https://docs.min.io/docs/python-client-api-reference.html) - - - Amazon boto3 - - [Installation](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) - - [Reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html) - - [Example](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html) - -## Java - - - Minio SDK - - [Reference](https://docs.min.io/docs/java-client-api-reference.html) - - - Amazon aws-sdk-java - - [Installation](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html) - - [Reference](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html) - - [Example](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-objects.html) - -## Rust - - - Amazon aws-rust-sdk - - [Github](https://github.com/awslabs/aws-sdk-rust) - -## .NET - - - Minio SDK - - [Reference](https://docs.min.io/docs/dotnet-client-api-reference.html) - - - Amazon aws-dotnet-sdk - -## C++ - - - Amazon aws-cpp-sdk - -## Haskell - - - Minio SDK - - [Reference](https://docs.min.io/docs/haskell-client-api-reference.html) diff --git a/doc/book/connect/repositories.md b/doc/book/connect/repositories.md index 4b14bb46..66365d64 100644 --- a/doc/book/connect/repositories.md +++ b/doc/book/connect/repositories.md @@ -23,7 +23,7 @@ You can configure a different target for each data type (check `[lfs]` and `[att Let's start by creating a key and a bucket (your key id and secret will be needed later, keep them somewhere): ```bash -garage key new --name gitea-key +garage key create gitea-key garage bucket create gitea garage bucket allow gitea --read --write --key gitea-key ``` @@ -118,7 +118,7 @@ through another support, like a git repository. As a first step, we will need to create a bucket on Garage and enabling website access on it: ```bash -garage key new --name nix-key +garage key create nix-key garage bucket create nix.example.com garage bucket allow nix.example.com --read --write --key nix-key garage bucket website nix.example.com --allow |