{
  "manifest_version": "1.0.0",
  "template": {
    "id": "2b42cf61-7d22-4bf1-8b4b-5857e681b1e4",
    "slug": "milvus",
    "name": "Milvus",
    "description": "Scalable vector database for GenAI applications and semantic search.",
    "url": "https://railway.com/deploy/milvus",
    "upstream": {
      "image": "milvusdb/milvus"
    }
  },
  "services": [
    {
      "name": "milvus",
      "source": {
        "image": "milvusdb/milvus"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/milvus",
      "http": true
    },
    {
      "name": "etcd",
      "source": {
        "image": "quay.io/coreos/etcd:v3.5.25"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/etcd",
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "milvus",
      "description": "Milvus WebUI and management port",
      "secret": false,
      "strategy": "default",
      "default": "9091"
    },
    {
      "key": "MQ_TYPE",
      "service": "milvus",
      "description": "Use Milvus embedded Woodpecker message queue",
      "secret": false,
      "strategy": "default",
      "default": "woodpecker"
    },
    {
      "key": "MINIO_PORT",
      "service": "milvus",
      "description": "HTTPS port used by Railway Storage Bucket",
      "secret": false,
      "strategy": "default",
      "default": "443"
    },
    {
      "key": "MINIO_REGION",
      "service": "milvus",
      "description": "Railway Storage Bucket region",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MINIO_ADDRESS",
      "service": "milvus",
      "description": "Base S3-compatible host used by Railway Storage Bucket",
      "secret": false,
      "strategy": "default",
      "default": "storage.railway.app"
    },
    {
      "key": "MINIO_USE_SSL",
      "service": "milvus",
      "description": "Use HTTPS when connecting to Railway Storage Bucket",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ETCD_ENDPOINTS",
      "service": "milvus",
      "description": "Private etcd endpoint used by Milvus metadata services",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "RAILWAY_RUN_UID",
      "service": "milvus",
      "description": "Run as root to ensure Railway volume write permissions",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "MINIO_BUCKET_NAME",
      "service": "milvus",
      "description": "Railway Storage Bucket name",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MINIO_ACCESS_KEY_ID",
      "service": "milvus",
      "description": "Railway Storage Bucket access key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MINIO_USE_VIRTUAL_HOST",
      "service": "milvus",
      "description": "Use virtual-hosted-style S3 requests",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "MINIO_SECRET_ACCESS_KEY",
      "service": "milvus",
      "description": "Railway Storage Bucket secret access key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ETCD_NAME",
      "service": "etcd",
      "description": "Name of this single etcd member",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "ETCD_DATA_DIR",
      "service": "etcd",
      "description": "Persistent etcd data directory",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/etcd"
    },
    {
      "key": "RAILWAY_RUN_UID",
      "service": "etcd",
      "description": "Run as root to ensure Railway volume write permissions",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "ETCD_SNAPSHOT_COUNT",
      "service": "etcd",
      "description": "Create an internal snapshot after 50000 committed transactions",
      "secret": false,
      "strategy": "default",
      "default": "50000"
    },
    {
      "key": "ETCD_INITIAL_CLUSTER",
      "service": "etcd",
      "description": "Single-node etcd cluster definition",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "ETCD_LISTEN_PEER_URLS",
      "service": "etcd",
      "description": "Listen for etcd peer traffic",
      "secret": false,
      "strategy": "default",
      "default": "http://0.0.0.0:2380"
    },
    {
      "key": "ETCD_LISTEN_CLIENT_URLS",
      "service": "etcd",
      "description": "Listen for client connections on all interfaces",
      "secret": false,
      "strategy": "default",
      "default": "http://0.0.0.0:2379"
    },
    {
      "key": "ETCD_QUOTA_BACKEND_BYTES",
      "service": "etcd",
      "description": "Set the etcd backend quota to 4 GiB",
      "secret": false,
      "strategy": "default",
      "default": "4294967296"
    },
    {
      "key": "ETCD_AUTO_COMPACTION_MODE",
      "service": "etcd",
      "description": "Use revision-based automatic compaction",
      "secret": false,
      "strategy": "default",
      "default": "revision"
    },
    {
      "key": "ETCD_ADVERTISE_CLIENT_URLS",
      "service": "etcd",
      "description": "Private client URL advertised to Milvus",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "ETCD_INITIAL_CLUSTER_STATE",
      "service": "etcd",
      "description": "Bootstrap this deployment as a new etcd cluster",
      "secret": false,
      "strategy": "default",
      "default": "new"
    },
    {
      "key": "ETCD_AUTO_COMPACTION_RETENTION",
      "service": "etcd",
      "description": "Retain the latest 1000 revisions before compaction",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    },
    {
      "key": "ETCD_INITIAL_ADVERTISE_PEER_URLS",
      "service": "etcd",
      "description": "Private peer URL advertised by this etcd member",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "milvus"
      }
    },
    "cli": "railway deploy --template milvus",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "2b42cf61-7d22-4bf1-8b4b-5857e681b1e4",
            "serializedConfig": {
              "buckets": {
                "d3f206cb-08ed-4e37-8fe9-76327eb5a8e3": {
                  "name": "Bucket"
                }
              },
              "services": {
                "3a0f790f-865e-4f24-a976-a4f2874f79d9": {
                  "icon": "https://milvus.io/images/layout/milvus-logo.svg",
                  "name": "milvus",
                  "deploy": {
                    "startCommand": "milvus run standalone"
                  },
                  "source": {
                    "image": "milvusdb/milvus"
                  },
                  "variables": {
                    "PORT": {
                      "description": "Milvus WebUI and management port",
                      "defaultValue": "9091"
                    },
                    "MQ_TYPE": {
                      "description": "Use Milvus embedded Woodpecker message queue",
                      "defaultValue": "woodpecker"
                    },
                    "MINIO_PORT": {
                      "description": "HTTPS port used by Railway Storage Bucket",
                      "defaultValue": "443"
                    },
                    "MINIO_REGION": {
                      "description": "Railway Storage Bucket region",
                      "defaultValue": "${{Bucket.REGION}}"
                    },
                    "MINIO_ADDRESS": {
                      "description": "Base S3-compatible host used by Railway Storage Bucket",
                      "defaultValue": "storage.railway.app"
                    },
                    "MINIO_USE_SSL": {
                      "description": "Use HTTPS when connecting to Railway Storage Bucket",
                      "defaultValue": "true"
                    },
                    "ETCD_ENDPOINTS": {
                      "description": "Private etcd endpoint used by Milvus metadata services",
                      "defaultValue": "${{etcd.RAILWAY_PRIVATE_DOMAIN}}:2379"
                    },
                    "RAILWAY_RUN_UID": {
                      "description": "Run as root to ensure Railway volume write permissions",
                      "defaultValue": "0"
                    },
                    "MINIO_BUCKET_NAME": {
                      "description": "Railway Storage Bucket name",
                      "defaultValue": "${{Bucket.BUCKET}}"
                    },
                    "MINIO_ACCESS_KEY_ID": {
                      "description": "Railway Storage Bucket access key",
                      "defaultValue": "${{Bucket.ACCESS_KEY_ID}}"
                    },
                    "MINIO_USE_VIRTUAL_HOST": {
                      "description": "Use virtual-hosted-style S3 requests",
                      "defaultValue": "true"
                    },
                    "MINIO_SECRET_ACCESS_KEY": {
                      "description": "Railway Storage Bucket secret access key",
                      "defaultValue": "${{Bucket.SECRET_ACCESS_KEY}}"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:9091": {
                        "port": 9091
                      }
                    }
                  },
                  "volumeMounts": {
                    "3a0f790f-865e-4f24-a976-a4f2874f79d9": {
                      "mountPath": "/var/lib/milvus"
                    }
                  }
                },
                "6ca5cda9-d322-4368-a783-fe223dd46e1f": {
                  "name": "etcd",
                  "deploy": {
                    "startCommand": "/usr/local/bin/etcd"
                  },
                  "source": {
                    "image": "quay.io/coreos/etcd:v3.5.25"
                  },
                  "variables": {
                    "ETCD_NAME": {
                      "description": "Name of this single etcd member",
                      "defaultValue": "default"
                    },
                    "ETCD_DATA_DIR": {
                      "description": "Persistent etcd data directory",
                      "defaultValue": "/var/lib/etcd"
                    },
                    "RAILWAY_RUN_UID": {
                      "description": "Run as root to ensure Railway volume write permissions",
                      "defaultValue": "0"
                    },
                    "ETCD_SNAPSHOT_COUNT": {
                      "description": "Create an internal snapshot after 50000 committed transactions",
                      "defaultValue": "50000"
                    },
                    "ETCD_INITIAL_CLUSTER": {
                      "description": "Single-node etcd cluster definition",
                      "defaultValue": "default=http://${{RAILWAY_PRIVATE_DOMAIN}}:2380"
                    },
                    "ETCD_LISTEN_PEER_URLS": {
                      "description": "Listen for etcd peer traffic",
                      "defaultValue": "http://0.0.0.0:2380"
                    },
                    "ETCD_LISTEN_CLIENT_URLS": {
                      "description": "Listen for client connections on all interfaces",
                      "defaultValue": "http://0.0.0.0:2379"
                    },
                    "ETCD_QUOTA_BACKEND_BYTES": {
                      "description": "Set the etcd backend quota to 4 GiB",
                      "defaultValue": "4294967296"
                    },
                    "ETCD_AUTO_COMPACTION_MODE": {
                      "description": "Use revision-based automatic compaction",
                      "defaultValue": "revision"
                    },
                    "ETCD_ADVERTISE_CLIENT_URLS": {
                      "description": "Private client URL advertised to Milvus",
                      "defaultValue": "http://${{RAILWAY_PRIVATE_DOMAIN}}:2379"
                    },
                    "ETCD_INITIAL_CLUSTER_STATE": {
                      "description": "Bootstrap this deployment as a new etcd cluster",
                      "defaultValue": "new"
                    },
                    "ETCD_AUTO_COMPACTION_RETENTION": {
                      "description": "Retain the latest 1000 revisions before compaction",
                      "defaultValue": "1000"
                    },
                    "ETCD_INITIAL_ADVERTISE_PEER_URLS": {
                      "description": "Private peer URL advertised by this etcd member",
                      "defaultValue": "http://${{RAILWAY_PRIVATE_DOMAIN}}:2380"
                    }
                  },
                  "volumeMounts": {
                    "6ca5cda9-d322-4368-a783-fe223dd46e1f": {
                      "mountPath": "/var/lib/etcd"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 2,
    "needs_volume": true
  },
  "generated_at": "2026-09-20T22:14:37.505Z",
  "generator_version": "0.1.0",
  "status": "degraded",
  "validated_at": "2026-09-19T13:57:10.808Z",
  "success_rate_30d": 0.1667,
  "validation": {
    "last_run_id": "run_91847c2821e049548b58",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": false,
        "detail": "Your workspace has been restricted. Please contact support to resolve this."
      }
    ],
    "typical_ready_seconds": 72
  }
}
