chore: repo cleanup and prod sync tooling
- Remove stale deploy/docker-entrypoint.sh (Dockerfile copies root version) - Remove scripts/seed.ts (superseded by seed.mjs) - Add src/app/error.tsx and global-error.tsx (untracked error boundaries) - Gitignore deploy/.prod/ for synced production configs - Add scripts/sync-prod.ps1 to pull compose/env/Caddyfile from valhalla - Add scripts/apply-compose.ps1 to push compose changes and restart services
This commit is contained in:
@@ -49,5 +49,8 @@ tests/.auth/
|
|||||||
# Backups
|
# Backups
|
||||||
deploy/backups/data/
|
deploy/backups/data/
|
||||||
|
|
||||||
|
# Production configs synced from server — never commit
|
||||||
|
deploy/.prod/
|
||||||
|
|
||||||
# Design handoff bundle (reference only, not committed)
|
# Design handoff bundle (reference only, not committed)
|
||||||
.design-tmp/
|
.design-tmp/
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ "${RUN_MIGRATIONS:-true}" = "true" ]; then
|
|
||||||
echo "running migrations..."
|
|
||||||
node /app/scripts/migrate.mjs
|
|
||||||
else
|
|
||||||
echo "skipping migrations (RUN_MIGRATIONS=$RUN_MIGRATIONS)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec node /app/server.js
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
import postgres from "postgres";
|
|
||||||
import { drizzle } from "drizzle-orm/postgres-js";
|
|
||||||
import { households } from "@/modules/_core/schema";
|
|
||||||
import { ensureDefaultCalendars } from "@/modules/calendar/server/defaults";
|
|
||||||
import { ensureDefaultLists } from "@/modules/lists/server/defaults";
|
|
||||||
|
|
||||||
const client = postgres(process.env["DATABASE_URL"]!);
|
|
||||||
const db = drizzle(client);
|
|
||||||
|
|
||||||
async function seed() {
|
|
||||||
const [existing] = await db.select().from(households).limit(1);
|
|
||||||
if (existing) {
|
|
||||||
console.log(`Household already exists ("${existing.name}"), skipping.`);
|
|
||||||
} else {
|
|
||||||
await db.insert(households).values({ name: "Home" });
|
|
||||||
console.log('Seeded household "Home".');
|
|
||||||
}
|
|
||||||
|
|
||||||
await ensureDefaultCalendars();
|
|
||||||
console.log("Ensured default calendars.");
|
|
||||||
await ensureDefaultLists();
|
|
||||||
console.log("Ensured default lists.");
|
|
||||||
await client.end();
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
seed().catch((err) => {
|
|
||||||
console.error(err);
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
|
export default function Error({
|
||||||
|
error,
|
||||||
|
reset,
|
||||||
|
}: {
|
||||||
|
error: Error & { digest?: string };
|
||||||
|
reset: () => void;
|
||||||
|
}) {
|
||||||
|
useEffect(() => {
|
||||||
|
console.error(error);
|
||||||
|
}, [error]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="flex min-h-screen flex-col items-center justify-center gap-4 p-8">
|
||||||
|
<h2 className="text-xl font-semibold">Something went wrong</h2>
|
||||||
|
<button
|
||||||
|
onClick={reset}
|
||||||
|
className="rounded-md bg-primary px-4 py-2 text-sm text-primary-foreground hover:bg-primary/90"
|
||||||
|
>
|
||||||
|
Try again
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
|
export default function GlobalError({
|
||||||
|
error,
|
||||||
|
reset,
|
||||||
|
}: {
|
||||||
|
error: Error & { digest?: string };
|
||||||
|
reset: () => void;
|
||||||
|
}) {
|
||||||
|
useEffect(() => {
|
||||||
|
console.error(error);
|
||||||
|
}, [error]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<html>
|
||||||
|
<body className="flex min-h-screen flex-col items-center justify-center gap-4 p-8">
|
||||||
|
<h2 className="text-xl font-semibold">Something went wrong</h2>
|
||||||
|
<button
|
||||||
|
onClick={reset}
|
||||||
|
className="rounded-md bg-primary px-4 py-2 text-sm text-primary-foreground hover:bg-primary/90"
|
||||||
|
>
|
||||||
|
Try again
|
||||||
|
</button>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user