infra: migrate deployment to Coolify with Garage S3
Some checks failed
CI / ci (push) Failing after 19s
CI / deploy (push) Has been skipped
CI / e2e (push) Has been skipped

- Remove docker-compose files (Coolify manages services individually)
- Replace MinIO with Garage (S3-compatible, actively maintained)
- Add CI deploy job: build+push :develop image on every green Develop push
- Add Coolify webhook trigger for automatic redeployment
- Update README, .env.example, and storage references
- Rename migrate script to provider-agnostic name

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-07 15:28:43 +02:00
parent 41e58d0153
commit d519a83cc4
11 changed files with 107 additions and 272 deletions

View File

@@ -6,9 +6,7 @@ import {
} from "@aws-sdk/client-s3";
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
// MinIO GitHub repository was archived Feb 2026. The S3 API abstraction
// makes the underlying provider swappable (SeaweedFS, Garage, AWS S3, etc.)
// without code changes.
// S3 API abstraction — provider-agnostic (Garage, Cloudflare R2, AWS S3).
const s3 = new S3Client({
endpoint: process.env.S3_ENDPOINT,
@@ -17,7 +15,7 @@ const s3 = new S3Client({
accessKeyId: process.env.S3_ACCESS_KEY!,
secretAccessKey: process.env.S3_SECRET_KEY!,
},
forcePathStyle: true, // REQUIRED for MinIO and most S3-compatible services
forcePathStyle: true, // REQUIRED for Garage and most S3-compatible services
});
const bucket = process.env.S3_BUCKET ?? "gearbox-images";