This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

stigmergic / src / container.ts
1.5 kB 40 lines
1import { Container } from "@cloudflare/containers"; 2import type { DurableObject } from "cloudflare:workers"; 3 4interface ContainerEnv { 5 CARRY_GITHUB_TOKEN: string; 6 OBSIDIAN_AUTH_TOKEN: string; 7 OBSIDIAN_ENCRYPTION_KEY: string; 8 OBSIDIAN_ENCRYPTION_SALT: string; 9} 10 11export class StrataContainer extends Container<ContainerEnv> { 12 defaultPort = 8080; 13 sleepAfter = "5m"; 14 15 constructor(ctx: DurableObject["ctx"], env: ContainerEnv) { 16 super(ctx, env); 17 // Set env vars before container starts — inject secrets from worker bindings 18 this.envVars = { 19 VAULT_PATH: "/data/vault", 20 CARRY_PATH: "/data/carry", 21 CARRY_BRANCH: "main", 22 ...(env.CARRY_GITHUB_TOKEN ? { CARRY_GITHUB_TOKEN: env.CARRY_GITHUB_TOKEN } : {}), 23 ...(env.OBSIDIAN_AUTH_TOKEN ? { OBSIDIAN_AUTH_TOKEN: env.OBSIDIAN_AUTH_TOKEN } : {}), 24 OBSIDIAN_VAULT_ID: "6472c50492efb918c2878e61048218f2", 25 OBSIDIAN_VAULT_NAME: "notes", 26 OBSIDIAN_SYNC_HOST: "sync-53.obsidian.md", 27 ...(env.OBSIDIAN_ENCRYPTION_KEY ? { OBSIDIAN_ENCRYPTION_KEY: env.OBSIDIAN_ENCRYPTION_KEY } : {}), 28 ...(env.OBSIDIAN_ENCRYPTION_SALT ? { OBSIDIAN_ENCRYPTION_SALT: env.OBSIDIAN_ENCRYPTION_SALT } : {}), 29 }; 30 } 31 32 async onStart() { 33 const has = (k: string) => !!this.envVars?.[k]; 34 console.log("[strata-container] started, carry:", has("CARRY_GITHUB_TOKEN") ? "set" : "missing", "obsidian:", has("OBSIDIAN_AUTH_TOKEN") ? "set" : "missing"); 35 } 36 37 async onStop() { 38 console.log("[strata-container] stopped"); 39 } 40}