Files
Admin_dash/lib/db.ts

42 lines
889 B
TypeScript
Raw Normal View History

2026-02-08 03:03:53 -05:00
import sqlite3 from 'sqlite3';
import { open, Database } from 'sqlite';
let db: Database | null = null;
export async function getDb() {
2026-02-08 03:20:36 -05:00
if (db) return db;
2026-02-08 03:03:53 -05:00
2026-02-08 03:20:36 -05:00
// Enable verbose mode for debugging
sqlite3.verbose();
2026-02-08 03:03:53 -05:00
2026-02-08 03:20:36 -05:00
const dbPath = process.env.DB_PATH || './dashboard.db';
2026-02-08 03:03:53 -05:00
2026-02-08 03:20:36 -05:00
db = await open({
filename: dbPath,
driver: sqlite3.Database
});
await db.exec(`
2026-02-08 03:03:53 -05:00
CREATE TABLE IF NOT EXISTS uptime_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
service_name TEXT NOT NULL,
url TEXT NOT NULL,
status TEXT NOT NULL,
latency INTEGER,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS visitors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip_hash TEXT,
city TEXT,
country TEXT,
lat REAL,
lon REAL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
`);
2026-02-08 03:20:36 -05:00
return db;
2026-02-08 03:03:53 -05:00
}