From 54068d526935b4d7328d3efb87100240d089a3bd Mon Sep 17 00:00:00 2001 From: Nico <47644445+nicotsx@users.noreply.github.com> Date: Fri, 26 Dec 2025 21:02:16 +0100 Subject: [PATCH] feat: allow changing the hostname (restic host) (#240) --- app/server/core/config.ts | 2 ++ app/server/utils/restic.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/app/server/core/config.ts b/app/server/core/config.ts index 81320dbb..f4ca6f9e 100644 --- a/app/server/core/config.ts +++ b/app/server/core/config.ts @@ -5,11 +5,13 @@ const envSchema = type({ NODE_ENV: type.enumerated("development", "production", "test").default("production"), SERVER_IP: 'string = "localhost"', SERVER_IDLE_TIMEOUT: 'string.integer.parse = "60"', + RESTIC_HOSTNAME: "string = 'zerobyte'", }).pipe((s) => ({ __prod__: s.NODE_ENV === "production", environment: s.NODE_ENV, serverIp: s.SERVER_IP, serverIdleTimeout: s.SERVER_IDLE_TIMEOUT, + resticHostname: s.RESTIC_HOSTNAME, })); const parseConfig = (env: unknown) => { diff --git a/app/server/utils/restic.ts b/app/server/utils/restic.ts index fdb35950..ec975ff5 100644 --- a/app/server/utils/restic.ts +++ b/app/server/utils/restic.ts @@ -5,6 +5,7 @@ import os from "node:os"; import { throttle } from "es-toolkit"; import { type } from "arktype"; import { REPOSITORY_BASE, RESTIC_PASS_FILE, DEFAULT_EXCLUDES } from "../core/constants"; +import { config as appConfig } from "../core/config"; import { logger } from "./logger"; import { cryptoUtils } from "./crypto"; import type { RetentionPolicy } from "../modules/backups/backups.dto"; @@ -262,6 +263,10 @@ const backup = async ( args.push("--one-file-system"); } + if (appConfig.resticHostname) { + args.push("--host", appConfig.resticHostname); + } + if (options?.tags && options.tags.length > 0) { for (const tag of options.tags) { args.push("--tag", tag);