{
  "manifest_version": "1.0.0",
  "template": {
    "id": "8b7581e7-a103-4002-93b1-5358f68b0a8f",
    "slug": "posthog-1",
    "name": "PostHog",
    "description": "Deploy the self-hosted version of PostHog.",
    "url": "https://railway.com/deploy/posthog-1",
    "upstream": {
      "image": "ghcr.io/hexatare/posthog-railway-template/web:latest"
    }
  },
  "services": [
    {
      "name": "Plugins",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/plugins:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "ZooKeeper",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/zookeeper:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    },
    {
      "name": "Objectstorage",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/objectstorage:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    },
    {
      "name": "Property Defs RS",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/property-defs-rs:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Temporal",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/temporal:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "ClickHouse",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/clickhouse:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/clickhouse",
      "http": false
    },
    {
      "name": "Replay Capture",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/replay-capture:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Kafka Init",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/kafka-init:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Feature Flags",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/feature-flags:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "SeaweedFS",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/seaweedfs:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    },
    {
      "name": "Temporal Django Worker",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/temporal-django-worker:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Cyclotron Janitor",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/cyclotron-janitor:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Web",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/web:latest"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "Worker",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/worker:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Postgres",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/db:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql/data",
      "http": false
    },
    {
      "name": "Kafka",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/kafka"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/kafka/data",
      "http": false
    },
    {
      "name": "Livestream",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/livestream:latest"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "Redis",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/redis7:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "tcp_ports": [
        6379
      ],
      "http": false
    },
    {
      "name": "Capture",
      "source": {
        "image": "ghcr.io/hexatare/posthog-railway-template/capture:latest"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "SITE_URL",
      "service": "Plugins",
      "description": "Provide a value for SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "REDIS_URL",
      "service": "Plugins",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SECRET_KEY",
      "service": "Plugins",
      "description": "Provide a value for SECRET_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Plugins",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DATABASE_URL",
      "service": "Plugins",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CDP_REDIS_HOST",
      "service": "Plugins",
      "description": "Provide a value for CDP_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CDP_REDIS_PORT",
      "service": "Plugins",
      "description": "Provide a value for CDP_REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "LOGS_REDIS_TLS",
      "service": "Plugins",
      "description": "Provide a value for LOGS_REDIS_TLS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_HOST",
      "service": "Plugins",
      "description": "Provide a value for CLICKHOUSE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "LOGS_REDIS_HOST",
      "service": "Plugins",
      "description": "Provide a value for LOGS_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "LOGS_REDIS_PORT",
      "service": "Plugins",
      "description": "Provide a value for LOGS_REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "CLICKHOUSE_SECURE",
      "service": "Plugins",
      "description": "Provide a value for CLICKHOUSE_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_VERIFY",
      "service": "Plugins",
      "description": "Provide a value for CLICKHOUSE_VERIFY.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_DATABASE",
      "service": "Plugins",
      "description": "Provide a value for CLICKHOUSE_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "ENCRYPTION_SALT_KEYS",
      "service": "Plugins",
      "description": "Provide a value for ENCRYPTION_SALT_KEYS.",
      "secret": true,
      "strategy": "default",
      "default": "71781d6c2ecefb5c55d5db6202414b33"
    },
    {
      "key": "PERSONS_DATABASE_URL",
      "service": "Plugins",
      "description": "Provide a value for PERSONS_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "COOKIELESS_REDIS_HOST",
      "service": "Plugins",
      "description": "Provide a value for COOKIELESS_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "COOKIELESS_REDIS_PORT",
      "service": "Plugins",
      "description": "Provide a value for COOKIELESS_REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "CYCLOTRON_DATABASE_URL",
      "service": "Plugins",
      "description": "Provide a value for CYCLOTRON_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OBJECT_STORAGE_ENABLED",
      "service": "Plugins",
      "description": "Provide a value for OBJECT_STORAGE_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "OBJECT_STORAGE_ENDPOINT",
      "service": "Plugins",
      "description": "Provide a value for OBJECT_STORAGE_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "OBJECT_STORAGE_ACCESS_KEY_ID",
      "service": "Plugins",
      "description": "Provide a value for OBJECT_STORAGE_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "BEHAVIORAL_COHORTS_DATABASE_URL",
      "service": "Plugins",
      "description": "Provide a value for BEHAVIORAL_COHORTS_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OBJECT_STORAGE_SECRET_ACCESS_KEY",
      "service": "Plugins",
      "description": "Provide a value for OBJECT_STORAGE_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ENDPOINT",
      "service": "Plugins",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_TIMEOUT_MS",
      "service": "Plugins",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_TIMEOUT_MS.",
      "secret": false,
      "strategy": "default",
      "default": "120000"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID",
      "service": "Plugins",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY",
      "service": "Plugins",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "MINIO_ROOT_USER",
      "service": "Objectstorage",
      "description": "Provide a value for MINIO_ROOT_USER.",
      "secret": false,
      "strategy": "default",
      "default": "object_storage_root_user"
    },
    {
      "key": "MINIO_ROOT_PASSWORD",
      "service": "Objectstorage",
      "description": "Provide a value for MINIO_ROOT_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "object_storage_root_password"
    },
    {
      "key": "SKIP_READS",
      "service": "Property Defs RS",
      "description": "Provide a value for SKIP_READS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "FILTER_MODE",
      "service": "Property Defs RS",
      "description": "Provide a value for FILTER_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "opt-out"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Property Defs RS",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SKIP_WRITES",
      "service": "Property Defs RS",
      "description": "Provide a value for SKIP_WRITES.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "DATABASE_URL",
      "service": "Property Defs RS",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB",
      "service": "Temporal",
      "description": "Provide a value for DB.",
      "secret": false,
      "strategy": "default",
      "default": "postgresql"
    },
    {
      "key": "DB_PORT",
      "service": "Temporal",
      "description": "Provide a value for DB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "ENABLE_ES",
      "service": "Temporal",
      "description": "Provide a value for ENABLE_ES.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "POSTGRES_PWD",
      "service": "Temporal",
      "description": "Provide a value for POSTGRES_PWD.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_USER",
      "service": "Temporal",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_SEEDS",
      "service": "Temporal",
      "description": "Provide a value for POSTGRES_SEEDS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DYNAMIC_CONFIG_FILE_PATH",
      "service": "Temporal",
      "description": "Provide a value for DYNAMIC_CONFIG_FILE_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "config/dynamicconfig/development-sql.yaml"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "ClickHouse",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CLICKHOUSE_SKIP_USER_SETUP",
      "service": "ClickHouse",
      "description": "Provide a value for CLICKHOUSE_SKIP_USER_SETUP.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "ADDRESS",
      "service": "Replay Capture",
      "description": "Provide a value for ADDRESS.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0:3000"
    },
    {
      "key": "REDIS_URL",
      "service": "Replay Capture",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Replay Capture",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_TOPIC",
      "service": "Replay Capture",
      "description": "Provide a value for KAFKA_TOPIC.",
      "secret": false,
      "strategy": "default",
      "default": "session_recording_snapshot_item_events"
    },
    {
      "key": "CAPTURE_MODE",
      "service": "Replay Capture",
      "description": "Provide a value for CAPTURE_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "recordings"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Kafka Init",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "ADDRESS",
      "service": "Feature Flags",
      "description": "Provide a value for ADDRESS.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0:3001"
    },
    {
      "key": "RUST_LOG",
      "service": "Feature Flags",
      "description": "Provide a value for RUST_LOG.",
      "secret": false,
      "strategy": "default",
      "default": "info"
    },
    {
      "key": "REDIS_URL",
      "service": "Feature Flags",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MAXMIND_DB_PATH",
      "service": "Feature Flags",
      "description": "Provide a value for MAXMIND_DB_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "/share/GeoLite2-City.mmdb"
    },
    {
      "key": "READ_DATABASE_URL",
      "service": "Feature Flags",
      "description": "Provide a value for READ_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "WRITE_DATABASE_URL",
      "service": "Feature Flags",
      "description": "Provide a value for WRITE_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "COOKIELESS_REDIS_HOST",
      "service": "Feature Flags",
      "description": "Provide a value for COOKIELESS_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "COOKIELESS_REDIS_PORT",
      "service": "Feature Flags",
      "description": "Provide a value for COOKIELESS_REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "PERSONS_READ_DATABASE_URL",
      "service": "Feature Flags",
      "description": "Provide a value for PERSONS_READ_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PERSONS_WRITE_DATABASE_URL",
      "service": "Feature Flags",
      "description": "Provide a value for PERSONS_WRITE_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGHOST",
      "service": "Temporal Django Worker",
      "description": "Provide a value for PGHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGUSER",
      "service": "Temporal Django Worker",
      "description": "Provide a value for PGUSER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SITE_URL",
      "service": "Temporal Django Worker",
      "description": "Provide a value for SITE_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://test.posthog.net"
    },
    {
      "key": "REDIS_URL",
      "service": "Temporal Django Worker",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DEPLOYMENT",
      "service": "Temporal Django Worker",
      "description": "Provide a value for DEPLOYMENT.",
      "secret": false,
      "strategy": "default",
      "default": "hobby"
    },
    {
      "key": "PGPASSWORD",
      "service": "Temporal Django Worker",
      "description": "Provide a value for PGPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SECRET_KEY",
      "service": "Temporal Django Worker",
      "description": "Provide a value for SECRET_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
    },
    {
      "key": "CDP_API_URL",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CDP_API_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Temporal Django Worker",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DATABASE_URL",
      "service": "Temporal Django Worker",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "TEMPORAL_HOST",
      "service": "Temporal Django Worker",
      "description": "Provide a value for TEMPORAL_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CLICKHOUSE_HOST",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "IS_BEHIND_PROXY",
      "service": "Temporal Django Worker",
      "description": "Provide a value for IS_BEHIND_PROXY.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_SECURE",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_VERIFY",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_VERIFY.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "OTEL_SDK_DISABLED",
      "service": "Temporal Django Worker",
      "description": "Provide a value for OTEL_SDK_DISABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_API_USER",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_API_USER.",
      "secret": false,
      "strategy": "default",
      "default": "api"
    },
    {
      "key": "CLICKHOUSE_APP_USER",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_APP_USER.",
      "secret": false,
      "strategy": "default",
      "default": "app"
    },
    {
      "key": "CLICKHOUSE_DATABASE",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "FLAGS_REDIS_ENABLED",
      "service": "Temporal Django Worker",
      "description": "Provide a value for FLAGS_REDIS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_QUERIES_PER_TEAM",
      "service": "Temporal Django Worker",
      "description": "Provide a value for API_QUERIES_PER_TEAM.",
      "secret": false,
      "strategy": "default",
      "default": "{\"1\": 100}"
    },
    {
      "key": "CLICKHOUSE_API_PASSWORD",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_API_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apipass"
    },
    {
      "key": "CLICKHOUSE_APP_PASSWORD",
      "service": "Temporal Django Worker",
      "description": "Provide a value for CLICKHOUSE_APP_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apppass"
    },
    {
      "key": "DISABLE_SECURE_SSL_REDIRECT",
      "service": "Temporal Django Worker",
      "description": "Provide a value for DISABLE_SECURE_SSL_REDIRECT.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Cyclotron Janitor",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_TOPIC",
      "service": "Cyclotron Janitor",
      "description": "Provide a value for KAFKA_TOPIC.",
      "secret": false,
      "strategy": "default",
      "default": "clickhouse_app_metrics2"
    },
    {
      "key": "DATABASE_URL",
      "service": "Cyclotron Janitor",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGHOST",
      "service": "Web",
      "description": "Provide a value for PGHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGUSER",
      "service": "Web",
      "description": "Provide a value for PGUSER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SITE_URL",
      "service": "Web",
      "description": "Provide a value for SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "REDIS_URL",
      "service": "Web",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DEPLOYMENT",
      "service": "Web",
      "description": "Provide a value for DEPLOYMENT.",
      "secret": false,
      "strategy": "default",
      "default": "hobby"
    },
    {
      "key": "PGPASSWORD",
      "service": "Web",
      "description": "Provide a value for PGPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SECRET_KEY",
      "service": "Web",
      "description": "Provide a value for SECRET_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
    },
    {
      "key": "CDP_API_URL",
      "service": "Web",
      "description": "Provide a value for CDP_API_URL.",
      "secret": false,
      "strategy": "default",
      "default": "http://plugins:6738"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Web",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "USE_GRANIAN",
      "service": "Web",
      "description": "Provide a value for USE_GRANIAN.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "DATABASE_URL",
      "service": "Web",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CLICKHOUSE_HOST",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "GRANIAN_WORKERS",
      "service": "Web",
      "description": "Provide a value for GRANIAN_WORKERS.",
      "secret": false,
      "strategy": "default",
      "default": "2"
    },
    {
      "key": "IS_BEHIND_PROXY",
      "service": "Web",
      "description": "Provide a value for IS_BEHIND_PROXY.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "LIVESTREAM_HOST",
      "service": "Web",
      "description": "Provide a value for LIVESTREAM_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "OPT_OUT_CAPTURE",
      "service": "Web",
      "description": "Provide a value for OPT_OUT_CAPTURE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_SECURE",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_VERIFY",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_VERIFY.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "OTEL_SDK_DISABLED",
      "service": "Web",
      "description": "Provide a value for OTEL_SDK_DISABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "OTEL_SERVICE_NAME",
      "service": "Web",
      "description": "Provide a value for OTEL_SERVICE_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "CLICKHOUSE_API_USER",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_API_USER.",
      "secret": false,
      "strategy": "default",
      "default": "api"
    },
    {
      "key": "CLICKHOUSE_APP_USER",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_APP_USER.",
      "secret": false,
      "strategy": "default",
      "default": "app"
    },
    {
      "key": "CLICKHOUSE_DATABASE",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "FLAGS_REDIS_ENABLED",
      "service": "Web",
      "description": "Provide a value for FLAGS_REDIS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_QUERIES_PER_TEAM",
      "service": "Web",
      "description": "Provide a value for API_QUERIES_PER_TEAM.",
      "secret": false,
      "strategy": "default",
      "default": "{\"1\": 100}"
    },
    {
      "key": "ENCRYPTION_SALT_KEYS",
      "service": "Web",
      "description": "Provide a value for ENCRYPTION_SALT_KEYS.",
      "secret": true,
      "strategy": "default",
      "default": "71781d6c2ecefb5c55d5db6202414b33"
    },
    {
      "key": "OBJECT_STORAGE_ENABLED",
      "service": "Web",
      "description": "Provide a value for OBJECT_STORAGE_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_API_PASSWORD",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_API_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apipass"
    },
    {
      "key": "CLICKHOUSE_APP_PASSWORD",
      "service": "Web",
      "description": "Provide a value for CLICKHOUSE_APP_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apppass"
    },
    {
      "key": "OBJECT_STORAGE_ENDPOINT",
      "service": "Web",
      "description": "Provide a value for OBJECT_STORAGE_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DISABLE_SECURE_SSL_REDIRECT",
      "service": "Web",
      "description": "Provide a value for DISABLE_SECURE_SSL_REDIRECT.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "OBJECT_STORAGE_ACCESS_KEY_ID",
      "service": "Web",
      "description": "Provide a value for OBJECT_STORAGE_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OBJECT_STORAGE_SECRET_ACCESS_KEY",
      "service": "Web",
      "description": "Provide a value for OBJECT_STORAGE_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ENDPOINT",
      "service": "Web",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID",
      "service": "Web",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY",
      "service": "Web",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "PGHOST",
      "service": "Worker",
      "description": "Provide a value for PGHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGUSER",
      "service": "Worker",
      "description": "Provide a value for PGUSER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SITE_URL",
      "service": "Worker",
      "description": "Provide a value for SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "REDIS_URL",
      "service": "Worker",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DEPLOYMENT",
      "service": "Worker",
      "description": "Provide a value for DEPLOYMENT.",
      "secret": false,
      "strategy": "default",
      "default": "hobby"
    },
    {
      "key": "PGPASSWORD",
      "service": "Worker",
      "description": "Provide a value for PGPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SECRET_KEY",
      "service": "Worker",
      "description": "Provide a value for SECRET_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
    },
    {
      "key": "CDP_API_URL",
      "service": "Worker",
      "description": "Provide a value for CDP_API_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Worker",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DATABASE_URL",
      "service": "Worker",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CLICKHOUSE_HOST",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "IS_BEHIND_PROXY",
      "service": "Worker",
      "description": "Provide a value for IS_BEHIND_PROXY.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_SECURE",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CLICKHOUSE_VERIFY",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_VERIFY.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "OTEL_SDK_DISABLED",
      "service": "Worker",
      "description": "Provide a value for OTEL_SDK_DISABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_API_USER",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_API_USER.",
      "secret": false,
      "strategy": "default",
      "default": "api"
    },
    {
      "key": "CLICKHOUSE_APP_USER",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_APP_USER.",
      "secret": false,
      "strategy": "default",
      "default": "app"
    },
    {
      "key": "CLICKHOUSE_DATABASE",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "FLAGS_REDIS_ENABLED",
      "service": "Worker",
      "description": "Provide a value for FLAGS_REDIS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_QUERIES_PER_TEAM",
      "service": "Worker",
      "description": "Provide a value for API_QUERIES_PER_TEAM.",
      "secret": false,
      "strategy": "default",
      "default": "{\"1\": 100}"
    },
    {
      "key": "ENCRYPTION_SALT_KEYS",
      "service": "Worker",
      "description": "Provide a value for ENCRYPTION_SALT_KEYS.",
      "secret": true,
      "strategy": "default",
      "default": "71781d6c2ecefb5c55d5db6202414b33"
    },
    {
      "key": "OBJECT_STORAGE_ENABLED",
      "service": "Worker",
      "description": "Provide a value for OBJECT_STORAGE_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CLICKHOUSE_API_PASSWORD",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_API_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apipass"
    },
    {
      "key": "CLICKHOUSE_APP_PASSWORD",
      "service": "Worker",
      "description": "Provide a value for CLICKHOUSE_APP_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "apppass"
    },
    {
      "key": "OBJECT_STORAGE_ENDPOINT",
      "service": "Worker",
      "description": "Provide a value for OBJECT_STORAGE_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DISABLE_SECURE_SSL_REDIRECT",
      "service": "Worker",
      "description": "Provide a value for DISABLE_SECURE_SSL_REDIRECT.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "OBJECT_STORAGE_ACCESS_KEY_ID",
      "service": "Worker",
      "description": "Provide a value for OBJECT_STORAGE_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTHOG_SKIP_MIGRATION_CHECKS",
      "service": "Worker",
      "description": "Provide a value for POSTHOG_SKIP_MIGRATION_CHECKS.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "OBJECT_STORAGE_SECRET_ACCESS_KEY",
      "service": "Worker",
      "description": "Provide a value for OBJECT_STORAGE_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ENDPOINT",
      "service": "Worker",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ENDPOINT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID",
      "service": "Worker",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_ACCESS_KEY_ID.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY",
      "service": "Worker",
      "description": "Provide a value for SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "any"
    },
    {
      "key": "PGDATA",
      "service": "Postgres",
      "description": "Provide a value for PGDATA.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/postgresql/data/pgdata"
    },
    {
      "key": "POSTGRES_DB",
      "service": "Postgres",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "DATABASE_URL",
      "service": "Postgres",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_USER",
      "service": "Postgres",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Postgres",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "posthog"
    },
    {
      "key": "KAFKA_LOG_DIRS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_LOG_DIRS.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/kafka/data/kafka-logs"
    },
    {
      "key": "KAFKA_BROKER_ID",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_BROKER_ID.",
      "secret": false,
      "strategy": "default",
      "default": "1001"
    },
    {
      "key": "KAFKA_LISTENERS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_LISTENERS.",
      "secret": false,
      "strategy": "default",
      "default": "PLAINTEXT://:9092"
    },
    {
      "key": "RAILWAY_RUN_UID",
      "service": "Kafka",
      "description": "Provide a value for RAILWAY_RUN_UID.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "KAFKA_LOG_RETENTION_MS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_LOG_RETENTION_MS.",
      "secret": false,
      "strategy": "default",
      "default": "3600000"
    },
    {
      "key": "KAFKA_ZOOKEEPER_CONNECT",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_ZOOKEEPER_CONNECT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "ALLOW_PLAINTEXT_LISTENER",
      "service": "Kafka",
      "description": "Provide a value for ALLOW_PLAINTEXT_LISTENER.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "KAFKA_LOG_RETENTION_HOURS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_LOG_RETENTION_HOURS.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "KAFKA_ADVERTISED_LISTENERS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_ADVERTISED_LISTENERS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_RESERVED_BROKER_MAX_ID",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_RESERVED_BROKER_MAX_ID.",
      "secret": false,
      "strategy": "default",
      "default": "1001"
    },
    {
      "key": "KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS",
      "service": "Kafka",
      "description": "Provide a value for KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS.",
      "secret": false,
      "strategy": "default",
      "default": "300000"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Livestream",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "LIVESTREAM_JWT_SECRET",
      "service": "Livestream",
      "description": "Provide a value for LIVESTREAM_JWT_SECRET.",
      "secret": true,
      "strategy": "default",
      "default": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
    },
    {
      "key": "ADDRESS",
      "service": "Capture",
      "description": "Provide a value for ADDRESS.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0:3000"
    },
    {
      "key": "RUST_LOG",
      "service": "Capture",
      "description": "Provide a value for RUST_LOG.",
      "secret": false,
      "strategy": "default",
      "default": "info,rdkafka=warn"
    },
    {
      "key": "REDIS_URL",
      "service": "Capture",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_HOSTS",
      "service": "Capture",
      "description": "Provide a value for KAFKA_HOSTS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KAFKA_TOPIC",
      "service": "Capture",
      "description": "Provide a value for KAFKA_TOPIC.",
      "secret": false,
      "strategy": "default",
      "default": "events_plugin_ingestion"
    },
    {
      "key": "CAPTURE_MODE",
      "service": "Capture",
      "description": "Provide a value for CAPTURE_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "events"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "posthog-1"
      }
    },
    "cli": "railway deploy --template posthog-1",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "8b7581e7-a103-4002-93b1-5358f68b0a8f",
            "serializedConfig": {
              "services": {
                "0296f28b-c72d-4160-ba64-33731ca80c6c": {
                  "icon": "https://posthog.com/favicon.svg",
                  "name": "Plugins",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/plugins:latest"
                  },
                  "variables": {
                    "SITE_URL": {
                      "defaultValue": "https://${{Web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "SECRET_KEY": {
                      "defaultValue": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "CDP_REDIS_HOST": {
                      "defaultValue": "${{Redis.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "CDP_REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "LOGS_REDIS_TLS": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_HOST": {
                      "defaultValue": "${{ClickHouse.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "LOGS_REDIS_HOST": {
                      "defaultValue": "${{Redis.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "LOGS_REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "CLICKHOUSE_SECURE": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_VERIFY": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_DATABASE": {
                      "defaultValue": "posthog"
                    },
                    "ENCRYPTION_SALT_KEYS": {
                      "defaultValue": "71781d6c2ecefb5c55d5db6202414b33"
                    },
                    "PERSONS_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "COOKIELESS_REDIS_HOST": {
                      "defaultValue": "${{Redis.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "COOKIELESS_REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "CYCLOTRON_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "OBJECT_STORAGE_ENABLED": {
                      "defaultValue": "true"
                    },
                    "OBJECT_STORAGE_ENDPOINT": {
                      "defaultValue": "http://${{ObjectStorage.RAILWAY_PRIVATE_DOMAIN}}:19000"
                    },
                    "OBJECT_STORAGE_ACCESS_KEY_ID": {
                      "defaultValue": "${{ObjectStorage.MINIO_ROOT_USER}}"
                    },
                    "BEHAVIORAL_COHORTS_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "OBJECT_STORAGE_SECRET_ACCESS_KEY": {
                      "defaultValue": "${{ObjectStorage.MINIO_ROOT_PASSWORD}}"
                    },
                    "SESSION_RECORDING_V2_S3_ENDPOINT": {
                      "defaultValue": "http://${{SeaweedFS.RAILWAY_PRIVATE_DOMAIN}}:8333"
                    },
                    "SESSION_RECORDING_V2_S3_TIMEOUT_MS": {
                      "defaultValue": "120000"
                    },
                    "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID": {
                      "defaultValue": "any"
                    },
                    "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY": {
                      "defaultValue": "any"
                    }
                  }
                },
                "05fa8717-bbd6-4702-bbcd-a6fa7775959f": {
                  "icon": "https://devicons.railway.app/",
                  "name": "ZooKeeper",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/zookeeper:latest"
                  },
                  "volumeMounts": {
                    "05fa8717-bbd6-4702-bbcd-a6fa7775959f": {
                      "mountPath": "/data"
                    }
                  }
                },
                "27d7b77b-a229-43d8-86e5-c57bec32f5d5": {
                  "icon": "https://devicons.railway.app/minio",
                  "name": "Objectstorage",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/objectstorage:latest"
                  },
                  "variables": {
                    "MINIO_ROOT_USER": {
                      "defaultValue": "object_storage_root_user"
                    },
                    "MINIO_ROOT_PASSWORD": {
                      "defaultValue": "object_storage_root_password"
                    }
                  },
                  "volumeMounts": {
                    "27d7b77b-a229-43d8-86e5-c57bec32f5d5": {
                      "mountPath": "/data"
                    }
                  }
                },
                "288b65a0-9657-43ff-b121-fa6f59e6ae42": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Property Defs RS",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/property-defs-rs:latest"
                  },
                  "variables": {
                    "SKIP_READS": {
                      "defaultValue": "false"
                    },
                    "FILTER_MODE": {
                      "defaultValue": "opt-out"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "SKIP_WRITES": {
                      "defaultValue": "false"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    }
                  }
                },
                "3027e71f-55ad-46f3-b964-63bcc02e6c33": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Temporal",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/temporal:latest"
                  },
                  "variables": {
                    "DB": {
                      "defaultValue": "postgresql"
                    },
                    "DB_PORT": {
                      "defaultValue": "5432"
                    },
                    "ENABLE_ES": {
                      "defaultValue": "false"
                    },
                    "POSTGRES_PWD": {
                      "defaultValue": "${{Postgres.POSTGRES_PASSWORD}}"
                    },
                    "POSTGRES_USER": {
                      "defaultValue": "${{Postgres.POSTGRES_USER}}"
                    },
                    "POSTGRES_SEEDS": {
                      "defaultValue": "${{Postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DYNAMIC_CONFIG_FILE_PATH": {
                      "defaultValue": "config/dynamicconfig/development-sql.yaml"
                    }
                  }
                },
                "34a08d18-9e26-467a-8787-b64fc68a829e": {
                  "icon": "https://devicons.railway.com/i/clickhouse.svg",
                  "name": "ClickHouse",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/clickhouse:latest"
                  },
                  "variables": {
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "CLICKHOUSE_SKIP_USER_SETUP": {
                      "isOptional": false,
                      "defaultValue": "1"
                    }
                  },
                  "networking": {},
                  "volumeMounts": {
                    "34a08d18-9e26-467a-8787-b64fc68a829e": {
                      "mountPath": "/var/lib/clickhouse"
                    }
                  }
                },
                "59cde6ef-226b-4211-b43a-2eb5bb565fd8": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Replay Capture",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/replay-capture:latest"
                  },
                  "variables": {
                    "ADDRESS": {
                      "defaultValue": "0.0.0.0:3000"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "KAFKA_TOPIC": {
                      "defaultValue": "session_recording_snapshot_item_events"
                    },
                    "CAPTURE_MODE": {
                      "defaultValue": "recordings"
                    }
                  }
                },
                "67ee5db7-1d04-486f-816d-03723f39f085": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Kafka Init",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/kafka-init:latest"
                  },
                  "variables": {
                    "KAFKA_HOSTS": {
                      "isOptional": false,
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    }
                  }
                },
                "7577e983-ff95-4fd4-be09-2923dcd4b195": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Feature Flags",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/feature-flags:latest"
                  },
                  "variables": {
                    "ADDRESS": {
                      "defaultValue": "0.0.0.0:3001"
                    },
                    "RUST_LOG": {
                      "defaultValue": "info"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "MAXMIND_DB_PATH": {
                      "defaultValue": "/share/GeoLite2-City.mmdb"
                    },
                    "READ_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "WRITE_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "COOKIELESS_REDIS_HOST": {
                      "defaultValue": "${{Redis.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "COOKIELESS_REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "PERSONS_READ_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "PERSONS_WRITE_DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    }
                  }
                },
                "78740aaa-c911-4bc6-a6f2-90afb2e66121": {
                  "icon": "https://devicons.railway.app/",
                  "name": "SeaweedFS",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/seaweedfs:latest"
                  },
                  "variables": {},
                  "volumeMounts": {
                    "78740aaa-c911-4bc6-a6f2-90afb2e66121": {
                      "mountPath": "/data"
                    }
                  }
                },
                "8a1ad4c4-9702-4252-aa6b-d6a53296143f": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Temporal Django Worker",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/temporal-django-worker:latest"
                  },
                  "variables": {
                    "PGHOST": {
                      "defaultValue": "${{Postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PGUSER": {
                      "defaultValue": "${{Postgres.POSTGRES_USER}}"
                    },
                    "SITE_URL": {
                      "defaultValue": "https://test.posthog.net"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "DEPLOYMENT": {
                      "defaultValue": "hobby"
                    },
                    "PGPASSWORD": {
                      "defaultValue": "${{Postgres.POSTGRES_PASSWORD}}"
                    },
                    "SECRET_KEY": {
                      "defaultValue": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
                    },
                    "CDP_API_URL": {
                      "defaultValue": "http://${{Plugins.RAILWAY_PRIVATE_DOMAIN}}:6738"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "TEMPORAL_HOST": {
                      "defaultValue": "${{Temporal.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "CLICKHOUSE_HOST": {
                      "defaultValue": "${{ClickHouse.RAILWAY_PRIVATE_DOMAIN}}}}"
                    },
                    "IS_BEHIND_PROXY": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_SECURE": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_VERIFY": {
                      "defaultValue": "false"
                    },
                    "OTEL_SDK_DISABLED": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_API_USER": {
                      "defaultValue": "api"
                    },
                    "CLICKHOUSE_APP_USER": {
                      "defaultValue": "app"
                    },
                    "CLICKHOUSE_DATABASE": {
                      "defaultValue": "posthog"
                    },
                    "FLAGS_REDIS_ENABLED": {
                      "defaultValue": "false"
                    },
                    "API_QUERIES_PER_TEAM": {
                      "defaultValue": "{\"1\": 100}"
                    },
                    "CLICKHOUSE_API_PASSWORD": {
                      "defaultValue": "apipass"
                    },
                    "CLICKHOUSE_APP_PASSWORD": {
                      "defaultValue": "apppass"
                    },
                    "DISABLE_SECURE_SSL_REDIRECT": {
                      "defaultValue": "true"
                    }
                  }
                },
                "8dbc6a02-36b4-49ac-9dff-273ae03dae8e": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Cyclotron Janitor",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/cyclotron-janitor:latest"
                  },
                  "variables": {
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "KAFKA_TOPIC": {
                      "defaultValue": "clickhouse_app_metrics2"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    }
                  }
                },
                "92552946-1fc4-4a21-bfc8-aff7d8fb4fc4": {
                  "icon": "https://posthog.com/favicon.svg",
                  "name": "Web",
                  "deploy": {
                    "startCommand": "",
                    "healthcheckPath": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/web:latest"
                  },
                  "variables": {
                    "PGHOST": {
                      "defaultValue": "${{Postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PGUSER": {
                      "defaultValue": "${{Postgres.POSTGRES_USER}}"
                    },
                    "SITE_URL": {
                      "defaultValue": "https://${{RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "DEPLOYMENT": {
                      "defaultValue": "hobby"
                    },
                    "PGPASSWORD": {
                      "defaultValue": "${{Postgres.POSTGRES_PASSWORD}}"
                    },
                    "SECRET_KEY": {
                      "defaultValue": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
                    },
                    "CDP_API_URL": {
                      "defaultValue": "http://plugins:6738"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "USE_GRANIAN": {
                      "defaultValue": "true"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "CLICKHOUSE_HOST": {
                      "defaultValue": "${{ClickHouse.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "GRANIAN_WORKERS": {
                      "defaultValue": "2"
                    },
                    "IS_BEHIND_PROXY": {
                      "defaultValue": "true"
                    },
                    "LIVESTREAM_HOST": {
                      "defaultValue": "https://${{Livestream.RAILWAY_PUBLIC_DOMAIN}}/livestream"
                    },
                    "OPT_OUT_CAPTURE": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_SECURE": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_VERIFY": {
                      "defaultValue": "false"
                    },
                    "OTEL_SDK_DISABLED": {
                      "defaultValue": "true"
                    },
                    "OTEL_SERVICE_NAME": {
                      "defaultValue": "posthog"
                    },
                    "CLICKHOUSE_API_USER": {
                      "defaultValue": "api"
                    },
                    "CLICKHOUSE_APP_USER": {
                      "defaultValue": "app"
                    },
                    "CLICKHOUSE_DATABASE": {
                      "defaultValue": "posthog"
                    },
                    "FLAGS_REDIS_ENABLED": {
                      "defaultValue": "false"
                    },
                    "API_QUERIES_PER_TEAM": {
                      "defaultValue": "{\"1\": 100}"
                    },
                    "ENCRYPTION_SALT_KEYS": {
                      "defaultValue": "71781d6c2ecefb5c55d5db6202414b33"
                    },
                    "OBJECT_STORAGE_ENABLED": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_API_PASSWORD": {
                      "defaultValue": "apipass"
                    },
                    "CLICKHOUSE_APP_PASSWORD": {
                      "defaultValue": "apppass"
                    },
                    "OBJECT_STORAGE_ENDPOINT": {
                      "defaultValue": "http://${{Objectstorage.RAILWAY_PRIVATE_DOMAIN}}:19000"
                    },
                    "DISABLE_SECURE_SSL_REDIRECT": {
                      "defaultValue": "true"
                    },
                    "OBJECT_STORAGE_ACCESS_KEY_ID": {
                      "defaultValue": "${{Objectstorage.MINIO_ROOT_USER}}"
                    },
                    "OBJECT_STORAGE_SECRET_ACCESS_KEY": {
                      "defaultValue": "${{Objectstorage.MINIO_ROOT_PASSWORD}}"
                    },
                    "SESSION_RECORDING_V2_S3_ENDPOINT": {
                      "defaultValue": "http://${{SeaweedFS.RAILWAY_PRIVATE_DOMAIN}}:8333"
                    },
                    "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID": {
                      "defaultValue": "any"
                    },
                    "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY": {
                      "defaultValue": "any"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8000": {
                        "port": 8000
                      }
                    }
                  }
                },
                "b5f8e9ff-3af3-4e25-88e7-31d8a0a8a0bc": {
                  "icon": "https://posthog.com/favicon.svg",
                  "name": "Worker",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/worker:latest"
                  },
                  "variables": {
                    "PGHOST": {
                      "defaultValue": "${{Postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PGUSER": {
                      "defaultValue": "${{Postgres.POSTGRES_USER}}"
                    },
                    "SITE_URL": {
                      "defaultValue": "https://${{Web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "DEPLOYMENT": {
                      "defaultValue": "hobby"
                    },
                    "PGPASSWORD": {
                      "defaultValue": "${{Postgres.POSTGRES_PASSWORD}}"
                    },
                    "SECRET_KEY": {
                      "defaultValue": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
                    },
                    "CDP_API_URL": {
                      "defaultValue": "http://${{Plugins.RAILWAY_PRIVATE_DOMAIN}}:6738"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "${{Postgres.DATABASE_URL}}/posthog"
                    },
                    "CLICKHOUSE_HOST": {
                      "defaultValue": "${{ClickHouse.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "IS_BEHIND_PROXY": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_SECURE": {
                      "defaultValue": "false"
                    },
                    "CLICKHOUSE_VERIFY": {
                      "defaultValue": "false"
                    },
                    "OTEL_SDK_DISABLED": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_API_USER": {
                      "defaultValue": "api"
                    },
                    "CLICKHOUSE_APP_USER": {
                      "defaultValue": "app"
                    },
                    "CLICKHOUSE_DATABASE": {
                      "defaultValue": "posthog"
                    },
                    "FLAGS_REDIS_ENABLED": {
                      "defaultValue": "false"
                    },
                    "API_QUERIES_PER_TEAM": {
                      "defaultValue": "{\"1\": 100}"
                    },
                    "ENCRYPTION_SALT_KEYS": {
                      "defaultValue": "71781d6c2ecefb5c55d5db6202414b33"
                    },
                    "OBJECT_STORAGE_ENABLED": {
                      "defaultValue": "true"
                    },
                    "CLICKHOUSE_API_PASSWORD": {
                      "defaultValue": "apipass"
                    },
                    "CLICKHOUSE_APP_PASSWORD": {
                      "defaultValue": "apppass"
                    },
                    "OBJECT_STORAGE_ENDPOINT": {
                      "defaultValue": "http://${{Objectstorage.RAILWAY_PRIVATE_DOMAIN}}:19000"
                    },
                    "DISABLE_SECURE_SSL_REDIRECT": {
                      "defaultValue": "true"
                    },
                    "OBJECT_STORAGE_ACCESS_KEY_ID": {
                      "defaultValue": "${{ObjectStorage.MINIO_ROOT_USER}}"
                    },
                    "POSTHOG_SKIP_MIGRATION_CHECKS": {
                      "defaultValue": "1"
                    },
                    "OBJECT_STORAGE_SECRET_ACCESS_KEY": {
                      "defaultValue": "${{ObjectStorage.MINIO_ROOT_PASSWORD}}"
                    },
                    "SESSION_RECORDING_V2_S3_ENDPOINT": {
                      "defaultValue": "http://${{SeaweedFS.RAILWAY_PRIVATE_DOMAIN}}:8333"
                    },
                    "SESSION_RECORDING_V2_S3_ACCESS_KEY_ID": {
                      "defaultValue": "any"
                    },
                    "SESSION_RECORDING_V2_S3_SECRET_ACCESS_KEY": {
                      "defaultValue": "any"
                    }
                  }
                },
                "b8ab3236-a8de-4894-bdb7-21140e604478": {
                  "icon": "https://devicons.railway.com/i/postgresql.svg",
                  "name": "Postgres",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/db:latest"
                  },
                  "variables": {
                    "PGDATA": {
                      "isOptional": false,
                      "defaultValue": "/var/lib/postgresql/data/pgdata"
                    },
                    "POSTGRES_DB": {
                      "defaultValue": "posthog"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "postgres://${{POSTGRES_USER}}:${{POSTGRES_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:5432"
                    },
                    "POSTGRES_USER": {
                      "defaultValue": "posthog"
                    },
                    "POSTGRES_PASSWORD": {
                      "description": "",
                      "defaultValue": "posthog"
                    }
                  },
                  "networking": {},
                  "volumeMounts": {
                    "b8ab3236-a8de-4894-bdb7-21140e604478": {
                      "mountPath": "/var/lib/postgresql/data"
                    }
                  }
                },
                "bbb1b476-561b-435f-9b93-1599917a3390": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Kafka",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/kafka"
                  },
                  "variables": {
                    "KAFKA_LOG_DIRS": {
                      "defaultValue": "/var/lib/kafka/data/kafka-logs"
                    },
                    "KAFKA_BROKER_ID": {
                      "defaultValue": "1001"
                    },
                    "KAFKA_LISTENERS": {
                      "defaultValue": "PLAINTEXT://:9092"
                    },
                    "RAILWAY_RUN_UID": {
                      "defaultValue": "0"
                    },
                    "KAFKA_LOG_RETENTION_MS": {
                      "defaultValue": "3600000"
                    },
                    "KAFKA_ZOOKEEPER_CONNECT": {
                      "defaultValue": "${{ZooKeeper.RAILWAY_PRIVATE_DOMAIN}}:2181"
                    },
                    "ALLOW_PLAINTEXT_LISTENER": {
                      "defaultValue": "true"
                    },
                    "KAFKA_LOG_RETENTION_HOURS": {
                      "defaultValue": "1"
                    },
                    "KAFKA_ADVERTISED_LISTENERS": {
                      "defaultValue": "PLAINTEXT://${{RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "KAFKA_RESERVED_BROKER_MAX_ID": {
                      "defaultValue": "1001"
                    },
                    "KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS": {
                      "defaultValue": "300000"
                    }
                  },
                  "volumeMounts": {
                    "bbb1b476-561b-435f-9b93-1599917a3390": {
                      "mountPath": "/var/lib/kafka/data"
                    }
                  }
                },
                "d1c19e8c-6f56-4b22-b8c1-f627bffd4131": {
                  "icon": "https://posthog.com/favicon.svg",
                  "name": "Livestream",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/livestream:latest"
                  },
                  "variables": {
                    "KAFKA_HOSTS": {
                      "isOptional": false,
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "LIVESTREAM_JWT_SECRET": {
                      "defaultValue": "fba2d6da23ef84035afac747e96a71a063b70e0325bcf8ddc4e87cc3"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8080": {
                        "port": 8080
                      }
                    }
                  }
                },
                "d5e0a58b-3514-4a5c-9100-c4156ba152a3": {
                  "icon": "https://devicons.railway.com/i/redis.svg",
                  "name": "Redis",
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/redis7:latest"
                  },
                  "variables": {},
                  "networking": {
                    "tcpProxies": {
                      "6379": {}
                    }
                  },
                  "volumeMounts": {
                    "d5e0a58b-3514-4a5c-9100-c4156ba152a3": {
                      "mountPath": "/data"
                    }
                  }
                },
                "fce55e67-9023-4c38-8277-298e52216226": {
                  "icon": "https://devicons.railway.app/",
                  "name": "Capture",
                  "source": {
                    "image": "ghcr.io/hexatare/posthog-railway-template/capture:latest"
                  },
                  "variables": {
                    "ADDRESS": {
                      "defaultValue": "0.0.0.0:3000"
                    },
                    "RUST_LOG": {
                      "defaultValue": "info,rdkafka=warn"
                    },
                    "REDIS_URL": {
                      "defaultValue": "redis://${{Redis.RAILWAY_PRIVATE_DOMAIN}}:6379/"
                    },
                    "KAFKA_HOSTS": {
                      "defaultValue": "${{Kafka.RAILWAY_PRIVATE_DOMAIN}}:9092"
                    },
                    "KAFKA_TOPIC": {
                      "defaultValue": "events_plugin_ingestion"
                    },
                    "CAPTURE_MODE": {
                      "defaultValue": "events"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 19,
    "needs_volume": true
  },
  "generated_at": "2026-09-15T10:14:39.124Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-14T06:20:13.091Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_2418779a476549e8aa71",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 236,
    "typical_build_seconds": 0,
    "typical_start_seconds": 42,
    "slowest_service": "Worker"
  }
}
