From a8ef761731473ef073c60a1e924eb5b58a022d98 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Mon, 24 Jan 2022 12:37:12 +0100 Subject: [PATCH] Add docker registry --- doc/book/src/connect/apps.md | 34 +++++++++------- doc/book/src/connect/repositories.md | 59 +++++++++++++++++++++++----- 2 files changed, 68 insertions(+), 25 deletions(-) diff --git a/doc/book/src/connect/apps.md b/doc/book/src/connect/apps.md index c9bba409..f583d1e7 100644 --- a/doc/book/src/connect/apps.md +++ b/doc/book/src/connect/apps.md @@ -5,15 +5,16 @@ In this section, we cover the following web applications: | Name | Status | Note | |------|--------|------| | [Nextcloud](#nextcloud) | ✅ | Both Primary Storage and External Storage are supported | -| [Peertube](#peertube) | ✅ | `base_url` must be set to the website endpoint | -| [Mastodon](#mastodon) | ❓ | | +| [Peertube](#peertube) | ✅ | Must be configured with the website endpoint | +| [Mastodon](#mastodon) | ❓ | Not yet tested | | [Matrix](#matrix) | ✅ | Tested with `synapse-s3-storage-provider` | -| [Pixelfed](#pixelfed) | ❓ | | -| [Pleroma](#pleroma) | ❓ | | -| [Lemmy](#lemmy) | ❓ | | -| [Funkwhale](#funkwhale) | ❓ | | -| [Misskey](#misskey) | ❓ | | -| [Prismo](#prismo) | ❓ | | +| [Pixelfed](#pixelfed) | ❓ | Not yet tested | +| [Pleroma](#pleroma) | ❓ | Not yet tested | +| [Lemmy](#lemmy) | ❓ | Not yet tested | +| [Funkwhale](#funkwhale) | ❓ | Not yet tested | +| [Misskey](#misskey) | ❓ | Not yet tested | +| [Prismo](#prismo) | ❓ | Not yet tested | +| [Owncloud OCIS](#owncloud-infinite-scale-ocis) | ❓| Not yet tested | ## Nextcloud @@ -334,31 +335,34 @@ And add a new line. For example, to run it every 10 minutes: ## Pixelfed -https://docs.pixelfed.org/technical-documentation/env.html#filesystem +[Pixelfed Technical Documentation > Configuration](https://docs.pixelfed.org/technical-documentation/env.html#filesystem) ## Pleroma -https://docs-develop.pleroma.social/backend/configuration/cheatsheet/#pleromauploaderss3 +[Pleroma Documentation > Pleroma.Uploaders.S3](https://docs-develop.pleroma.social/backend/configuration/cheatsheet/#pleromauploaderss3) ## Lemmy -via pict-rs -https://git.asonix.dog/asonix/pict-rs/commit/f9f4fc63d670f357c93f24147c2ee3e1278e2d97 +Lemmy uses pict-rs that [supports S3 backends](https://git.asonix.dog/asonix/pict-rs/commit/f9f4fc63d670f357c93f24147c2ee3e1278e2d97) ## Funkwhale -https://docs.funkwhale.audio/admin/configuration.html#s3-storage +[Funkwhale Documentation > S3 Storage](https://docs.funkwhale.audio/admin/configuration.html#s3-storage) ## Misskey -https://github.com/misskey-dev/misskey/commit/9d944243a3a59e8880a360cbfe30fd5a3ec8d52d +[Misskey Github > commit 9d94424](https://github.com/misskey-dev/misskey/commit/9d944243a3a59e8880a360cbfe30fd5a3ec8d52d) ## Prismo -https://gitlab.com/prismosuite/prismo/-/blob/dev/.env.production.sample#L26-33 +[Prismo Gitlab > .env.production.sample](https://gitlab.com/prismosuite/prismo/-/blob/dev/.env.production.sample#L26-33) ## Owncloud Infinite Scale (ocis) +OCIS could be compatible with S3: + - [Deploying OCIS with S3](https://owncloud.dev/ocis/deployment/ocis_s3/) + - [OCIS 1.7 release note](https://central.owncloud.org/t/owncloud-infinite-scale-tech-preview-1-7-enables-s3-storage/32514/3) + ## Unsupported - Mobilizon: No S3 integration diff --git a/doc/book/src/connect/repositories.md b/doc/book/src/connect/repositories.md index 8a3dce14..0885dd9b 100644 --- a/doc/book/src/connect/repositories.md +++ b/doc/book/src/connect/repositories.md @@ -3,6 +3,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. +| Name | Status | Note | +|------|--------|------| +| [Gitea](#gitea) | ✅ | | +| [Docker](#generic-static-site-generator) | ✅ | Requires garage >= v0.6.0 | +| [Nix](#generic-static-site-generator) | ✅ | | +| [Gitlab](#gitlab) | ❓ | Not yet tested | + + + ## Gitea You can use Garage with Gitea to store your [git LFS](https://git-lfs.github.com/) data, your users' avatar, and their attachements. @@ -52,18 +61,42 @@ $ aws s3 ls s3://gitea/avatars/ *External link:* [Gitea Documentation > Configuration Cheat Sheet](https://docs.gitea.io/en-us/config-cheat-sheet/) -## Gitlab - -*External link:* [Gitlab Documentation > Object storage](https://docs.gitlab.com/ee/administration/object_storage.html) - - -## Private NPM Registry (Verdacio) - -*External link:* [Verdaccio Github Repository > aws-storage plugin](https://github.com/verdaccio/verdaccio/tree/master/packages/plugins/aws-storage) - ## Docker -Not yet compatible, follow [#103](https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/103). +Create a bucket and a key for your docker registry, then create `config.yml` with the following content: + +```yml +version: 0.1 +http: + addr: 0.0.0.0:5000 + secret: asecretforlocaldevelopment + debug: + addr: localhost:5001 +storage: + s3: + accesskey: GKxxxx + secretkey: yyyyy + region: garage + regionendpoint: http://localhost:3900 + bucket: docker + secure: false + v4auth: true + rootdirectory: / +``` + +Replace the `accesskey`, `secretkey`, `bucket`, `regionendpoint` and `secure` values by the one fitting your deployment. + +Then simply run the docker registry: + +```bash +docker run \ + --net=host \ + -v `pwd`/config.yml:/etc/docker/registry/config.yml \ + registry:2 +``` + +*We started a plain text registry but docker clients require encrypted registries. You must either [setup TLS](https://docs.docker.com/registry/deploying/#run-an-externally-accessible-registry) on your registry or add `--insecure-registry=localhost:5000` to your docker daemon parameters.* + *External link:* [Docker Documentation > Registry storage drivers > S3 storage driver](https://docs.docker.com/registry/storage-drivers/s3/) @@ -167,3 +200,9 @@ on the binary cache, the client will download the result from the cache instead Channels additionnaly serve Nix definitions, ie. a `.nix` file referencing all the derivations you want to serve. + +## Gitlab + +*External link:* [Gitlab Documentation > Object storage](https://docs.gitlab.com/ee/administration/object_storage.html) + +