ghostguild-org/nuxt.config.ts
Jennie Robinson Faber 210a8d588f
Some checks failed
Test / vitest (push) Successful in 11m3s
Test / playwright (push) Failing after 9m27s
Test / visual (push) Failing after 9m23s
Test / Notify on failure (push) Successful in 2s
fix(build): disable @nuxt/fonts external providers
Build was failing on Dokploy when fonts.bunny.net was unreachable from the
build container. Fonts are already loaded at runtime via the explicit
<link rel="stylesheet"> in app.head, so the auto-resolver is redundant —
disable all external providers to remove the build-time network dependency.
2026-04-26 15:22:08 +01:00

123 lines
3.6 KiB
TypeScript

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: "2025-07-15",
devtools: { enabled: false },
modules: ["@nuxt/eslint", "@nuxt/ui", "@nuxtjs/plausible"],
fonts: {
providers: {
google: false,
fontsource: false,
bunny: false,
adobe: false,
googleicons: false,
},
},
colorMode: {
preference: "system",
fallback: "light",
classSuffix: "",
},
app: {
head: {
htmlAttrs: { lang: "en" },
title: "Ghost Guild",
titleTemplate: "%s · Ghost Guild",
link: [
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
{
rel: "preconnect",
href: "https://fonts.gstatic.com",
crossorigin: "",
},
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Brygada+1918:ital,wght@0,400..700;1,400..700&family=Commit+Mono&display=swap",
},
],
},
},
build: {
transpile: ["vue-cal"],
},
routeRules: {
"/policies/code-of-conduct": {
redirect: {
to: "https://publish.obsidian.md/baby-ghosts-corp-docs/Public/Policies/Code+of+Conduct",
statusCode: 302,
},
},
"/policies/conflict-resolution": {
redirect: {
to: "https://publish.obsidian.md/baby-ghosts-corp-docs/Public/Policies/Conflict+Resolution+Policy",
statusCode: 302,
},
},
},
plausible: {
domain: "ghostguild.org",
},
css: ["~/assets/css/main.css"],
vite: {
optimizeDeps: {
include: ["@plausible-analytics/tracker"],
},
server: {
allowedHosts: [".trycloudflare.com", ".ngrok-free.app", ".ngrok.io"],
hmr: {
port: 24678,
},
watch: {
ignored: [
"**/.git/**",
"**/.nuxt/**",
"**/.output/**",
"**/node_modules/**",
"**/dist/**",
"**/e2e/**",
"**/coverage/**",
],
},
},
},
nitro: {
watchOptions: {
ignored: [
"**/.git/**",
"**/.nuxt/**",
"**/.output/**",
"**/node_modules/**",
"**/dist/**",
"**/e2e/**",
"**/coverage/**",
],
},
},
runtimeConfig: {
// Private keys (server-side only)
mongodbUri: process.env.MONGODB_URI || "",
jwtSecret: process.env.JWT_SECRET || "",
resendApiKey: process.env.RESEND_API_KEY || "",
helcimApiToken: process.env.HELCIM_API_TOKEN || "",
slackBotToken: process.env.SLACK_BOT_TOKEN || "",
slackAdminBotToken: process.env.SLACK_ADMIN_BOT_TOKEN || "",
slackSigningSecret: process.env.SLACK_SIGNING_SECRET || "",
slackVettingChannelId: process.env.SLACK_VETTING_CHANNEL_ID || "",
oidcClientId: process.env.OIDC_CLIENT_ID || "outline-wiki",
oidcClientSecret: process.env.OIDC_CLIENT_SECRET || "",
oidcCookieSecret: process.env.OIDC_COOKIE_SECRET || "",
outlineApiKey: process.env.OUTLINE_API_KEY || "",
helcimMonthlyPlanId: process.env.NUXT_HELCIM_MONTHLY_PLAN_ID || "",
helcimAnnualPlanId: process.env.NUXT_HELCIM_ANNUAL_PLAN_ID || "",
reconcileToken: process.env.NUXT_RECONCILE_TOKEN || "",
// Public keys (available on client-side)
public: {
helcimAccountId: process.env.NUXT_PUBLIC_HELCIM_ACCOUNT_ID || "",
cloudinaryCloudName:
process.env.NUXT_PUBLIC_CLOUDINARY_CLOUD_NAME || "divzuumlr",
appUrl: process.env.NUXT_PUBLIC_APP_URL || "http://localhost:3000",
comingSoon: process.env.NUXT_PUBLIC_COMING_SOON || "false",
helcimPortalUrl: process.env.NUXT_PUBLIC_HELCIM_PORTAL_URL || "",
},
},
});