feat: added dockerfile
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
node_modules
|
||||
build
|
||||
.svelte-kit
|
||||
db.sqlite
|
||||
.env*
|
||||
.claude
|
||||
scripts
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
FROM oven/bun:slim AS base
|
||||
WORKDIR /app
|
||||
|
||||
FROM base AS install
|
||||
COPY package.json bun.lock ./
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
FROM base AS build
|
||||
ENV NODE_ENV=production
|
||||
COPY --from=install /app/node_modules node_modules
|
||||
COPY . .
|
||||
RUN bun run build
|
||||
|
||||
FROM base AS release
|
||||
ENV NODE_ENV=production \
|
||||
DATABASE_URL=/app/data/db.sqlite \
|
||||
HOST=0.0.0.0 \
|
||||
PORT=3000
|
||||
# full node_modules: drizzle-kit (devDep) is needed for `drizzle-kit migrate` at startup
|
||||
COPY --from=install /app/node_modules node_modules
|
||||
COPY --from=build /app/build build
|
||||
COPY drizzle drizzle
|
||||
COPY drizzle.config.ts package.json ./
|
||||
RUN mkdir -p /app/data
|
||||
COPY drizzle.config.ts package.json ./
|
||||
RUN bun run db:migrate
|
||||
VOLUME /app/data
|
||||
EXPOSE 3000
|
||||
# apply migrations (creates db.sqlite if absent), then start the server
|
||||
CMD ["bun ./build/index.js"]
|
||||
@@ -26,7 +26,7 @@
|
||||
"@better-svelte-email/cli": "^2.1.1",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@fontsource-variable/geist": "^5.2.9",
|
||||
"@inlang/paraglide-js": "^2.18.2",
|
||||
"@inlang/paraglide-js": "^2.20.2",
|
||||
"@internationalized/date": "^3.12.0",
|
||||
"@libsql/client": "^0.17.3",
|
||||
"@lucide/svelte": "^1.21.0",
|
||||
@@ -223,7 +223,7 @@
|
||||
|
||||
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
|
||||
|
||||
"@inlang/paraglide-js": ["@inlang/paraglide-js@2.20.0", "", { "dependencies": { "@inlang/recommend-sherlock": "^0.2.1", "@inlang/sdk": "^2.10.0", "commander": "11.1.0", "consola": "3.4.0", "json5": "2.2.3", "unplugin": "^2.1.2", "urlpattern-polyfill": "^10.0.0" }, "peerDependencies": { "typescript": ">=5.6" }, "optionalPeers": ["typescript"], "bin": { "paraglide-js": "bin/run.js" } }, "sha512-vI8PdPVZSnpYnpagjvm+nWSa3nMDRJKVM/2eLAtUHFrNcZZadxVdmP79r4W95+dkMLDFGEyzSSY9sFxvjdkkyQ=="],
|
||||
"@inlang/paraglide-js": ["@inlang/paraglide-js@2.20.2", "", { "dependencies": { "@inlang/recommend-sherlock": "^0.2.1", "@inlang/sdk": "^2.10.0", "commander": "11.1.0", "consola": "3.4.0", "json5": "2.2.3", "unplugin": "^2.1.2", "urlpattern-polyfill": "^10.0.0" }, "peerDependencies": { "typescript": ">=5.6" }, "optionalPeers": ["typescript"], "bin": { "paraglide-js": "bin/run.js" } }, "sha512-V8iY3uu/vQU94gEag1bdC3glMJSp4Dg3XMwfnabZLBh1Dv0F++DvDYlMeniqv2+nHbnS/twB75AM140OmpHDEg=="],
|
||||
|
||||
"@inlang/recommend-sherlock": ["@inlang/recommend-sherlock@0.2.1", "", { "dependencies": { "comment-json": "^4.2.3" } }, "sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg=="],
|
||||
|
||||
|
||||
+2
-1
@@ -7,5 +7,6 @@ export default defineConfig({
|
||||
dialect: 'sqlite',
|
||||
schema: './src/lib/server/db/schema.ts',
|
||||
strict: true,
|
||||
verbose: true
|
||||
verbose: true,
|
||||
|
||||
});
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
"@better-svelte-email/cli": "^2.1.1",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@fontsource-variable/geist": "^5.2.9",
|
||||
"@inlang/paraglide-js": "^2.18.2",
|
||||
"@inlang/paraglide-js": "^2.20.2",
|
||||
"@internationalized/date": "^3.12.0",
|
||||
"@libsql/client": "^0.17.3",
|
||||
"@lucide/svelte": "^1.21.0",
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
<!-- Connection arrow / details -->
|
||||
<div
|
||||
class="flex flex-row md:flex-col items-center justify-center gap-2 text-muted-foreground min-w-[120px]"
|
||||
class="flex flex-row md:flex-col items-center justify-center gap-2 text-muted-foreground min-w-30"
|
||||
>
|
||||
<div class="h-px w-full md:w-px md:h-12 bg-border/80"></div>
|
||||
<div
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
</script>
|
||||
|
||||
<div class="space-y-10">
|
||||
<!-- Headline -->
|
||||
<div class="space-y-4">
|
||||
<h1 class="text-4xl font-extrabold tracking-tight md:text-5xl leading-none">
|
||||
{m.docs_limits_title()}
|
||||
@@ -14,7 +13,6 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- System Limitations -->
|
||||
<div class="space-y-6">
|
||||
<h2 class="text-xl font-bold tracking-tight">{m.docs_limits_sys_title()}</h2>
|
||||
<p class="text-muted-foreground text-sm leading-relaxed text-pretty max-w-2xl">
|
||||
@@ -28,7 +26,6 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- License Details -->
|
||||
<div class="space-y-6 border-t border-border/60 pt-8">
|
||||
<h2 class="text-xl font-bold tracking-tight">{m.docs_limits_license_title()}</h2>
|
||||
<p class="text-muted-foreground text-sm leading-relaxed text-pretty max-w-2xl">
|
||||
@@ -46,7 +43,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Credits -->
|
||||
<div class="space-y-4 border-t border-border/60 pt-8 text-sm text-muted-foreground">
|
||||
<h3 class="font-bold text-foreground text-sm">{m.docs_limits_credits_title()}</h3>
|
||||
<p>{m.docs_limits_credits_desc()}</p>
|
||||
|
||||
+3
-1
@@ -8,7 +8,9 @@ export default defineConfig({
|
||||
plugins: [
|
||||
tailwindcss(),
|
||||
sveltekit({
|
||||
adapter: adapter(),
|
||||
adapter: adapter({
|
||||
precompress:true
|
||||
}),
|
||||
compilerOptions: {
|
||||
experimental: { async: true },
|
||||
runes: ({ filename }) =>
|
||||
|
||||
Reference in New Issue
Block a user