import { execSync } from 'node:child_process'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const root = path.dirname(fileURLToPath(import.meta.url)); function dockerGateway() { try { const out = execSync("ip -4 route show default dev docker0 2>/dev/null | awk '{print $3}'", { encoding: 'utf8', }).trim(); if (out) return out; } catch { // fall through } return '172.17.0.1'; } export const HOST = process.env.S3_BACKUP_HOST || dockerGateway(); export const BIND = process.env.S3_BACKUP_BIND || '0.0.0.0'; export const PORT = Number(process.env.S3_BACKUP_PORT || 19443); export const BUCKET = process.env.S3_BACKUP_BUCKET || 'sqlbackups'; export const ACCESS_KEY = process.env.S3_BACKUP_ACCESS_KEY || 'jtlsrv-s3'; export const SECRET_KEY = process.env.S3_BACKUP_SECRET_KEY || 'jtlsrv-s3-secret'; export const REGION = process.env.S3_BACKUP_REGION || 'us-east-1'; export const DATA_DIR = path.join(root, 'data', BUCKET); export const TMP_DIR = path.join(root, 'tmp'); export const CERTS_DIR = path.join(root, 'certs'); export const CA_CERT = path.join(CERTS_DIR, 'ca.pem'); export const SERVER_KEY = path.join(CERTS_DIR, 'server-key.pem'); export const SERVER_CERT = path.join(CERTS_DIR, 'server-cert.pem'); export function s3BaseUrl() { return `s3://${HOST}:${PORT}/${BUCKET}`; } export function httpsBaseUrl() { return `https://${HOST}:${PORT}`; }