A simple Bluesky bot to make sense of the noise, with responses powered by Gemini, similar to Grok.

feat: update default db path & migration on setup

+10 -19
+1 -1
.env.example
··· 4 # PDS service URL (optional) 5 SERVICE="https://bsky.social" 6 7 - DB_PATH="data/sqlite.db" 8 GEMINI_MODEL="gemini-2.5-flash" 9 10 DID=""
··· 4 # PDS service URL (optional) 5 SERVICE="https://bsky.social" 6 7 + DB_PATH="sqlite.db" 8 GEMINI_MODEL="gemini-2.5-flash" 9 10 DID=""
+1 -1
.gitignore
··· 34 .DS_Store 35 36 # Database 37 - data
··· 34 .DS_Store 35 36 # Database 37 + *.db
+2 -3
docker-compose.yml
··· 6 environment: 7 - "AUTHORIZED_USERS=${AUTHORIZED_USERS}" 8 - "SERVICE=${SERVICE:?https://bsky.social}" 9 - - "DB_PATH=data/sqlite.db" 10 - "GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.5-flash}" 11 - "DID=${DID:?}" 12 - "HANDLE=${HANDLE:?}" 13 - "BSKY_PASSWORD=${BSKY_PASSWORD:?}" 14 - "GEMINI_API_KEY=${GEMINI_API_KEY:?}" 15 volumes: 16 - - .:/app 17 - - aero_db:/app/data
··· 6 environment: 7 - "AUTHORIZED_USERS=${AUTHORIZED_USERS}" 8 - "SERVICE=${SERVICE:?https://bsky.social}" 9 + - "DB_PATH=sqlite.db" 10 - "GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.5-flash}" 11 - "DID=${DID:?}" 12 - "HANDLE=${HANDLE:?}" 13 - "BSKY_PASSWORD=${BSKY_PASSWORD:?}" 14 - "GEMINI_API_KEY=${GEMINI_API_KEY:?}" 15 volumes: 16 + - aero_db:/sqlite.db
+6 -4
src/db/index.ts
··· 1 import { drizzle } from "drizzle-orm/bun-sqlite"; 2 import { Database } from "bun:sqlite"; 3 import * as schema from "./schema"; 4 import { env } from "../env"; 5 - import { migrateDB } from "./migrate"; 6 - 7 - await migrateDB(); 8 9 const sqlite = new Database(env.DB_PATH); 10 - export default drizzle(sqlite, { schema });
··· 1 import { drizzle } from "drizzle-orm/bun-sqlite"; 2 + import { migrate } from "drizzle-orm/bun-sqlite/migrator"; 3 import { Database } from "bun:sqlite"; 4 import * as schema from "./schema"; 5 import { env } from "../env"; 6 7 const sqlite = new Database(env.DB_PATH); 8 + const db = drizzle(sqlite, { schema }); 9 + 10 + migrate(db, { migrationsFolder: "./drizzle" }); 11 + 12 + export default db;
-10
src/db/migrate.ts
··· 1 - import { migrate } from "drizzle-orm/bun-sqlite/migrator"; 2 - import { drizzle } from "drizzle-orm/bun-sqlite"; 3 - import { Database } from "bun:sqlite"; 4 - import { env } from "../env"; 5 - 6 - export async function migrateDB() { 7 - const sqlite = new Database(env.DB_PATH); 8 - const db = drizzle(sqlite); 9 - await migrate(db, { migrationsFolder: "./drizzle" }); 10 - }
···