Deploy Strapi v5 + Resend + S3
Deploy and Host Strapi v5 + Resend + S3 with Railway
Postgres
railwayapp-templates/postgres-ssl:17
Just deployed
/var/lib/postgresql/data
Strapi
compbyter/strapi-with-resend-email-provider
Just deployed
Deploy and Host Strapi v5 + Resend + S3 on Railway
Starter template to spin up Strapi v5 on Railway with PostgreSQL, AWS S3 media storage, and Resend for transactional email. Comes prewired with TypeScript and GraphQL. Built for Railway’s outbound rules: no raw SMTP on Free/Trial/Hobby—use Resend’s HTTP API instead. Deploy in minutes with sane defaults.
About Hosting Strapi v5 + Resend + S3
This template provisions a Strapi v5 app backed by PostgreSQL on Railway, with S3 for media and Resend for email. The Strapi service talks to the database over a private network to reduce egress and improve security. Configure your AWS credentials and RESEND_API_KEY
as environment variables and you’re ready to send emails and upload media. Local dev stays in sync with cloud via the Railway CLI. GraphQL support is included for flexible querying. Designed to respect Railway’s outbound networking policy (SMTP disabled on Free/Trial/Hobby), this setup uses Resend’s HTTPS API for reliable, cost-effective email.
Common Use Cases
- Headless CMS projects that need consistent, S3-backed media storage across environments
- Email-enabled applications aligned with Railway’s email policy: Free, Trial, and Hobby plans have SMTP disabled, so transactional email services with HTTPS APIs (like Resend) must be used. While SMTP is available on Pro and above, HTTPS APIs are still recommended for better deliverability, features, and analytics. Policy:
- Teams adopting a TypeScript-first Strapi stack with GraphQL
Resend Domain Verification (Required for Deliverability)
To send emails via Resend, you must complete domain and sender verification in your Resend dashboard (add the required DNS records and finish any additional checks). The template will boot and run either way, but messages will only be delivered once your domain is verified by Resend. Until verification is complete, sends may fail, be queued, or suffer limited deliverability.
Dependencies for Strapi v5 + Resend + S3 Hosting
- PostgreSQL (provisioned automatically by this template) pre-configured
- AWS S3 bucket (optional)
- Resend account & API key
- Strapi GraphQL plugin as pre-configured
Deployment Dependencies
-
Environment Variables
- AWS:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_BUCKET_NAME
AWS_REGION
- Resend:
RESEND_API_KEY
EMAIL_DEFAULT_FROM
EMAIL_DEFAULT_REPLY_TO
- Other variables are randomly generated on deploy.
- AWS:
Implementation Details
> Local development
>
> bash > # After ejecting from the Railway template > git clone > cd your-repo > yarn install # or npm install > railway login > railway link > # ensure env vars are set in Railway first, then: > railway run yarn develop # or: railway run npm run develop >
>
> Open the Strapi admin panel at .
Why Deploy Strapi v5 + Resend + S3 on Railway?
Railway provides a single, production-ready home for this stack—Strapi v5 (TypeScript), PostgreSQL, Resend email, and AWS S3 for media storage—so you skip manual configuration while retaining effortless vertical and horizontal scaling as your app grows.
By deploying Strapi v5 + Resend + S3 on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content