Initial aishare service

This commit is contained in:
Codex
2026-07-06 11:25:57 +00:00
commit e051b568ab
23 changed files with 5615 additions and 0 deletions
+38
View File
@@ -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)
};