From e98c0af8cac52c17f18cab576cb553ed32e56d4a Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Mon, 10 Nov 2025 21:04:08 +0100 Subject: [PATCH] feat(repositories): add google cloud storage support --- .../app/components/create-repository-form.tsx | 49 +++++++++++++++++++ .../client/app/components/repository-icon.tsx | 2 + .../repositories/routes/repositories.tsx | 1 + .../repositories/repositories.service.ts | 3 ++ apps/server/src/utils/restic.ts | 10 ++++ packages/schemas/src/restic.ts | 10 +++- 6 files changed, 74 insertions(+), 1 deletion(-) diff --git a/apps/client/app/components/create-repository-form.tsx b/apps/client/app/components/create-repository-form.tsx index 3153af1..03891b1 100644 --- a/apps/client/app/components/create-repository-form.tsx +++ b/apps/client/app/components/create-repository-form.tsx @@ -30,6 +30,7 @@ type Props = { const defaultValuesForType = { local: { backend: "local" as const, compressionMode: "auto" as const }, s3: { backend: "s3" as const, compressionMode: "auto" as const }, + gcs: { backend: "gcs" as const, compressionMode: "auto" as const }, }; export const CreateRepositoryForm = ({ @@ -100,6 +101,7 @@ export const CreateRepositoryForm = ({ Local S3 + Google Cloud Storage Choose the storage backend for this repository. @@ -195,6 +197,53 @@ export const CreateRepositoryForm = ({ )} + {watchedBackend === "gcs" && ( + <> + ( + + Bucket + + + + GCS bucket name for storing backups. + + + )} + /> + ( + + Project ID + + + + Google Cloud project ID. + + + )} + /> + ( + + Service Account JSON + + + + Service account JSON credentials for authentication. + + + )} + /> + + )} + {mode === "update" && (