diff options
| -rw-r--r-- | .env.sample | 2 | ||||
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | docker/docker-compose.dev.yml | 6 | ||||
| -rw-r--r-- | docker/docker-compose.yml | 4 | ||||
| -rw-r--r-- | packages/db/drizzle.config.ts | 9 | ||||
| -rw-r--r-- | packages/db/drizzle.ts | 4 |
7 files changed, 19 insertions, 10 deletions
diff --git a/.env.sample b/.env.sample index 5875f8a4..f8c314cc 100644 --- a/.env.sample +++ b/.env.sample @@ -1,5 +1,5 @@ ############## Global ############## -# DATABASE_URL= +# DATA_DIR= # LOG_LEVEL=debug ############## Crawler ############## @@ -37,7 +37,7 @@ yarn-error.log* next-env.d.ts # The sqlite database -**/dev.db +**/*.db # PWA Files **/public/sw.js @@ -34,7 +34,7 @@ The app is configured with env variables. | Name | Default | Description | | -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | OPENAI_API_KEY | Not set | The OpenAI key used for automatic tagging. If not set, automatic tagging won't be enabled. The app currently uses `gpt-3.5-turbo-0125` which is [extremely cheap](https://openai.com/pricing). You'll be able to bookmark 1000+ for less than $1. | -| DATABASE_URL | Not set | The path for the sqlite database. | +| DATA_DIR | Not set | The path for the persistent data directory. | | REDIS_HOST | localhost | The address of redis used by background jobs | | REDIS_POST | 6379 | The port of redis used by background jobs | | MEILI_ADDR | Not set | The address of meilisearch. If not set, Search will be disabled. | diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index ebc599dd..d7cbbbf0 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -11,7 +11,7 @@ services: environment: REDIS_HOST: redis MEILI_ADDR: http://meilisearch:7700 - DATABASE_URL: "/data/db.db" + DATA_DIR: /data command: - pnpm - web @@ -37,7 +37,7 @@ services: environment: REDIS_HOST: redis MEILI_ADDR: http://meilisearch:7700 - DATABASE_URL: "/data/db.db" + DATA_DIR: /data # OPENAI_API_KEY: ... command: - pnpm @@ -50,7 +50,7 @@ services: dockerfile: Dockerfile.dev working_dir: /app environment: - DATABASE_URL: "/data/db.db" + DATA_DIR: /data volumes: - data:/data - ..:/app diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index b290ffa6..c117064f 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -9,7 +9,7 @@ services: environment: REDIS_HOST: redis MEILI_ADDR: http://meilisearch:7700 - DATABASE_URL: "/data/db.db" + DATA_DIR: /data redis: image: redis:7.2-alpine volumes: @@ -25,7 +25,7 @@ services: environment: REDIS_HOST: redis MEILI_ADDR: http://meilisearch:7700 - DATABASE_URL: "/data/db.db" + DATA_DIR: /data # OPENAI_API_KEY: ... depends_on: web: diff --git a/packages/db/drizzle.config.ts b/packages/db/drizzle.config.ts index ef31abc1..e2e00af9 100644 --- a/packages/db/drizzle.config.ts +++ b/packages/db/drizzle.config.ts @@ -1,10 +1,17 @@ import "dotenv/config"; import type { Config } from "drizzle-kit"; + +if (!process.env.DATA_DIR) { + throw new Error("DATA_DIR environment variable is required"); +} + +const databaseURL = `${process.env.DATA_DIR}/db.db`; + export default { schema: "./schema.ts", out: "./drizzle", driver: "better-sqlite", dbCredentials: { - url: process.env.DATABASE_URL || "", + url: databaseURL, }, } satisfies Config; diff --git a/packages/db/drizzle.ts b/packages/db/drizzle.ts index ae5bfa18..4763d9d7 100644 --- a/packages/db/drizzle.ts +++ b/packages/db/drizzle.ts @@ -5,7 +5,9 @@ import * as schema from "./schema"; import { migrate } from "drizzle-orm/better-sqlite3/migrator"; import path from "path"; -const sqlite = new Database(process.env.DATABASE_URL); +import dbConfig from "./drizzle.config"; + +const sqlite = new Database(dbConfig.dbCredentials.url); export const db = drizzle(sqlite, { schema }); export function getInMemoryDB(runMigrations: boolean) { |
