import { domain } from "./stage"const GITHUB_APP_ID = new sst.Secret("GITHUB_APP_ID")const GITHUB_APP_PRIVATE_KEY = new sst.Secret("GITHUB_APP_PRIVATE_KEY")export const EMAILOCTOPUS_API_KEY = new sst.Secret("EMAILOCTOPUS_API_KEY")const ADMIN_SECRET = new sst.Secret("ADMIN_SECRET")const DISCORD_SUPPORT_BOT_TOKEN = new sst.Secret("DISCORD_SUPPORT_BOT_TOKEN")const DISCORD_SUPPORT_CHANNEL_ID = new sst.Secret("DISCORD_SUPPORT_CHANNEL_ID")const FEISHU_APP_ID = new sst.Secret("FEISHU_APP_ID")const FEISHU_APP_SECRET = new sst.Secret("FEISHU_APP_SECRET")const bucket = new sst.cloudflare.Bucket("Bucket")export const api = new sst.cloudflare.Worker("Api", {domain: `api.${domain}`,handler: "packages/function/src/api.ts",environment: {WEB_DOMAIN: domain,},url: true,link: [bucket,GITHUB_APP_ID,GITHUB_APP_PRIVATE_KEY,ADMIN_SECRET,DISCORD_SUPPORT_BOT_TOKEN,DISCORD_SUPPORT_CHANNEL_ID,FEISHU_APP_ID,FEISHU_APP_SECRET,],transform: {worker: (args) => {args.logpush = trueargs.bindings = $resolve(args.bindings).apply((bindings) => [...bindings,{name: "SYNC_SERVER",type: "durable_object_namespace",className: "SyncServer",},])args.migrations = {// Note: when releasing the next tag, make sure all stages use tag v2oldTag: $app.stage === "production" || $app.stage === "thdxr" ? "" : "v1",newTag: $app.stage === "production" || $app.stage === "thdxr" ? "" : "v1",//newSqliteClasses: ["SyncServer"],}},},})new sst.cloudflare.x.Astro("Web", {domain: "docs." + domain,path: "packages/web",environment: {// For astro configSST_STAGE: $app.stage,VITE_API_URL: api.url.apply((url) => url!),},})new sst.cloudflare.StaticSite("WebApp", {domain: "app." + domain,path: "packages/app",build: {command: "bun turbo build",output: "./dist",},})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。