metatron-open-seo/self-host/scripts/generate-selfhost-secrets.mjs
2026-03-04 14:45:36 -05:00

20 lines
688 B
JavaScript

import { generateKeyPairSync, randomBytes } from "node:crypto";
function escapeForEnv(value) {
return value.replace(/\r?\n/g, "\\n");
}
const betterAuthSecret = randomBytes(32).toString("base64");
const { privateKey, publicKey } = generateKeyPairSync("rsa", {
modulusLength: 2048,
publicKeyEncoding: { type: "spki", format: "pem" },
privateKeyEncoding: { type: "pkcs8", format: "pem" },
});
console.log(
"# Copy these lines into .env.local\n# See SELF_HOSTING_DOCKER.md for setup instructions",
);
console.log(`BETTER_AUTH_SECRET=${betterAuthSecret}`);
console.log(`JWT_PRIVATE_KEY="${escapeForEnv(privateKey)}"`);
console.log(`JWT_PUBLIC_KEY="${escapeForEnv(publicKey)}"`);