make web ui state directory configurable (#764)

This commit is contained in:
ekko
2026-05-15 17:30:27 +08:00
committed by GitHub
parent fbb0236af4
commit e0bfa828cb
17 changed files with 121 additions and 2228 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
import { readFile, writeFile, mkdir } from 'fs/promises'
import { join } from 'path'
import { homedir } from 'os'
import { config } from '../config'
const APP_HOME = join(homedir(), '.hermes-web-ui')
const APP_HOME = config.appHome
const APP_CONFIG_FILE = join(APP_HOME, 'config.json')
export interface ModelVisibilityRule {
+2 -2
View File
@@ -1,10 +1,10 @@
import { readFile, writeFile, mkdir } from 'fs/promises'
import { join } from 'path'
import { randomBytes } from 'crypto'
import { homedir } from 'os'
import { checkToken, recordTokenFailure, extractIp } from './login-limiter'
import { config } from '../config'
const APP_HOME = join(homedir(), '.hermes-web-ui')
const APP_HOME = config.appHome
const TOKEN_FILE = join(APP_HOME, '.token')
function generateToken(): string {
+2 -2
View File
@@ -1,10 +1,10 @@
import { readFile, writeFile, mkdir, unlink } from 'fs/promises'
import { existsSync } from 'fs'
import { join } from 'path'
import { homedir } from 'os'
import { scryptSync, randomBytes } from 'node:crypto'
import { config } from '../config'
const APP_HOME = join(homedir(), '.hermes-web-ui')
const APP_HOME = config.appHome
const CREDENTIALS_FILE = join(APP_HOME, '.credentials')
export interface Credentials {
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,12 +1,12 @@
import pino from 'pino'
import { resolve } from 'path'
import { mkdirSync, statSync, truncateSync, openSync, readSync, closeSync, writeFileSync } from 'fs'
import { homedir } from 'os'
import { config } from '../config'
const MAX_LOG_SIZE = 3 * 1024 * 1024 // 3MB
const CHECK_INTERVAL = 60_000 // Check every minute
const logDir = resolve(homedir(), '.hermes-web-ui', 'logs')
const logDir = resolve(config.appHome, 'logs')
mkdirSync(logDir, { recursive: true })
const logFile = resolve(logDir, 'server.log')
@@ -1,9 +1,9 @@
import { readFile, writeFile, mkdir } from 'fs/promises'
import { writeFileSync } from 'fs'
import { join } from 'path'
import { homedir } from 'os'
import { config } from '../config'
const APP_HOME = join(homedir(), '.hermes-web-ui')
const APP_HOME = config.appHome
const LOCK_FILE = join(APP_HOME, '.login-lock.json')
// Per-IP settings