diff --git a/templates/compose/trigger-without-database.yaml b/templates/compose/trigger-without-database.yaml new file mode 100644 index 000000000..4fc1f8992 --- /dev/null +++ b/templates/compose/trigger-without-database.yaml @@ -0,0 +1,20 @@ +# documentation: https://trigger.dev/docs/documentation/guides/self-hosting +# slogan: The open source Background Jobs framework for TypeScript +# tags: trigger.dev, background jobs, typescript, trigger, jobs, cron, scheduler + +services: + trigger: + image: ghcr.io/triggerdotdev/trigger.dev:latest + environment: + - SERVICE_FQDN_TRIGGER + - LOGIN_ORIGIN=$SERVICE_FQDN_TRIGGER + - APP_ORIGIN=$SERVICE_FQDN_TRIGGER + - MAGIC_LINK_SECRET=$SERVICE_PASSWORD_64_MAGIC + - ENCRYPTION_KEY=$SERVICE_PASSWORD_64_ENCRYPTION + - SESSION_SECRET=$SERVICE_PASSWORD_64_SESSION + - DATABASE_URL=${DATABASE_URL} + - DIRECT_URL=${DATABASE_URL} + - RUNTIME_PLATFORM=docker-compose + - NODE_ENV=production + healthcheck: + test: ["NONE"] diff --git a/templates/compose/trigger.yaml b/templates/compose/trigger.yaml new file mode 100644 index 000000000..b297fea63 --- /dev/null +++ b/templates/compose/trigger.yaml @@ -0,0 +1,41 @@ +# documentation: https://trigger.dev/docs/documentation/guides/self-hosting +# slogan: The open source Background Jobs framework for TypeScript +# tags: trigger.dev, background jobs, typescript, trigger, jobs, cron, scheduler + +services: + trigger: + image: ghcr.io/triggerdotdev/trigger.dev:latest + environment: + - SERVICE_FQDN_TRIGGER + - LOGIN_ORIGIN=$SERVICE_FQDN_TRIGGER + - APP_ORIGIN=$SERVICE_FQDN_TRIGGER + - MAGIC_LINK_SECRET=$SERVICE_PASSWORD_64_MAGIC + - ENCRYPTION_KEY=$SERVICE_PASSWORD_64_ENCRYPTION + - SESSION_SECRET=$SERVICE_PASSWORD_64_SESSION + - POSTGRES_USER=$SERVICE_USER_POSTGRES + - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES + - POSTGRES_DB=${POSTGRES_DB:-trigger} + - POSTGRES_HOST=postgres + - DATABASE_URL=postgres://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/$POSTGRES_DB + - DIRECT_URL=postgres://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/$POSTGRES_DB + - RUNTIME_PLATFORM=docker-compose + - NODE_ENV=production + depends_on: + postgresql: + condition: service_healthy + healthcheck: + test: ["NONE"] + postgresql: + image: postgres:15-alpine + volumes: + - postgresql-data:/var/lib/postgresql/data + environment: + - POSTGRES_USER=$SERVICE_USER_POSTGRES + - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES + - POSTGRES_DB=${POSTGRES_DB:-trigger} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 20s + retries: 10 + diff --git a/templates/service-templates.json b/templates/service-templates.json index 9b6b4c2fe..36ee6895f 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -441,6 +441,34 @@ "internet" ] }, + "trigger-without-database": { + "documentation": "https:\/\/trigger.dev\/docs\/documentation\/guides\/self-hosting", + "slogan": "The open source Background Jobs framework for TypeScript", + "compose": "c2VydmljZXM6CiAgdHJpZ2dlcjoKICAgIGltYWdlOiAnZ2hjci5pby90cmlnZ2VyZG90ZGV2L3RyaWdnZXIuZGV2OmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9UUklHR0VSCiAgICAgIC0gTE9HSU5fT1JJR0lOPSRTRVJWSUNFX0ZRRE5fVFJJR0dFUgogICAgICAtIEFQUF9PUklHSU49JFNFUlZJQ0VfRlFETl9UUklHR0VSCiAgICAgIC0gTUFHSUNfTElOS19TRUNSRVQ9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFHSUMKICAgICAgLSBFTkNSWVBUSU9OX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9FTkNSWVBUSU9OCiAgICAgIC0gU0VTU0lPTl9TRUNSRVQ9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfU0VTU0lPTgogICAgICAtICdEQVRBQkFTRV9VUkw9JHtEQVRBQkFTRV9VUkx9JwogICAgICAtICdESVJFQ1RfVVJMPSR7REFUQUJBU0VfVVJMfScKICAgICAgLSBSVU5USU1FX1BMQVRGT1JNPWRvY2tlci1jb21wb3NlCiAgICAgIC0gTk9ERV9FTlY9cHJvZHVjdGlvbgogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBOT05FCg==", + "tags": [ + "trigger.dev", + "background jobs", + "typescript", + "trigger", + "jobs", + "cron", + "scheduler" + ] + }, + "trigger": { + "documentation": "https:\/\/trigger.dev\/docs\/documentation\/guides\/self-hosting", + "slogan": "The open source Background Jobs framework for TypeScript", + "compose": "c2VydmljZXM6CiAgdHJpZ2dlcjoKICAgIGltYWdlOiAnZ2hjci5pby90cmlnZ2VyZG90ZGV2L3RyaWdnZXIuZGV2OmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9UUklHR0VSCiAgICAgIC0gTE9HSU5fT1JJR0lOPSRTRVJWSUNFX0ZRRE5fVFJJR0dFUgogICAgICAtIEFQUF9PUklHSU49JFNFUlZJQ0VfRlFETl9UUklHR0VSCiAgICAgIC0gTUFHSUNfTElOS19TRUNSRVQ9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFHSUMKICAgICAgLSBFTkNSWVBUSU9OX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9FTkNSWVBUSU9OCiAgICAgIC0gU0VTU0lPTl9TRUNSRVQ9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfU0VTU0lPTgogICAgICAtIFBPU1RHUkVTX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFUwogICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREI6LXRyaWdnZXJ9JwogICAgICAtIFBPU1RHUkVTX0hPU1Q9cG9zdGdyZXMKICAgICAgLSAnREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vJFNFUlZJQ0VfVVNFUl9QT1NUR1JFUzokU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU0Bwb3N0Z3Jlc3FsOjU0MzIvJFBPU1RHUkVTX0RCJwogICAgICAtICdESVJFQ1RfVVJMPXBvc3RncmVzOi8vJFNFUlZJQ0VfVVNFUl9QT1NUR1JFUzokU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU0Bwb3N0Z3Jlc3FsOjU0MzIvJFBPU1RHUkVTX0RCJwogICAgICAtIFJVTlRJTUVfUExBVEZPUk09ZG9ja2VyLWNvbXBvc2UKICAgICAgLSBOT0RFX0VOVj1wcm9kdWN0aW9uCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3Jlc3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIE5PTkUKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNS1hbHBpbmUnCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQjotdHJpZ2dlcn0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3BnX2lzcmVhZHkgLVUgJCR7UE9TVEdSRVNfVVNFUn0gLWQgJCR7UE9TVEdSRVNfREJ9JwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==", + "tags": [ + "trigger.dev", + "background jobs", + "typescript", + "trigger", + "jobs", + "cron", + "scheduler" + ] + }, "umami": { "documentation": "https:\/\/umami.is\/docs\/getting-started", "slogan": "Umami is a lightweight, self-hosted web analytics platform designed to provide website owners with insights into visitor behavior without compromising user privacy.",