Skip to content

Commit 11ff9ef

Browse files
committed
chore: Set up S3 bucket for media
1 parent 897d1b8 commit 11ff9ef

File tree

6 files changed

+159
-8
lines changed

6 files changed

+159
-8
lines changed

.github/workflows/build.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ env:
2020
NODE_VERSION: 22
2121
FLYCTL_VERSION: 0.3.55
2222
WEBSITE_INTERNAL_PORT: 3000
23-
# PREVIEW_MEDIA_S3_BUCKET: lapuertahostels-media-preview
24-
# MEDIA_S3_REGION: eu-west-3
23+
MEDIA_S3_REGION: eu-west-3
2524

2625
jobs:
2726
website-lint:
@@ -219,6 +218,8 @@ jobs:
219218
--app ${{ needs.define-env.outputs.fly_app_website }} \
220219
--config fly.website.toml \
221220
--image ${{ needs.website-build-push.outputs.image }} \
221+
--env MEDIA_S3_REGION=${{ env.MEDIA_S3_REGION }} \
222+
--env MEDIA_S3_BUCKET=${{ needs.define-env.outputs.s3_bucket }} \
222223
env:
223224
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
224225

@@ -301,7 +302,7 @@ jobs:
301302
fly_app_website: ${{ steps.define-env.outputs.fly_app_website }}
302303
# analytics_domain_website: ${{ steps.define-env.outputs.analytics_domain_website }}
303304
canonical_hostname_website: ${{ steps.define-env.outputs.canonical_hostname_website }}
304-
# s3_bucket: ${{ steps.define-env.outputs.s3_bucket }}
305+
s3_bucket: ${{ steps.define-env.outputs.s3_bucket }}
305306
steps:
306307
- name: Define environment
307308
run: |
@@ -322,7 +323,7 @@ jobs:
322323
echo "fly_app_website=fxmk-staging" >> "$GITHUB_OUTPUT"
323324
# echo "analytics_domain_website=staging.lapuertahostels.co" >> "$GITHUB_OUTPUT"
324325
echo "canonical_hostname_website=fxmk-staging.fly.dev" >> "$GITHUB_OUTPUT"
325-
# echo "s3_bucket=lapuertahostels-media-staging" >> "$GITHUB_OUTPUT"
326+
echo "s3_bucket=fxmk-media-staging" >> "$GITHUB_OUTPUT"
326327
;;
327328
esac
328329
id: define-env

apps/website/.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@ NEXT_PUBLIC_SERVER_URL=http://localhost:3000
1212

1313
# Secret used to authenticate cron jobs
1414
CRON_SECRET=YOUR_CRON_SECRET_HERE
15+
16+
MEDIA_S3_BUCKET=
17+
MEDIA_S3_REGION=
18+
MEDIA_S3_ACCESS_KEY_ID=
19+
MEDIA_S3_SECRET_ACCESS_KEY=

apps/website/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"@payloadcms/plugin-search": "latest",
3030
"@payloadcms/plugin-seo": "latest",
3131
"@payloadcms/richtext-lexical": "latest",
32+
"@payloadcms/storage-s3": "^3.16.0",
3233
"@payloadcms/ui": "latest",
3334
"@radix-ui/react-checkbox": "^1.0.4",
3435
"@radix-ui/react-label": "^2.0.2",

apps/website/src/payload.config.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,7 @@ export default buildConfig({
6565
collections: [Pages, Posts, Media, Categories, Users],
6666
cors: [getServerSideURL()].filter(Boolean),
6767
globals: [Header, Footer],
68-
plugins: [
69-
...plugins,
70-
// storage-adapter-placeholder
71-
],
68+
plugins,
7269
secret: process.env.PAYLOAD_SECRET,
7370
sharp,
7471
typescript: {

apps/website/src/plugins/index.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
} from "@payloadcms/richtext-lexical";
1515
import { searchFields } from "@/search/fieldOverrides";
1616
import { beforeSyncWithSearch } from "@/search/beforeSync";
17+
import { s3Storage } from "@payloadcms/storage-s3";
1718

1819
import { Page, Post } from "@/payload-types";
1920
import { getServerSideURL } from "@/utilities/getURL";
@@ -100,4 +101,18 @@ export const plugins: Plugin[] = [
100101
},
101102
}),
102103
payloadCloudPlugin(),
104+
105+
s3Storage({
106+
collections: {
107+
media: true,
108+
},
109+
bucket: process.env.MEDIA_S3_BUCKET!,
110+
config: {
111+
credentials: {
112+
accessKeyId: process.env.MEDIA_S3_ACCESS_KEY_ID!,
113+
secretAccessKey: process.env.MEDIA_S3_SECRET_ACCESS_KEY!,
114+
},
115+
region: process.env.MEDIA_S3_REGION!,
116+
},
117+
}),
103118
];

0 commit comments

Comments
 (0)