From 3a5447d5215995389c5d05fdcd295d0d7d393615 Mon Sep 17 00:00:00 2001 From: Rozenrod Date: Wed, 25 Mar 2026 01:12:09 +0200 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B8=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=BC=D0=B8=D0=BB=D0=BA=D0=B0?= =?UTF-8?q?,=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5=D0=B7=D0=B5=D1=80=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D1=97=20=D0=BA=D0=BE=D0=BF=D1=96=D1=96=20=D0=B2=20?= =?UTF-8?q?S3=20=D1=85=D0=BC=D0=B0=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cron/tasks/backup.js | 15 ++++++++------- docker-compose.yml | 5 +++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cron/tasks/backup.js b/cron/tasks/backup.js index 64337a4..af38664 100644 --- a/cron/tasks/backup.js +++ b/cron/tasks/backup.js @@ -13,10 +13,10 @@ const bot = new TelegramBot(TOKEN, { polling: false }); // Настройки S3 / R2 const s3Client = new S3Client({ region: "auto", - endpoint: process.env.S3_ENDPOINT, // Напр: https://.r2.cloudflarestorage.com + endpoint: process.env.S3_ENDPOINT, credentials: { - accessKeyId: process.env.S3_ACCESS_KEY_ID, - secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, + accessKeyId: process.env.S3_ACCESS_KEY_ID || "", + secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || "" }, }); @@ -30,17 +30,18 @@ class Backup { const fileName = `backup_${new Date().toISOString().replace(/[:.]/g, "-")}.sqlite`; + const fileBuffer = fs.readFileSync(FILE); + // 1. Отправка в Telegram - await bot.sendDocument(CHAT_ID, fs.createReadStream(FILE), { + await bot.sendDocument(CHAT_ID, fileBuffer, { caption: `📦 Резервна копія бази даних`, }); console.log("✅ Telegram: успішно надіслано"); - // 2. Отправка в S3 (R2) - const fileBuffer = fs.readFileSync(FILE); + // 2. Отправка в S3 (R2) const uploadParams = { Bucket: process.env.S3_BUCKET_NAME, - Key: `sheep-service.com/database/${fileName}`, // Путь внутри бакета + Key: `sheep-service.com/database/${fileName}`, Body: fileBuffer, ContentType: "application/x-sqlite3", }; diff --git a/docker-compose.yml b/docker-compose.yml index 57e7d7c..9e874e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -96,6 +96,11 @@ services: - VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} - VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} - DOMAIN=${DOMAIN} + + - S3_ENDPOINT=${S3_ENDPOINT} + - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID} + - S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY} + - S3_BUCKET_NAME=${S3_BUCKET_NAME} networks: - network