Deploy self hosted version of Trigger.dev to Fly.io
You can use this repository as a jumping off point for deploying a self-hosted version of Trigger.dev on Fly.io using the Trigger.dev public docker image located at ghcr.io/triggerdotdev/trigger.dev:latest
You should fork the repository before starting so you can make changes and commit them. For example, you’ll need to change the app
property in the fly.toml
file to be something other than app = "trigger-v2-fly-demo"
.
fly launch
and make sure to answer them in the following way:MAGIC_LINK_SECRET
, SESSION_SECRET
and ENCRYPTION_KEY
All of these secrets should be 16-byte random strings, which you can easily generate (and copy into your pasteboard) with the following command:
LOGIN_ORIGIN
and APP_ORIGIN
Both of these secrets should be set to the base URL of your fly application. For example https://trigger-v2-fly-demo.fly.dev
DIRECT_URL
This needs to match the value of DATABASE_URL
which was printed to your terminal after the creation step above:
AUTH_GITHUB_CLIENT_ID
and AUTH_GITHUB_CLIENT_SECRET
RESEND_API_KEY
, FROM_EMAIL
and REPLY_TO_EMAIL
We use Resend.com for email sending (including the magic-link signup/login system). They have a generous free tier of 100 emails a day that should be sufficient. Signup for Resend.com and enter the environment vars below
Call the fly secrets set
command to stage the secrets to be used on first deploy:
Now you can deploy to fly. Here we are setting the machine VM size to use 1 dedicated CPU core with 2 GB of memory, but you can run fly platform vm-sizes
to see other options. The below app will cost about $30/month.
Once deployed, you should be able to open https://<your fly app name>.fly.dev/
in your browser and create an account, either using GitHub or a magic email link.
Next you can easily bootstrap your Next.js project to use your self-hosted instance of Trigger.dev.
First, cd
into your Next.js project, then run the @trigger.dev/cli init
command to initialize your Next.js project:
When it asks for your development API key, head over to your self-hosted Trigger.dev dashboard and select the initial project you created when signing up, and head to the Environments & API Keys
page to copy your dev
API key:
Run your Next.js project dev server with npm run dev
and then in a new terminal window you will need to run the @trigger.dev/cli dev
command to connect to your Trigger.dev instance and allow it to tunnel to your local Next.js server:
At this point you should be able to navigate to your Trigger.dev dashboard and view your registered jobs