Initial aishare service
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import path from "node:path";
|
||||
|
||||
export interface AppConfig {
|
||||
basePath: string;
|
||||
baseUrl: string;
|
||||
port: number;
|
||||
dataDir: string;
|
||||
htmlDir: string;
|
||||
screenshotDir: string;
|
||||
cacheDir: string;
|
||||
dbPath: string;
|
||||
adminToken: string;
|
||||
captureTimeoutMs: number;
|
||||
maxScreenshotHeight: number;
|
||||
}
|
||||
|
||||
function intEnv(name: string, fallback: number): number {
|
||||
const raw = process.env[name];
|
||||
if (!raw) return fallback;
|
||||
const parsed = Number.parseInt(raw, 10);
|
||||
return Number.isFinite(parsed) ? parsed : fallback;
|
||||
}
|
||||
|
||||
const dataDir = process.env.AISHARE_DATA_DIR || path.resolve("data");
|
||||
|
||||
export const config: AppConfig = {
|
||||
basePath: "/aishare",
|
||||
baseUrl: (process.env.AISHARE_BASE_URL || "http://127.0.0.1:8088/aishare").replace(/\/$/, ""),
|
||||
port: intEnv("AISHARE_PORT", 8080),
|
||||
dataDir,
|
||||
htmlDir: path.join(dataDir, "html"),
|
||||
screenshotDir: path.join(dataDir, "screenshots"),
|
||||
cacheDir: path.join(dataDir, "cache"),
|
||||
dbPath: path.join(dataDir, "aishare.db"),
|
||||
adminToken: process.env.AISHARE_ADMIN_TOKEN || "",
|
||||
captureTimeoutMs: intEnv("AISHARE_CAPTURE_TIMEOUT_MS", 180_000),
|
||||
maxScreenshotHeight: intEnv("AISHARE_MAX_SCREENSHOT_HEIGHT", 60_000)
|
||||
};
|
||||
Reference in New Issue
Block a user