mirror of
https://github.com/beilunyang/moemail.git
synced 2025-12-24 11:30:51 +08:00
feat: Add optional environment variables for database and KV namespace configuration
This commit is contained in:
@@ -482,8 +482,10 @@ const data = await res.json();
|
||||
- `CLOUDFLARE_API_TOKEN`: Cloudflare API Token
|
||||
- `CLOUDFLARE_ACCOUNT_ID`: Cloudflare Account ID
|
||||
- `DATABASE_NAME`: D1 数据库名称
|
||||
- `DATABASE_ID`: D1 数据库 ID
|
||||
- `KV_NAMESPACE_ID`: Cloudflare KV namespace ID,用于存储网站配置
|
||||
- `DATABASE_ID`: D1 数据库 ID (可选, 如果不填, 则会自动通过 Cloudflare API 获取)
|
||||
- `KV_NAMESPACE_NAME`: Cloudflare KV namespace 名称,用于存储网站配置
|
||||
- `KV_NAMESPACE_ID`: Cloudflare KV namespace ID,用于存储网站配置 (可选, 如果不填, 则会自动通过 Cloudflare API 获取)
|
||||
- `CUSTOM_DOMAIN`: 网站自定义域名,用于访问 MoeMail (可选, 如果不填, 则会使用 Cloudflare Pages 默认域名)
|
||||
|
||||
## Github OAuth App 配置
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ const CUSTOM_DOMAIN = process.env.CUSTOM_DOMAIN;
|
||||
const PROJECT_NAME = process.env.PROJECT_NAME || "moemail";
|
||||
const DATABASE_NAME = process.env.DATABASE_NAME || "moemail-db";
|
||||
const KV_NAMESPACE_NAME = process.env.KV_NAMESPACE_NAME || "moemail-kv";
|
||||
const DATABASE_ID = process.env.DATABASE_ID;
|
||||
|
||||
const client = new Cloudflare({
|
||||
apiKey: CF_API_TOKEN,
|
||||
@@ -46,6 +47,12 @@ export const createPages = async () => {
|
||||
};
|
||||
|
||||
export const getDatabase = async () => {
|
||||
if (DATABASE_ID) {
|
||||
return {
|
||||
uuid: DATABASE_ID,
|
||||
}
|
||||
}
|
||||
|
||||
const database = await client.d1.database.get(DATABASE_NAME, {
|
||||
account_id: CF_ACCOUNT_ID,
|
||||
});
|
||||
|
||||
@@ -17,6 +17,8 @@ const DATABASE_NAME = process.env.DATABASE_NAME || "moemail-db";
|
||||
const KV_NAMESPACE_NAME = process.env.KV_NAMESPACE_NAME || "moemail-kv";
|
||||
const CUSTOM_DOMAIN = process.env.CUSTOM_DOMAIN;
|
||||
|
||||
const KV_NAMESPACE_ID = process.env.KV_NAMESPACE_ID;
|
||||
|
||||
/**
|
||||
* 验证必要的环境变量
|
||||
*/
|
||||
@@ -195,6 +197,12 @@ const migrateDatabase = () => {
|
||||
const checkAndCreateKVNamespace = async () => {
|
||||
console.log(`🔍 Checking if KV namespace "${KV_NAMESPACE_NAME}" exists...`);
|
||||
|
||||
if (KV_NAMESPACE_ID) {
|
||||
updateKVConfig(KV_NAMESPACE_ID);
|
||||
console.log(`✅ User specified KV namespace (ID: ${KV_NAMESPACE_ID})`);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
let namespace;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user