From c64e50bdec87e514069e49f5f5acf927f96bc718 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Fri, 31 Oct 2025 22:05:28 +0100 Subject: [PATCH] chore: drizzle config root --- .gitignore | 2 ++ apps/server/package.json | 7 ++----- .../src/modules/repositories/repositories.controller.ts | 4 ++-- apps/server/src/modules/repositories/repositories.dto.ts | 1 - .../src/modules/repositories/repositories.service.ts | 6 +----- bun.lock | 5 +++-- docker-compose.yml | 6 +++--- apps/server/drizzle.config.ts => drizzle.config.ts | 6 +++--- package.json | 6 +++++- 9 files changed, 21 insertions(+), 22 deletions(-) rename apps/server/drizzle.config.ts => drizzle.config.ts (58%) diff --git a/.gitignore b/.gitignore index e4ff11c..97813dd 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,5 @@ node_modules/ .turbo mutagen.yml.lock + +data/ diff --git a/apps/server/package.json b/apps/server/package.json index 7c5361e..cd41ca5 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -4,9 +4,7 @@ "scripts": { "dev": "bun run --watch src/index.ts", "build": "rm -rf dist && bun build.ts", - "tsc": "tsc --noEmit", - "gen:migrations": "drizzle-kit generate", - "studio": "drizzle-kit studio" + "tsc": "tsc --noEmit" }, "dependencies": { "@hono/standard-validator": "^0.1.5", @@ -27,7 +25,6 @@ "devDependencies": { "@libsql/client": "^0.15.15", "@types/bun": "^1.3.0", - "@types/dockerode": "^3.3.44", - "drizzle-kit": "^0.31.5" + "@types/dockerode": "^3.3.44" } } diff --git a/apps/server/src/modules/repositories/repositories.controller.ts b/apps/server/src/modules/repositories/repositories.controller.ts index 5a805c9..3ea74ba 100644 --- a/apps/server/src/modules/repositories/repositories.controller.ts +++ b/apps/server/src/modules/repositories/repositories.controller.ts @@ -92,9 +92,9 @@ export const repositoriesController = new Hono() ) .post("/:name/restore", restoreSnapshotDto, validator("json", restoreSnapshotBody), async (c) => { const { name } = c.req.param(); - const { snapshotId, path, include, exclude } = c.req.valid("json"); + const { snapshotId, include, exclude } = c.req.valid("json"); - const result = await repositoriesService.restoreSnapshot(name, snapshotId, { path, include, exclude }); + const result = await repositoriesService.restoreSnapshot(name, snapshotId, { include, exclude }); return c.json(result, 200); }); diff --git a/apps/server/src/modules/repositories/repositories.dto.ts b/apps/server/src/modules/repositories/repositories.dto.ts index 9098a49..61d6145 100644 --- a/apps/server/src/modules/repositories/repositories.dto.ts +++ b/apps/server/src/modules/repositories/repositories.dto.ts @@ -219,7 +219,6 @@ export const listSnapshotFilesDto = describeRoute({ */ export const restoreSnapshotBody = type({ snapshotId: "string", - path: "string?", include: "string[]?", exclude: "string[]?", }); diff --git a/apps/server/src/modules/repositories/repositories.service.ts b/apps/server/src/modules/repositories/repositories.service.ts index 348f38a..7d44b44 100644 --- a/apps/server/src/modules/repositories/repositories.service.ts +++ b/apps/server/src/modules/repositories/repositories.service.ts @@ -164,11 +164,7 @@ const listSnapshotFiles = async (name: string, snapshotId: string, path?: string const restoreSnapshot = async ( name: string, snapshotId: string, - options?: { - path?: string; - include?: string[]; - exclude?: string[]; - }, + options?: { include?: string[]; exclude?: string[] }, ) => { const repository = await db.query.repositoriesTable.findFirst({ where: eq(repositoriesTable.name, name), diff --git a/bun.lock b/bun.lock index cdc496f..c80f7e6 100644 --- a/bun.lock +++ b/bun.lock @@ -5,6 +5,8 @@ "name": "ironmount", "devDependencies": { "@hey-api/openapi-ts": "^0.80.17", + "dotenv": "^17.2.3", + "drizzle-kit": "^0.31.6", "turbo": "^2.5.8", }, }, @@ -84,7 +86,6 @@ "@libsql/client": "^0.15.15", "@types/bun": "^1.3.0", "@types/dockerode": "^3.3.44", - "drizzle-kit": "^0.31.5", }, }, "packages/schemas": { @@ -771,7 +772,7 @@ "dotenv": ["dotenv@17.2.3", "", {}, "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w=="], - "drizzle-kit": ["drizzle-kit@0.31.5", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg=="], + "drizzle-kit": ["drizzle-kit@0.31.6", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-/B4e/4pwnx25QwD5xXgdpo1S+077a2VZdosXbItE/oNmUgQwZydGDz9qJYmnQl/b+5IX0rLfwRhrPnroGtrg8Q=="], "drizzle-orm": ["drizzle-orm@0.44.6", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-uy6uarrrEOc9K1u5/uhBFJbdF5VJ5xQ/Yzbecw3eAYOunv5FDeYkR2m8iitocdHBOHbvorviKOW5GVw0U1j4LQ=="], diff --git a/docker-compose.yml b/docker-compose.yml index 6fcae04..b6905e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,10 +14,10 @@ services: volumes: - /var/run/docker.sock:/var/run/docker.sock - /run/docker/plugins:/run/docker/plugins - - /var/lib/ironmount/volumes/:/var/lib/ironmount/volumes:rslave + - ./data/volumes/:/var/lib/ironmount/volumes - /var/lib/repositories/:/var/lib/repositories - - /proc:/host/proc:ro - - ironmount_data:/data + # - /proc:/host/proc:ro + - ./data:/data - ./apps/client/app:/app/apps/client/app - ./apps/server/src:/app/apps/server/src diff --git a/apps/server/drizzle.config.ts b/drizzle.config.ts similarity index 58% rename from apps/server/drizzle.config.ts rename to drizzle.config.ts index 9036749..5b01ceb 100644 --- a/apps/server/drizzle.config.ts +++ b/drizzle.config.ts @@ -2,10 +2,10 @@ import "dotenv/config"; import { defineConfig } from "drizzle-kit"; export default defineConfig({ - out: "./drizzle", - schema: "./src/db/schema.ts", + out: "./apps/server/drizzle", + schema: "./apps/server/src/db/schema.ts", dialect: "sqlite", dbCredentials: { - url: "ironmount.db", + url: "./data/ironmount.db", }, }); diff --git a/package.json b/package.json index 1f0a407..068beca 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "build": "turbo build", "gen:api-client": "openapi-ts", "start:dev": "docker compose down && docker compose up --build ironmount-dev", - "start:prod": "docker compose down && docker compose up --build ironmount-prod" + "start:prod": "docker compose down && docker compose up --build ironmount-prod", + "gen:migrations": "drizzle-kit generate", + "studio": "drizzle-kit studio" }, "workspaces": [ "apps/*", @@ -16,6 +18,8 @@ ], "devDependencies": { "@hey-api/openapi-ts": "^0.80.17", + "dotenv": "^17.2.3", + "drizzle-kit": "^0.31.6", "turbo": "^2.5.8" }, "trustedDependencies": [