| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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 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],
- 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" || $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",
- },
- })
|