Buckets:
| 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 = true | |
| if ($app.stage === "vimtor" || $app.stage === "adam") return | |
| args.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 v2 | |
| oldTag: $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 config | |
| SST_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", | |
| }, | |
| }) | |
Xet Storage Details
- Size:
- 2.07 kB
- Xet hash:
- c4928abfda547c8316f75eaa8aeb7ee11d564809ed854ec88342325071a12f44
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.