From 38fdb8c095259071a01867f738f918eb6ce5e775 Mon Sep 17 00:00:00 2001 From: Yury <994443+EcksDy@users.noreply.github.com> Date: Sun, 26 Oct 2025 03:33:05 +0400 Subject: [PATCH] Added Inngest v1.12.1 (#462) * Added Inngest v1.12.1 * Fixed docker-compose name * Fixed metajson --- blueprints/inngest/docker-compose.yml | 92 +++++++++++++++++++++++++++ blueprints/inngest/inngest.svg | 6 ++ blueprints/inngest/template.toml | 38 +++++++++++ meta.json | 19 ++++++ 4 files changed, 155 insertions(+) create mode 100644 blueprints/inngest/docker-compose.yml create mode 100644 blueprints/inngest/inngest.svg create mode 100644 blueprints/inngest/template.toml diff --git a/blueprints/inngest/docker-compose.yml b/blueprints/inngest/docker-compose.yml new file mode 100644 index 00000000..601184f1 --- /dev/null +++ b/blueprints/inngest/docker-compose.yml @@ -0,0 +1,92 @@ +version: '3.8' + +services: + inngest: + image: inngest/inngest:v1.12.1 + restart: unless-stopped + command: > + inngest start + --host 0.0.0.0 + --port 8288 + --event-key ${INNGEST_EVENT_KEY} + --signing-key ${INNGEST_SIGNING_KEY} + --postgres-uri ${INNGEST_POSTGRES_URI} + --redis-uri ${INNGEST_REDIS_URI} + --poll-interval ${INNGEST_POLL_INTERVAL:-60} + --queue-workers ${INNGEST_QUEUE_WORKERS:-100} + environment: + # Core Configuration + - INNGEST_PORT=8288 + - INNGEST_HOST=0.0.0.0 + - INNGEST_EVENT_KEY=${INNGEST_EVENT_KEY} + - INNGEST_SIGNING_KEY=${INNGEST_SIGNING_KEY} + + # Database & Cache + - INNGEST_POSTGRES_URI=${INNGEST_POSTGRES_URI} + - INNGEST_REDIS_URI=${INNGEST_REDIS_URI} + + # Performance Tuning + - INNGEST_POLL_INTERVAL=${INNGEST_POLL_INTERVAL:-60} + - INNGEST_QUEUE_WORKERS=${INNGEST_QUEUE_WORKERS:-100} + - INNGEST_RETRY_INTERVAL=${INNGEST_RETRY_INTERVAL:-1} + - INNGEST_TICK=${INNGEST_TICK:-150} + + # Logging + - INNGEST_LOG_LEVEL=${INNGEST_LOG_LEVEL:-info} + - INNGEST_JSON=${INNGEST_JSON:-false} + - INNGEST_VERBOSE=${INNGEST_VERBOSE:-false} + ports: + - 8288 + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + volumes: + - inngest_data:/home/inngest/.inngest + healthcheck: + test: ['CMD', 'curl', '-f', 'http://localhost:8288/health'] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C + - PGUSER=${POSTGRES_USER} + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - 5432 + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + restart: unless-stopped + command: redis-server --appendonly yes --maxmemory 512mb --maxmemory-policy allkeys-lru --save 60 1000 + sysctls: + - net.core.somaxconn=1024 + volumes: + - redis_data:/data + ports: + - 6379 + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + interval: 10s + timeout: 3s + retries: 3 + +volumes: + inngest_data: + postgres_data: + redis_data: diff --git a/blueprints/inngest/inngest.svg b/blueprints/inngest/inngest.svg new file mode 100644 index 00000000..488e97c8 --- /dev/null +++ b/blueprints/inngest/inngest.svg @@ -0,0 +1,6 @@ + + + + + I + \ No newline at end of file diff --git a/blueprints/inngest/template.toml b/blueprints/inngest/template.toml new file mode 100644 index 00000000..9fbbc54f --- /dev/null +++ b/blueprints/inngest/template.toml @@ -0,0 +1,38 @@ +[variables] +main_domain = "${domain}" +event_key = "${jwt:32}" # Must be hex string with even number of chars +signing_key = "${jwt:32}" # Must be hex string with even number of chars +postgres_password = "${password:24}" + +[config] +mounts = [] + +[[config.domains]] +serviceName = "inngest" +port = 8_288 +host = "${main_domain}" + +[config.env] +# Production Inngest Authentication Keys +INNGEST_EVENT_KEY = "${event_key}" +INNGEST_SIGNING_KEY = "${signing_key}" + +# Database Configuration +INNGEST_POSTGRES_URI = "postgresql://inngest:${postgres_password}@postgres:5432/inngest?sslmode=disable" +POSTGRES_DB = "inngest" +POSTGRES_USER = "inngest" +POSTGRES_PASSWORD = "${postgres_password}" + +# Redis Configuration +INNGEST_REDIS_URI = "redis://redis:6379" + +# Performance & Scaling Configuration +INNGEST_POLL_INTERVAL = "60" +INNGEST_QUEUE_WORKERS = "100" +INNGEST_RETRY_INTERVAL = "1" +INNGEST_TICK = "150" + +# Logging Configuration +INNGEST_LOG_LEVEL = "info" +INNGEST_JSON = "true" +INNGEST_VERBOSE = "false" diff --git a/meta.json b/meta.json index 2f5c5db3..058fa3e4 100644 --- a/meta.json +++ b/meta.json @@ -2862,6 +2862,25 @@ "database" ] }, + { + "id": "inngest", + "name": "Inngest", + "version": "v1.12.1", + "description": "Inngest is a developer platform for serverless event-driven workflows. Build reliable, scalable background functions and workflows with built-in retries, scheduling, and observability.", + "logo": "inngest.svg", + "links": { + "github": "https://github.com/inngest/inngest", + "website": "https://www.inngest.com/", + "docs": "https://www.inngest.com/docs/self-hosting" + }, + "tags": [ + "workflow", + "automation", + "self-hosted", + "serverless", + "events" + ] + }, { "id": "invoiceshelf", "name": "InvoiceShelf",