Skip to content

web: Add S3-compatible blob storage with filesystem fallback#10

Merged
tomjnsn merged 1 commit intomainfrom
s3-storage
Feb 17, 2026
Merged

web: Add S3-compatible blob storage with filesystem fallback#10
tomjnsn merged 1 commit intomainfrom
s3-storage

Conversation

@tomjnsn
Copy link
Copy Markdown
Owner

@tomjnsn tomjnsn commented Feb 17, 2026

Summary

  • Rewrite storage.ts to use @aws-sdk/client-s3 (GetObject, PutObject, DeleteObject, HeadObject) with forcePathStyle for MinIO/DO Spaces compatibility
  • Fall back to local filesystem storage when S3_BUCKET is not set (backward-compatible with existing self-hosted installs)
  • Add S3 env vars to env.ts: S3_ENDPOINT, S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY
  • Add @aws-sdk/client-s3 to Dockerfile runtime dependencies

Test plan

  • bun run check passes (format, lint, type check)
  • docker build -t agentlogs . succeeds
  • With S3 env vars set (e.g. MinIO): upload transcript → blob stored in S3, view transcript → blob retrieved
  • Without S3_BUCKET set: falls back to filesystem storage (backward-compatible)

🤖 Generated with Claude Code

Replace filesystem-only storage with S3 client (GetObject, PutObject,
DeleteObject, HeadObject). Falls back to local filesystem when S3_BUCKET
is not set, keeping backward compatibility for existing deployments.

New env vars: S3_ENDPOINT, S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY.
Uses forcePathStyle for MinIO/DO Spaces compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

🔮 View transcript: https://agentlogs.chsprc.com/s/jqy8bj12znrbk70vkp09u7qf
@tomjnsn tomjnsn merged commit 005a32a into main Feb 17, 2026
0 of 3 checks passed
tomjnsn added a commit that referenced this pull request Feb 24, 2026
Replace filesystem-only storage with S3 client (GetObject, PutObject,
DeleteObject, HeadObject). Falls back to local filesystem when S3_BUCKET
is not set, keeping backward compatibility for existing deployments.

New env vars: S3_ENDPOINT, S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY.
Uses forcePathStyle for MinIO/DO Spaces compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

🔮 View transcript: https://agentlogs.chsprc.com/s/jqy8bj12znrbk70vkp09u7qf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant