soc_site-astro/astro.config.mjs

63 lines
2 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 { paraglideVitePlugin } from '@inlang/paraglide-js'
import icon from 'astro-icon'
import { locales } 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,
defaultLocale: 'en',
routing: {
prefixDefaultLocale: false,
redirectToDefaultLocale: true
}
},
integrations: [icon({ iconDir: 'src/img/icons' }), react()],
vite: {
plugins: [
tailwindcss(),
paraglideVitePlugin({
project: './project.inlang',
outdir: './src/paraglide'
})
]
},
image: { domains: ['cdn.sittingonclouds.net'] },
output: 'server',
adapter: node({ mode: 'standalone' }),
redirects: {
'/en/[...params]': '/[...params]',
'/profile': { status: 307, destination: '/maintenance' },
'/profile/[username]': { status: 307, destination: '/maintenance' },
'/request': { status: 308, destination: '/requests' }
},
security: {
checkOrigin: false
}
})