aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.env.sample2
-rw-r--r--.gitignore2
-rw-r--r--README.md2
-rw-r--r--docker/docker-compose.dev.yml6
-rw-r--r--docker/docker-compose.yml4
-rw-r--r--packages/db/drizzle.config.ts9
-rw-r--r--packages/db/drizzle.ts4
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 ##############
diff --git a/.gitignore b/.gitignore
index a4b68a86..1591e672 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,7 +37,7 @@ yarn-error.log*
next-env.d.ts
# The sqlite database
-**/dev.db
+**/*.db
# PWA Files
**/public/sw.js
diff --git a/README.md b/README.md
index 2a67a860..2f4197c6 100644
--- a/README.md
+++ b/README.md
@@ -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) {