-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathastro.config.mjs
More file actions
58 lines (54 loc) · 2.22 KB
/
Copy pathastro.config.mjs
File metadata and controls
58 lines (54 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// @ts-check
import { defineConfig } from 'astro/config';
import tailwind from '@astrojs/tailwind';
import node from '@astrojs/node';
import vercel from '@astrojs/vercel/serverless';
const DEPLOY_TARGET = process.env.DEPLOY_TARGET || 'node';
// Determine whether to process environment variables based on the environment
const getEnvConfig = () => {
// No additional environment variable processing needed in Docker environment
if (process.env.DOCKER_ENV === 'true') {
return {
'import.meta.env.PUBLIC_OPENAI_API_KEY': 'process.env.PUBLIC_OPENAI_API_KEY',
'import.meta.env.PUBLIC_ANTHROPIC_API_KEY': 'process.env.PUBLIC_ANTHROPIC_API_KEY',
'import.meta.env.PUBLIC_GOOGLE_API_KEY': 'process.env.PUBLIC_GOOGLE_API_KEY',
'import.meta.env.PUBLIC_DEEPSEEK_API_KEY': 'process.env.PUBLIC_DEEPSEEK_API_KEY',
'import.meta.env.PUBLIC_DEFAULT_MODEL': 'process.env.PUBLIC_DEFAULT_MODEL',
'import.meta.env.PUBLIC_SHOW_SETTINGS': 'process.env.PUBLIC_SHOW_SETTINGS',
'import.meta.env.PUBLIC_ACCESS_PASSWORD': 'process.env.PUBLIC_ACCESS_PASSWORD'
};
}
// Configuration for development and other environments
return {
'import.meta.env.PUBLIC_OPENAI_API_KEY': JSON.stringify(process.env.PUBLIC_OPENAI_API_KEY),
'import.meta.env.PUBLIC_ANTHROPIC_API_KEY': JSON.stringify(process.env.PUBLIC_ANTHROPIC_API_KEY),
'import.meta.env.PUBLIC_GOOGLE_API_KEY': JSON.stringify(process.env.PUBLIC_GOOGLE_API_KEY),
'import.meta.env.PUBLIC_DEEPSEEK_API_KEY': JSON.stringify(process.env.PUBLIC_DEEPSEEK_API_KEY),
'import.meta.env.PUBLIC_DEFAULT_MODEL': JSON.stringify(process.env.PUBLIC_DEFAULT_MODEL),
'import.meta.env.PUBLIC_SHOW_SETTINGS': JSON.stringify(process.env.PUBLIC_SHOW_SETTINGS),
'import.meta.env.PUBLIC_ACCESS_PASSWORD': JSON.stringify(process.env.PUBLIC_ACCESS_PASSWORD)
};
};
// https://astro.build/config
export default defineConfig({
integrations: [tailwind()],
output: 'server',
adapter: DEPLOY_TARGET === 'vercel' ? vercel() : node({
mode: 'standalone'
}),
server: {
host: '0.0.0.0',
port: 4321
},
vite: {
server: {
watch: {
usePolling: true
}
},
ssr: {
noExternal: ['@astrojs/node']
},
define: getEnvConfig()
}
});