diff --git a/README.md b/README.md index a959bdd..97cbfa7 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ Quickstart: 1. `cp .env.example .env` 2. Set `DATAFORSEO_API_KEY` in `.env` -3. `docker compose up --build` +3. `docker compose up` 4. Open `http://localhost:3001` For runtime details, caveats, and troubleshooting, see [`SELF_HOSTING_DOCKER.md`](./SELF_HOSTING_DOCKER.md). diff --git a/SELF_HOSTING_DOCKER.md b/SELF_HOSTING_DOCKER.md index 78825e4..543cc87 100644 --- a/SELF_HOSTING_DOCKER.md +++ b/SELF_HOSTING_DOCKER.md @@ -39,7 +39,7 @@ Optional: ## 2) Start OpenSEO ```bash -docker compose up --build +docker compose up ``` URL: @@ -57,13 +57,19 @@ Boot behavior: - OpenSEO env values seem stale: restart OpenSEO: ```bash -docker compose up -d --build open-seo +docker compose up -d open-seo ``` - If migrations fail on first run, rebuild and retry: ```bash docker compose down +docker compose up +``` + +If you update dependencies or Docker build config, force a rebuild: + +```bash docker compose up --build ``` diff --git a/package.json b/package.json index b55f8d8..27dbb15 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,6 @@ "db:migrate:prod": "npx everyapp app remote-d1-shell -- drizzle-kit migrate --config=drizzle-prod.config.ts", "db:studio:local": "drizzle-kit studio", "db:studio:prod": "npx everyapp app remote-d1-shell -- drizzle-kit studio --config=drizzle-prod.config.ts", - "docker:up": "docker compose up --build", - "docker:down": "docker compose down", - "docker:generate-secrets": "node ./self-host/scripts/generate-selfhost-secrets.mjs", "knip": "knip", "ci": "prettier --check . && knip && tsc --noEmit && oxlint ." }, diff --git a/self-host/scripts/generate-selfhost-secrets.mjs b/self-host/scripts/generate-selfhost-secrets.mjs deleted file mode 100644 index f771af0..0000000 --- a/self-host/scripts/generate-selfhost-secrets.mjs +++ /dev/null @@ -1,19 +0,0 @@ -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\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)}"`);