diff --git a/Dockerfile b/Dockerfile index 1b41373..b9c01db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /deps ARG TARGETARCH ARG RESTIC_VERSION="0.18.1" -ARG SHOUTRRR_VERSION="0.12.0" +ARG SHOUTRRR_VERSION="0.12.1" ENV TARGETARCH=${TARGETARCH} RUN apk add --no-cache curl bzip2 unzip tar diff --git a/app/server/core/config.ts b/app/server/core/config.ts index 033827e..bd138c4 100644 --- a/app/server/core/config.ts +++ b/app/server/core/config.ts @@ -2,12 +2,10 @@ import { type } from "arktype"; import "dotenv/config"; const envSchema = type({ - NODE_ENV: type.enumerated("development", "production", "test").default("development"), - SESSION_SECRET: "string?", + NODE_ENV: type.enumerated("development", "production", "test").default("production"), }).pipe((s) => ({ __prod__: s.NODE_ENV === "production", environment: s.NODE_ENV, - sessionSecret: s.SESSION_SECRET || "change-me-in-production-please", })); const parseConfig = (env: unknown) => { diff --git a/app/server/db/db.ts b/app/server/db/db.ts index 78bf4bc..0710945 100644 --- a/app/server/db/db.ts +++ b/app/server/db/db.ts @@ -6,6 +6,7 @@ import { migrate } from "drizzle-orm/bun-sqlite/migrator"; import { DATABASE_URL } from "../core/constants"; import * as schema from "./schema"; import fs from "node:fs/promises"; +import { config } from "../core/config"; await fs.mkdir(path.dirname(DATABASE_URL), { recursive: true }); @@ -15,8 +16,7 @@ export const db = drizzle({ client: sqlite, schema }); export const runDbMigrations = () => { let migrationsFolder = path.join("/app", "assets", "migrations"); - const { NODE_ENV } = process.env; - if (NODE_ENV !== "production") { + if (!config.__prod__) { migrationsFolder = path.join("/app", "app", "drizzle"); } diff --git a/app/server/utils/logger.ts b/app/server/utils/logger.ts index c5b77ad..82eac35 100644 --- a/app/server/utils/logger.ts +++ b/app/server/utils/logger.ts @@ -1,15 +1,17 @@ import { createLogger, format, transports } from "winston"; import { sanitizeSensitiveData } from "./sanitize"; +import { config } from "../core/config"; const { printf, combine, colorize } = format; const printConsole = printf((info) => `${info.level} > ${info.message}`); const consoleFormat = combine(colorize(), printConsole); +const defaultLevel = config.__prod__ ? "info" : "debug"; const winstonLogger = createLogger({ - level: "debug", + level: process.env.LOG_LEVEL || defaultLevel, format: format.json(), - transports: [new transports.Console({ level: "debug", format: consoleFormat })], + transports: [new transports.Console({ level: process.env.LOG_LEVEL || defaultLevel, format: consoleFormat })], }); const log = (level: "info" | "warn" | "error" | "debug", messages: unknown[]) => { diff --git a/docker-compose.yml b/docker-compose.yml index 2478d6b..689f167 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,3 +41,4 @@ services: - /var/lib/zerobyte:/var/lib/zerobyte:rshared - /run/docker/plugins:/run/docker/plugins - /var/run/docker.sock:/var/run/docker.sock + - ~/.config/rclone:/root/.config/rclone