{
  "manifest_version": "1.0.0",
  "template": {
    "id": "c604a006-089a-4025-a9bc-b03f25b2bb16",
    "slug": "supermemory",
    "name": "Supermemory",
    "description": "Self-hosted memory and context engine for AI",
    "url": "https://railway.com/deploy/supermemory",
    "upstream": {
      "image": "debian:bookworm-slim"
    }
  },
  "services": [
    {
      "name": "supermemory",
      "source": {
        "image": "debian:bookworm-slim"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "supermemory",
      "description": "Port the supermemory-server binary listens on. Fixed - also used by the generated public domain and healthcheck.",
      "secret": false,
      "strategy": "default",
      "default": "6767"
    },
    {
      "key": "OPENAI_API_KEY",
      "service": "supermemory",
      "description": "Supermemory defaults to OpenAI, but you can use Anthropic, Gemini, or Groq by entering a placeholder for the OpenAI key and setting your preferred provider's key instead.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SUPERMEMORY_DATA_DIR",
      "service": "supermemory",
      "description": "Directory (on the attached volume) where the embedded graph engine stores its encrypted data, auth secret, and local embedding model cache. Keep this under /data so it survives restarts and redeploys.",
      "secret": false,
      "strategy": "default",
      "default": "/data/supermemory"
    },
    {
      "key": "SUPERMEMORY_SERVER_VERSION",
      "service": "supermemory",
      "description": "Pinned supermemory-server release version (tag server-v<VERSION> on supermemoryai/supermemory GitHub Releases) to download and run on first boot. Bump this to upgrade - the new binary is downloaded and cached on the volume alongside the old one; nothing is deleted automatically.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.5"
    },
    {
      "key": "SUPERMEMORY_EMBEDDING_PROVIDER",
      "service": "supermemory",
      "description": "Embedding provider: 'local' (default - runs Xenova/bge-base-en-v1.5 on-CPU inside the container, no API key needed), 'openai', 'gemini', or an OpenAI-compatible remote endpoint.",
      "secret": false,
      "strategy": "default",
      "default": "local"
    },
    {
      "key": "SUPERMEMORY_EMBEDDING_RAM_LIMIT",
      "service": "supermemory",
      "description": "Max extra memory (above post-boot baseline) the ingestion queue may use before new document adds pause until usage drops back down. Accepts '1gb', '512mb', or a bare number in GB. Raise this on larger Railway instance sizes for faster bulk imports.",
      "secret": false,
      "strategy": "default",
      "default": "1gb"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "supermemory"
      }
    },
    "cli": "railway deploy --template supermemory",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "c604a006-089a-4025-a9bc-b03f25b2bb16",
            "serializedConfig": {
              "services": {
                "8cae3473-a68f-4022-876b-0002a5de1048": {
                  "icon": "https://cdn.jsdelivr.net/gh/supermemoryai/supermemory@main/apps/docs/logo/dark.svg",
                  "name": "supermemory",
                  "deploy": {
                    "startCommand": "sh -c 'set -e\nVERSION=\"${SUPERMEMORY_SERVER_VERSION:-0.0.5}\"\nBIN_DIR=\"/data/bin\"\nBIN=\"$BIN_DIR/supermemory-server-$VERSION\"\nmkdir -p \"$BIN_DIR\" \"$SUPERMEMORY_DATA_DIR\"\nif [ ! -x \"$BIN\" ]; then\n  echo \"supermemory-server v$VERSION not cached on volume - downloading...\"\n  command -v curl >/dev/null 2>&1 || (export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -y -qq --no-install-recommends curl ca-certificates >/dev/null)\n  ARCH=\"$(uname -m)\"\n  case \"$ARCH\" in\n    x86_64) PLATFORM=\"linux-x64\" ;;\n    aarch64) PLATFORM=\"linux-arm64\" ;;\n    *) echo \"unsupported architecture: $ARCH\" >&2; exit 1 ;;\n  esac\n  BASE=\"https://github.com/supermemoryai/supermemory/releases/download/server-v$VERSION\"\n  curl -fsSL \"$BASE/supermemory-server-$PLATFORM\" -o \"$BIN.download\"\n  curl -fsSL \"$BASE/supermemory-server-$PLATFORM.sha256\" -o \"$BIN.download.sha256\"\n  EXPECTED=\"$(cut -d \" \" -f1 \"$BIN.download.sha256\")\"\n  ACTUAL=\"$(sha256sum \"$BIN.download\" | cut -d \" \" -f1)\"\n  if [ \"$EXPECTED\" != \"$ACTUAL\" ] || [ -z \"$EXPECTED\" ]; then\n    echo \"checksum verification failed for supermemory-server-$PLATFORM\" >&2\n    rm -f \"$BIN.download\" \"$BIN.download.sha256\"\n    exit 1\n  fi\n  chmod +x \"$BIN.download\"\n  mv \"$BIN.download\" \"$BIN\"\n  rm -f \"$BIN.download.sha256\"\n  echo \"installed supermemory-server v$VERSION -> $BIN\"\nfi\nexec \"$BIN\"'",
                    "healthcheckPath": "/",
                    "restartPolicyType": "ON_FAILURE",
                    "healthcheckTimeout": 600,
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "debian:bookworm-slim"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": true,
                      "description": "Port the supermemory-server binary listens on. Fixed - also used by the generated public domain and healthcheck.",
                      "defaultValue": "6767"
                    },
                    "GROQ_API_KEY": {
                      "isOptional": true,
                      "description": "Groq API key - alternative LLM provider, lowest latency of the four supported."
                    },
                    "GEMINI_API_KEY": {
                      "isOptional": true,
                      "description": "Google AI Studio (Gemini) API key - alternative LLM provider. Also required (or GOOGLE_VERTEX_PROJECT_ID) for image, video, and high-fidelity PDF understanding beyond plain text, regardless of which provider you use for text."
                    },
                    "OPENAI_API_KEY": {
                      "isOptional": false,
                      "description": "Supermemory defaults to OpenAI, but you can use Anthropic, Gemini, or Groq by entering a placeholder for the OpenAI key and setting your preferred provider's key instead.",
                      "defaultValue": "{{OPENAI_API_KEY}}"
                    },
                    "ANTHROPIC_API_KEY": {
                      "isOptional": true,
                      "description": "Anthropic API key - alternative LLM provider to OPENAI_API_KEY. Only used if OPENAI_API_KEY isn't a valid key."
                    },
                    "SUPERMEMORY_DATA_DIR": {
                      "isOptional": true,
                      "description": "Directory (on the attached volume) where the embedded graph engine stores its encrypted data, auth secret, and local embedding model cache. Keep this under /data so it survives restarts and redeploys.",
                      "defaultValue": "/data/supermemory"
                    },
                    "SUPERMEMORY_SERVER_VERSION": {
                      "isOptional": true,
                      "description": "Pinned supermemory-server release version (tag server-v<VERSION> on supermemoryai/supermemory GitHub Releases) to download and run on first boot. Bump this to upgrade - the new binary is downloaded and cached on the volume alongside the old one; nothing is deleted automatically.",
                      "defaultValue": "0.0.5"
                    },
                    "SUPERMEMORY_DISABLE_TELEMETRY": {
                      "isOptional": true,
                      "description": "Set to '1' to disable the self-hosted binary's internal AI SDK telemetry instrumentation. The binary already sends no analytics by default regardless of this setting - it only silences local OpenTelemetry-style trace spans."
                    },
                    "SUPERMEMORY_EMBEDDING_PROVIDER": {
                      "isOptional": true,
                      "description": "Embedding provider: 'local' (default - runs Xenova/bge-base-en-v1.5 on-CPU inside the container, no API key needed), 'openai', 'gemini', or an OpenAI-compatible remote endpoint.",
                      "defaultValue": "local"
                    },
                    "SUPERMEMORY_EMBEDDING_RAM_LIMIT": {
                      "isOptional": true,
                      "description": "Max extra memory (above post-boot baseline) the ingestion queue may use before new document adds pause until usage drops back down. Accepts '1gb', '512mb', or a bare number in GB. Raise this on larger Railway instance sizes for faster bulk imports.",
                      "defaultValue": "1gb"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {
                        "port": 6767
                      }
                    }
                  },
                  "volumeMounts": {
                    "8cae3473-a68f-4022-876b-0002a5de1048": {
                      "mountPath": "/data"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {
    "healthcheck": {
      "service": "supermemory",
      "method": "GET",
      "path": "/",
      "expect_status": 200
    }
  },
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-10T10:14:45.332Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-09T01:41:30.942Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_66c9a996d9d7423c940f",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "healthcheck",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 43,
    "typical_build_seconds": 0,
    "typical_start_seconds": 20,
    "slowest_service": "supermemory"
  }
}
