| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- export const domain = (() => {
- if ($app.stage === "production") return "opencode.ai"
- if ($app.stage === "dev") return "dev.opencode.ai"
- return `${$app.stage}.dev.opencode.ai`
- })()
- 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],
- transform: {
- worker: (args) => {
- args.logpush = true
- 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" ? "" : "v1",
- newTag: $app.stage === "production" ? "" : "v1",
- //newSqliteClasses: ["SyncServer"],
- }
- },
- },
- })
- new sst.cloudflare.x.Astro("Web", {
- domain,
- path: "packages/web",
- environment: {
- // For astro config
- SST_STAGE: $app.stage,
- VITE_API_URL: api.url,
- },
- })
|