From fbdc15f6d03c55d6359ecadf4003f5587b6284f8 Mon Sep 17 00:00:00 2001 From: Tom Jensen Date: Tue, 17 Feb 2026 19:18:15 -0700 Subject: [PATCH 1/2] Add DigitalOcean App Platform spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 🔮 View transcript: https://agentlogs.chsprc.com/s/mvtj1yk0kq4gmhf0ym9962i5 --- .do/app.yaml | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .do/app.yaml diff --git a/.do/app.yaml b/.do/app.yaml new file mode 100644 index 00000000..191dd90f --- /dev/null +++ b/.do/app.yaml @@ -0,0 +1,57 @@ +name: agentlogs +region: sfo3 + +services: + - name: web + github: + repo: tomjnsn/agentlogs + branch: main + deploy_on_push: true + dockerfile_path: Dockerfile + http_port: 3000 + instance_count: 1 + instance_size_slug: basic-xxs + routes: + - path: / + envs: + - key: DATABASE_URL + scope: RUN_TIME + value: ${db.DATABASE_URL} + - key: S3_ENDPOINT + scope: RUN_TIME + value: CHANGE_ME + - key: S3_BUCKET + scope: RUN_TIME + value: CHANGE_ME + - key: S3_REGION + scope: RUN_TIME + value: CHANGE_ME + - key: S3_ACCESS_KEY + scope: RUN_TIME + type: SECRET + value: CHANGE_ME + - key: S3_SECRET_KEY + scope: RUN_TIME + type: SECRET + value: CHANGE_ME + - key: BETTER_AUTH_SECRET + scope: RUN_TIME + type: SECRET + value: CHANGE_ME + - key: WEB_URL + scope: RUN_TIME + value: CHANGE_ME + - key: GITHUB_CLIENT_ID + scope: RUN_TIME + value: CHANGE_ME + - key: GITHUB_CLIENT_SECRET + scope: RUN_TIME + type: SECRET + value: CHANGE_ME + +databases: + - name: db + engine: PG + version: "16" + size: db-s-1vcpu-1gb + num_nodes: 1 From fe1d7482d3b5c6a4b7d187066afb77ea0f665d65 Mon Sep 17 00:00:00 2001 From: Tom Jensen Date: Tue, 17 Feb 2026 19:18:23 -0700 Subject: [PATCH 2/2] web: Use public schema for Drizzle migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DO managed Postgres doesn't grant CREATE SCHEMA permission to app users, causing migrations to fail. Use the public schema for the Drizzle migration tracking table instead. Closes #12 Co-Authored-By: Claude Opus 4.6 🔮 View transcript: https://agentlogs.chsprc.com/s/mvtj1yk0kq4gmhf0ym9962i5 --- packages/web/scripts/migrate.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/web/scripts/migrate.mjs b/packages/web/scripts/migrate.mjs index c4cb3e8b..d2cc1757 100644 --- a/packages/web/scripts/migrate.mjs +++ b/packages/web/scripts/migrate.mjs @@ -24,7 +24,10 @@ const client = postgres(DATABASE_URL, { max: 1 }); const db = drizzle(client); try { - await migrate(db, { migrationsFolder: resolve(__dirname, "../migrations") }); + await migrate(db, { + migrationsFolder: resolve(__dirname, "../migrations"), + migrationsSchema: "public", + }); console.log("[migrate] Migrations applied successfully."); } catch (error) { console.error("[migrate] Migration failed:", error);