mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Complete rebrand from Stirling-Image to ashim following the project move to https://github.com/ashim-hq/ashim. Changes across 117 files: - Package scope: @stirling-image/* → @ashim/* - GitHub URLs: stirling-image/stirling-image → ashim-hq/ashim - Docker Hub: stirlingimage/stirling-image → ashimhq/ashim - GitHub Pages: stirling-image.github.io → ashim-hq.github.io - All branding text: "Stirling Image" → "ashim" - Docker service/volumes/user: stirling → ashim - Database: stirling.db → ashim.db - localStorage keys: stirling-token → ashim-token - Environment variables: STIRLING_GPU → ASHIM_GPU - Python cache dirs: .cache/stirling-image → .cache/ashim - SVG filter IDs, test prefixes, and all other references
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { z } from "zod";
|
|
|
|
const envSchema = z.object({
|
|
PORT: z.coerce.number().default(1349),
|
|
AUTH_ENABLED: z
|
|
.enum(["true", "false"])
|
|
.default("true")
|
|
.transform((v) => v === "true"),
|
|
DEFAULT_USERNAME: z.string().default("admin"),
|
|
DEFAULT_PASSWORD: z.string().default("admin"),
|
|
SKIP_MUST_CHANGE_PASSWORD: z
|
|
.enum(["true", "false"])
|
|
.default("false")
|
|
.transform((v) => v === "true"),
|
|
STORAGE_MODE: z.enum(["local", "s3"]).default("local"),
|
|
FILE_MAX_AGE_HOURS: z.coerce.number().default(24),
|
|
CLEANUP_INTERVAL_MINUTES: z.coerce.number().default(30),
|
|
MAX_UPLOAD_SIZE_MB: z.coerce.number().default(100),
|
|
MAX_BATCH_SIZE: z.coerce.number().default(200),
|
|
CONCURRENT_JOBS: z.coerce.number().default(3),
|
|
MAX_MEGAPIXELS: z.coerce.number().default(100),
|
|
RATE_LIMIT_PER_MIN: z.coerce.number().default(100),
|
|
DB_PATH: z.string().default("./data/ashim.db"),
|
|
FILES_STORAGE_PATH: z.string().default("./data/files"),
|
|
WORKSPACE_PATH: z.string().default("./tmp/workspace"),
|
|
DEFAULT_THEME: z.enum(["light", "dark"]).default("light"),
|
|
DEFAULT_LOCALE: z.string().default("en"),
|
|
APP_NAME: z.string().default("ashim"),
|
|
CORS_ORIGIN: z.string().default(""),
|
|
MAX_USERS: z.coerce.number().default(5),
|
|
LOG_LEVEL: z.enum(["fatal", "error", "warn", "info", "debug", "trace"]).default("info"),
|
|
});
|
|
|
|
export type Env = z.infer<typeof envSchema>;
|
|
|
|
export function loadEnv(): Env {
|
|
return envSchema.parse(process.env);
|
|
}
|