useSend is a Railway Partner and Railway offers the quickest way to get a useSend instance running. Deploy on Railway

Prerequisites

If you have any questions join #self-host on discord.

Step 1: Deploy on Railway

  1. Click the button above and choose Deploy now.
  2. Wait for the deployment to complete and open the service.
  3. Note the assigned Railway domain (you can add a custom domain later).
  4. You can redeploy from the dashboard anytime to pull the latest image.

Step 2: Environment variables

useSend depends on AWS SES to send emails and SNS to receive email status. The Railway template provisions Postgres (database) and Redis (queue) automatically—no action needed for those. Add the following variables under your service’s Variables tab.
1

AWS credentials

tl;dr: In the AWS Console, create a new IAM user with programmatic access. Attach AmazonSNSFullAccess and AmazonSESFullAccess. Then create an access key.Add the following environment variables in Railway.
AWS_ACCESS_KEY=<access-key-id>
AWS_SECRET_KEY=<secret-access-key>
Follow this for detailed steps: Create AWS credentials
2

GitHub app credentials for login

useSend uses GitHub authentication for login.Use this link to create a GitHub appCallback URL : https://<your-railway-domain>/api/auth/callback/githubgithub appAdd the following environment variables in Railway.
GITHUB_ID="<your-github-client-id>"
GITHUB_SECRET="<your-github-client-secret>"
3

NextAuth URL

Set your public app URL for NextAuth.Add the following variables in Railway:
NEXTAUTH_URL="https://<your-railway-domain>"
After adding variables, click Redeploy so the service picks up the new configuration.

Step 3: Optional — Custom domain

  • Add a custom domain in Railway and configure DNS.
  • Update NEXTAUTH_URL to your new domain (e.g., https://mail.yourdomain.com).
  • Redeploy to apply the change.

Step 4: Set up SES region in useSend

In order to send emails, you need to select a region in AWS. Use a region where your users are located / where useSend is hosted. If you’re unsure, use us-east-1. You can check available regions here Once you log in to useSend, it will prompt you add SES configuration.
  • Add the region
  • Add the callback url, which is basically the app url. Note this should be accessible from the internet. This is how you get the delivery status of the emails.
  • You don’t need to update the send rate, it’s automatically based on your account.
add ses settings

Step 5: Get out of SES sandbox

Don’t forget to get the SES account out of sandbox mode.
sandbox mode

Next steps

You’re all set up.
  • Set up a domain.
  • Create an API key.
  • Start sending emails.
If you have any questions, please join #self-host on discord.