{
  "manifest_version": "1.0.0",
  "template": {
    "id": "68ce106d-e06b-47c3-b7a2-b3a2016cbd42",
    "slug": "M_Q6uM",
    "name": "Valkey : 1$",
    "description": "High-Performance Valkey In-Memory Database",
    "url": "https://railway.com/deploy/M_Q6uM",
    "upstream": {
      "repo_url": "https://github.com/antisofisme/railway"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "valkey",
      "source": {
        "repo": "https://github.com/antisofisme/railway"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "REDIS_HOST",
      "service": "valkey",
      "description": "Host Redis/Valkey",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "REDIS_PORT",
      "service": "valkey",
      "description": "Port Redis/Valkey",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "VALKEY_SAVE",
      "service": "valkey",
      "description": "Enhanced RDB snapshotting",
      "secret": true,
      "strategy": "default",
      "default": "900 1 300 100 60 10000"
    },
    {
      "key": "REDIS_PASSWORD",
      "service": "valkey",
      "description": "Password untuk koneksi Redis",
      "secret": true,
      "strategy": "default",
      "default": "valkey123"
    },
    {
      "key": "REDIS_USERNAME",
      "service": "valkey",
      "description": "Username untuk koneksi Redis",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "VALKEY_TIMEOUT",
      "service": "valkey",
      "description": "Tidak ada timeout koneksi",
      "secret": true,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "VALKEY_LOGLEVEL",
      "service": "valkey",
      "description": "Hanya log error, warning, dan pesan penting",
      "secret": true,
      "strategy": "default",
      "default": "notice"
    },
    {
      "key": "VALKEY_MAXMEMORY",
      "service": "valkey",
      "description": "Increased memory limit",
      "secret": true,
      "strategy": "default",
      "default": "1536MB"
    },
    {
      "key": "VALKEY_APPENDONLY",
      "service": "valkey",
      "description": "Aktifkan Append-Only File",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_IO_THREADS",
      "service": "valkey",
      "description": "Increased threads for better concurrency",
      "secret": true,
      "strategy": "default",
      "default": "6"
    },
    {
      "key": "VALKEY_MAXCLIENTS",
      "service": "valkey",
      "description": "Maksimum koneksi klien",
      "secret": true,
      "strategy": "default",
      "default": "10000"
    },
    {
      "key": "VALKEY_APPENDFSYNC",
      "service": "valkey",
      "description": "Best balance of performance/safety",
      "secret": true,
      "strategy": "default",
      "default": "everysec"
    },
    {
      "key": "VALKEY_TCP_BACKLOG",
      "service": "valkey",
      "description": "Increased connection queue",
      "secret": true,
      "strategy": "default",
      "default": "2048"
    },
    {
      "key": "VALKEY_ACTIVEDEFRAG",
      "service": "valkey",
      "description": "Aktifkan defragmentasi otomatis",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_BIND_ADDRESS",
      "service": "valkey",
      "description": "Bind ke IPv4 dan IPv6",
      "secret": true,
      "strategy": "default",
      "default": "0.0.0.0 ::"
    },
    {
      "key": "VALKEY_IPV6_ENABLED",
      "service": "valkey",
      "description": "Aktifkan dukungan IPv6",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_TCP_KEEPALIVE",
      "service": "valkey",
      "description": "Reduced keepalive untuk respon lebih cepat",
      "secret": true,
      "strategy": "default",
      "default": "60"
    },
    {
      "key": "VALKEY_LATENCY_TRACKING",
      "service": "valkey",
      "description": "Aktifkan pelacakan latensi",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_MAXMEMORY_POLICY",
      "service": "valkey",
      "description": "Prioritize keeping non-expiring keys",
      "secret": true,
      "strategy": "default",
      "default": "volatile-lru"
    },
    {
      "key": "VALKEY_MAXMEMORY_SAMPLES",
      "service": "valkey",
      "description": "More precise LRU",
      "secret": true,
      "strategy": "default",
      "default": "10"
    },
    {
      "key": "VALKEY_PROTO_MAX_BULK_LEN",
      "service": "valkey",
      "description": "Ukuran bulk request maksimum",
      "secret": true,
      "strategy": "default",
      "default": "512mb"
    },
    {
      "key": "VALKEY_REPLICA_LAZY_FLUSH",
      "service": "valkey",
      "description": "Flush asinkron untuk replika",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_IO_THREADS_DO_READS",
      "service": "valkey",
      "description": "Gunakan thread untuk operasi baca",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_ACTIVE_EXPIRE_EFFORT",
      "service": "valkey",
      "description": "Optimize expiration scan",
      "secret": true,
      "strategy": "default",
      "default": "5"
    },
    {
      "key": "VALKEY_AOF_USE_RDB_PREAMBLE",
      "service": "valkey",
      "description": "Faster restarts",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_LAZYFREE_LAZY_EXPIRE",
      "service": "valkey",
      "description": "Expire asinkron",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_LAZYFREE_LAZY_EVICTION",
      "service": "valkey",
      "description": "Eviksi asinkron",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_ACTIVE_DEFRAG_CYCLE_MAX",
      "service": "valkey",
      "description": "Maximum CPU percentage for defrag",
      "secret": true,
      "strategy": "default",
      "default": "75"
    },
    {
      "key": "VALKEY_ACTIVE_DEFRAG_CYCLE_MIN",
      "service": "valkey",
      "description": "Minimum CPU percentage for defrag",
      "secret": true,
      "strategy": "default",
      "default": "25"
    },
    {
      "key": "VALKEY_LAZYFREE_LAZY_SERVER_DEL",
      "service": "valkey",
      "description": "Delete asinkron",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_AUTO_AOF_REWRITE_MIN_SIZE",
      "service": "valkey",
      "description": "Minimum size for rewrite",
      "secret": true,
      "strategy": "default",
      "default": "64mb"
    },
    {
      "key": "VALKEY_LATENCY_MONITOR_THRESHOLD",
      "service": "valkey",
      "description": "Ambang monitor latensi (ms)",
      "secret": true,
      "strategy": "default",
      "default": "25"
    },
    {
      "key": "VALKEY_NO_APPENDFSYNC_ON_REWRITE",
      "service": "valkey",
      "description": "Better write performance during rewrites",
      "secret": true,
      "strategy": "default",
      "default": "yes"
    },
    {
      "key": "VALKEY_CLIENT_OUTPUT_BUFFER_LIMIT",
      "service": "valkey",
      "description": "Timezone",
      "secret": true,
      "strategy": "default",
      "default": "normal 0 0 0 pubsub 32mb 8mb 60 slave 256mb 64mb 60"
    },
    {
      "key": "VALKEY_AUTO_AOF_REWRITE_PERCENTAGE",
      "service": "valkey",
      "description": "Optimize rewrites",
      "secret": true,
      "strategy": "default",
      "default": "100"
    },
    {
      "key": "VALKEY_ACTIVE_DEFRAG_THRESHOLD_LOWER",
      "service": "valkey",
      "description": "Lower threshold to start sooner",
      "secret": true,
      "strategy": "default",
      "default": "5"
    },
    {
      "key": "VALKEY_ACTIVE_DEFRAG_THRESHOLD_UPPER",
      "service": "valkey",
      "description": "Lowered to prevent high overhead",
      "secret": true,
      "strategy": "default",
      "default": "75"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "M_Q6uM"
      }
    },
    "cli": "railway deploy --template M_Q6uM",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "68ce106d-e06b-47c3-b7a2-b3a2016cbd42",
            "serializedConfig": {
              "services": {
                "580f95f1-82bc-4506-b351-7b3c4f4c83d7": {
                  "icon": "https://www.gravatar.com/avatar/3aa60f862d151316d2b03121143fbee0?s=120&r=g&d=404",
                  "name": "valkey",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null
                  },
                  "source": {
                    "repo": "https://github.com/antisofisme/railway",
                    "rootDirectory": "n8n/valkey"
                  },
                  "variables": {
                    "TZ": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "REDIS_HOST": {
                      "isOptional": false,
                      "description": "Host Redis/Valkey",
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "REDIS_PORT": {
                      "isOptional": false,
                      "description": "Port Redis/Valkey",
                      "defaultValue": "6379"
                    },
                    "VALKEY_SAVE": {
                      "isOptional": false,
                      "description": "Enhanced RDB snapshotting",
                      "defaultValue": "900 1 300 100 60 10000"
                    },
                    "REDIS_PASSWORD": {
                      "isOptional": false,
                      "description": "Password untuk koneksi Redis",
                      "defaultValue": "valkey123"
                    },
                    "REDIS_USERNAME": {
                      "isOptional": false,
                      "description": "Username untuk koneksi Redis",
                      "defaultValue": "default"
                    },
                    "VALKEY_TIMEOUT": {
                      "isOptional": false,
                      "description": "Tidak ada timeout koneksi",
                      "defaultValue": "0"
                    },
                    "VALKEY_LOGLEVEL": {
                      "isOptional": false,
                      "description": "Hanya log error, warning, dan pesan penting",
                      "defaultValue": "notice"
                    },
                    "VALKEY_MAXMEMORY": {
                      "isOptional": false,
                      "description": "Increased memory limit",
                      "defaultValue": "1536MB"
                    },
                    "VALKEY_APPENDONLY": {
                      "isOptional": false,
                      "description": "Aktifkan Append-Only File",
                      "defaultValue": "yes"
                    },
                    "VALKEY_IO_THREADS": {
                      "isOptional": false,
                      "description": "Increased threads for better concurrency",
                      "defaultValue": "6"
                    },
                    "VALKEY_MAXCLIENTS": {
                      "isOptional": false,
                      "description": "Maksimum koneksi klien",
                      "defaultValue": "10000"
                    },
                    "VALKEY_APPENDFSYNC": {
                      "isOptional": false,
                      "description": "Best balance of performance/safety",
                      "defaultValue": "everysec"
                    },
                    "VALKEY_TCP_BACKLOG": {
                      "isOptional": false,
                      "description": "Increased connection queue",
                      "defaultValue": "2048"
                    },
                    "VALKEY_ACTIVEDEFRAG": {
                      "isOptional": false,
                      "description": "Aktifkan defragmentasi otomatis",
                      "defaultValue": "yes"
                    },
                    "VALKEY_BIND_ADDRESS": {
                      "isOptional": false,
                      "description": "Bind ke IPv4 dan IPv6",
                      "defaultValue": "0.0.0.0 ::"
                    },
                    "VALKEY_IPV6_ENABLED": {
                      "isOptional": false,
                      "description": "Aktifkan dukungan IPv6",
                      "defaultValue": "yes"
                    },
                    "VALKEY_TCP_KEEPALIVE": {
                      "isOptional": false,
                      "description": "Reduced keepalive untuk respon lebih cepat",
                      "defaultValue": "60"
                    },
                    "VALKEY_LATENCY_TRACKING": {
                      "isOptional": false,
                      "description": "Aktifkan pelacakan latensi",
                      "defaultValue": "yes"
                    },
                    "VALKEY_MAXMEMORY_POLICY": {
                      "isOptional": false,
                      "description": "Prioritize keeping non-expiring keys",
                      "defaultValue": "volatile-lru"
                    },
                    "VALKEY_MAXMEMORY_SAMPLES": {
                      "isOptional": false,
                      "description": "More precise LRU",
                      "defaultValue": "10"
                    },
                    "VALKEY_PROTO_MAX_BULK_LEN": {
                      "isOptional": false,
                      "description": "Ukuran bulk request maksimum",
                      "defaultValue": "512mb"
                    },
                    "VALKEY_REPLICA_LAZY_FLUSH": {
                      "isOptional": false,
                      "description": "Flush asinkron untuk replika",
                      "defaultValue": "yes"
                    },
                    "VALKEY_IO_THREADS_DO_READS": {
                      "isOptional": false,
                      "description": "Gunakan thread untuk operasi baca",
                      "defaultValue": "yes"
                    },
                    "VALKEY_ACTIVE_EXPIRE_EFFORT": {
                      "isOptional": false,
                      "description": "Optimize expiration scan",
                      "defaultValue": "5"
                    },
                    "VALKEY_AOF_USE_RDB_PREAMBLE": {
                      "isOptional": false,
                      "description": "Faster restarts",
                      "defaultValue": "yes"
                    },
                    "VALKEY_LAZYFREE_LAZY_EXPIRE": {
                      "isOptional": false,
                      "description": "Expire asinkron",
                      "defaultValue": "yes"
                    },
                    "VALKEY_LAZYFREE_LAZY_EVICTION": {
                      "isOptional": false,
                      "description": "Eviksi asinkron",
                      "defaultValue": "yes"
                    },
                    "VALKEY_ACTIVE_DEFRAG_CYCLE_MAX": {
                      "isOptional": false,
                      "description": "Maximum CPU percentage for defrag",
                      "defaultValue": "75"
                    },
                    "VALKEY_ACTIVE_DEFRAG_CYCLE_MIN": {
                      "isOptional": false,
                      "description": "Minimum CPU percentage for defrag",
                      "defaultValue": "25"
                    },
                    "VALKEY_LAZYFREE_LAZY_SERVER_DEL": {
                      "isOptional": false,
                      "description": "Delete asinkron",
                      "defaultValue": "yes"
                    },
                    "VALKEY_AUTO_AOF_REWRITE_MIN_SIZE": {
                      "isOptional": false,
                      "description": "Minimum size for rewrite",
                      "defaultValue": "64mb"
                    },
                    "VALKEY_LATENCY_MONITOR_THRESHOLD": {
                      "isOptional": false,
                      "description": "Ambang monitor latensi (ms)",
                      "defaultValue": "25"
                    },
                    "VALKEY_NO_APPENDFSYNC_ON_REWRITE": {
                      "isOptional": false,
                      "description": "Better write performance during rewrites",
                      "defaultValue": "yes"
                    },
                    "VALKEY_CLIENT_OUTPUT_BUFFER_LIMIT": {
                      "isOptional": false,
                      "description": "Timezone",
                      "defaultValue": "normal 0 0 0 pubsub 32mb 8mb 60 slave 256mb 64mb 60"
                    },
                    "VALKEY_AUTO_AOF_REWRITE_PERCENTAGE": {
                      "isOptional": false,
                      "description": "Optimize rewrites",
                      "defaultValue": "100"
                    },
                    "VALKEY_ACTIVE_DEFRAG_THRESHOLD_LOWER": {
                      "isOptional": false,
                      "description": "Lower threshold to start sooner",
                      "defaultValue": "5"
                    },
                    "VALKEY_ACTIVE_DEFRAG_THRESHOLD_UPPER": {
                      "isOptional": false,
                      "description": "Lowered to prevent high overhead",
                      "defaultValue": "75"
                    }
                  },
                  "volumeMounts": {
                    "580f95f1-82bc-4506-b351-7b3c4f4c83d7": {
                      "mountPath": "/data"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-04T11:44:27.912Z",
  "generator_version": "0.1.0"
}
