import node from "@astrojs/node"; import { defineConfig, memoryCache } from "astro/config"; import emdash, { local } from "emdash/astro"; import { sqlite } from "emdash/db"; // Persistent state directory. Defaults to the working directory for dev/DDEV // (so data.db + uploads/ stay where you'd expect them). The k8s deploy sets // STATE_DIR=/app/state and mounts a PVC there so SQLite + uploads survive // pod replacement. const stateDir = process.env.STATE_DIR ?? "."; export default defineConfig({ output: "server", adapter: node({ mode: "standalone" }), trailingSlash: "ignore", server: { host: true, port: 4321 }, vite: { server: { // Dev runs behind DDEV's nginx (https://cms-plugins.ddev.site/). // Vite's host check must allow the public hostname. allowedHosts: ["cms-plugins.ddev.site", ".ddev.site"], }, }, image: { layout: "constrained", responsiveStyles: true, }, integrations: [ emdash({ database: sqlite({ url: `file:${stateDir}/data.db` }), storage: local({ directory: `${stateDir}/uploads`, baseUrl: "/_emdash/api/media/file", }), }), ], experimental: { cache: { provider: memoryCache() }, }, devToolbar: { enabled: false }, });