soc_site-astro/astro.config.mjs

68 lines
2.6 KiB
JavaScript

// @ts-check
import { defineConfig, envField } from 'astro/config'
import tailwindcss from '@tailwindcss/vite'
import node from '@astrojs/node'
import react from '@astrojs/react'
import paraglide from '@inlang/paraglide-astro'
import icon from 'astro-icon'
import { languageTags } from './project.inlang/settings.json'
// https://astro.build/config
export default defineConfig({
env: {
schema: {
MAILSERVER: envField.string({ context: 'server', access: 'secret' }),
BETTER_AUTH_SECRET: envField.string({ context: 'server', access: 'secret' }),
DATABASE_URL: envField.string({ context: 'server', access: 'secret' }),
BETTER_AUTH_URL: envField.string({
context: 'server',
access: 'public',
optional: true,
default: 'http://localhost:4321'
}),
WEBHOOK_URL: envField.string({ context: 'server', access: 'secret' }),
DISCORD_OAUTH_ID: envField.string({ context: 'server', access: 'public' }),
DISCORD_OAUTH_SECRET: envField.string({ context: 'server', access: 'secret' }),
DISCORD_GUILD_ID: envField.string({ context: 'server', access: 'public' }),
DISCORD_DONATOR_ID: envField.string({ context: 'server', access: 'public' })
},
validateSecrets: true
},
site: 'https://sittingonclouds.net',
i18n: {
locales: languageTags,
defaultLocale: 'en',
routing: {
prefixDefaultLocale: false,
redirectToDefaultLocale: true
}
},
integrations: [
paraglide({ project: './project.inlang', outdir: './src/paraglide' }),
icon({ iconDir: 'src/img/icons' }),
react()
],
vite: { plugins: [tailwindcss()] },
image: { domains: ['cdn.sittingonclouds.net'] },
output: 'server',
adapter: node({ mode: 'standalone' }),
redirects: {
'/en/[...params]': '/[...params]',
'/anim/[id]': { status: 307, destination: '/maintenance' },
'/anim/list': { status: 307, destination: '/maintenance' },
'/game/[slug]': { status: 307, destination: '/maintenance' },
'/platform/list': { status: 307, destination: '/maintenance' },
'/platform/[id]': { status: 307, destination: '/maintenance' },
'/profile': { status: 307, destination: '/maintenance' },
'/profile/[username]': { status: 307, destination: '/maintenance' },
'/series/[slug]': { status: 307, destination: '/maintenance' },
'/series/list': { status: 307, destination: '/maintenance' },
'/studio/[slug]': { status: 307, destination: '/maintenance' },
'/studio/list': { status: 307, destination: '/maintenance' },
'/request': { status: 307, destination: '/maintenance' }
},
security: {
checkOrigin: false
}
})