cloudaxe-opencode/infra/app.ts

70 lines
2 KiB
TypeScript
Raw Normal View History

2025-08-08 17:22:54 +00:00
import { domain } from "./stage"
2025-05-23 19:57:33 +00:00
const GITHUB_APP_ID = new sst.Secret("GITHUB_APP_ID")
const GITHUB_APP_PRIVATE_KEY = new sst.Secret("GITHUB_APP_PRIVATE_KEY")
2025-09-29 18:17:53 +00:00
export const EMAILOCTOPUS_API_KEY = new sst.Secret("EMAILOCTOPUS_API_KEY")
2025-10-20 20:17:49 +00:00
const ADMIN_SECRET = new sst.Secret("ADMIN_SECRET")
2026-01-21 04:06:06 +00:00
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")
2025-05-23 18:17:45 +00:00
const bucket = new sst.cloudflare.Bucket("Bucket")
export const api = new sst.cloudflare.Worker("Api", {
2025-05-23 19:57:33 +00:00
domain: `api.${domain}`,
2025-05-23 18:17:45 +00:00
handler: "packages/function/src/api.ts",
2025-07-03 13:58:25 +00:00
environment: {
WEB_DOMAIN: domain,
},
2025-05-23 18:17:45 +00:00
url: true,
2026-01-21 04:06:06 +00:00
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,
],
2025-05-23 18:17:45 +00:00
transform: {
worker: (args) => {
2025-05-30 18:40:53 +00:00
args.logpush = true
if ($app.stage === "vimtor" || $app.stage === "adam") return
2025-05-23 18:17:45 +00:00
args.bindings = $resolve(args.bindings).apply((bindings) => [
...bindings,
{
name: "SYNC_SERVER",
type: "durable_object_namespace",
className: "SyncServer",
},
])
args.migrations = {
2025-06-19 21:20:13 +00:00
// Note: when releasing the next tag, make sure all stages use tag v2
2025-08-21 10:02:32 +00:00
oldTag: $app.stage === "production" || $app.stage === "thdxr" ? "" : "v1",
newTag: $app.stage === "production" || $app.stage === "thdxr" ? "" : "v1",
2025-08-21 09:52:55 +00:00
//newSqliteClasses: ["SyncServer"],
2025-05-23 18:17:45 +00:00
}
},
},
})
2025-09-03 03:56:10 +00:00
new sst.cloudflare.x.Astro("Web", {
2025-09-03 03:30:26 +00:00
domain: "docs." + domain,
2025-06-05 19:37:17 +00:00
path: "packages/web",
2025-05-23 18:40:28 +00:00
environment: {
2025-07-07 20:31:10 +00:00
// For astro config
2025-07-07 20:25:39 +00:00
SST_STAGE: $app.stage,
2025-08-08 17:22:54 +00:00
VITE_API_URL: api.url.apply((url) => url!),
2025-05-23 18:40:28 +00:00
},
})
2025-12-23 21:31:18 +00:00
new sst.cloudflare.StaticSite("WebApp", {
2025-12-23 22:03:00 +00:00
domain: "app." + domain,
path: "packages/app",
build: {
command: "bun turbo build",
output: "./dist",
},
})