feat: added dockerfile

This commit is contained in:
2026-06-26 09:37:33 +02:00
parent c86726ec9a
commit 08d0c18fe3
8 changed files with 46 additions and 10 deletions
+7
View File
@@ -0,0 +1,7 @@
node_modules
build
.svelte-kit
db.sqlite
.env*
.claude
scripts
+30
View File
@@ -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"]
+2 -2
View File
@@ -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
View File
@@ -7,5 +7,6 @@ export default defineConfig({
dialect: 'sqlite',
schema: './src/lib/server/db/schema.ts',
strict: true,
verbose: true
verbose: true,
});
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -8,7 +8,9 @@ export default defineConfig({
plugins: [
tailwindcss(),
sveltekit({
adapter: adapter(),
adapter: adapter({
precompress:true
}),
compilerOptions: {
experimental: { async: true },
runes: ({ filename }) =>