{"componentChunkName":"component---src-templates-doc-tsx","path":"/product/relay/getting-started/","result":{"data":{"file":{"id":"574b410f-a364-5367-bdd2-832839324197","relativePath":"product/relay/getting-started.mdx","sourceInstanceName":"docs","childMarkdownRemark":null,"childMdx":{"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Getting Started\",\n  \"description\": \"Learn how to get started with Relay, Sentry's data security solution.\",\n  \"sidebar_order\": 1,\n  \"redirect_from\": [\"/meta/relay/getting-started/\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Note = makeShortcode(\"Note\");\nvar CodeTabs = makeShortcode(\"CodeTabs\");\nvar CodeBlock = makeShortcode(\"CodeBlock\");\nvar Alert = makeShortcode(\"Alert\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Getting started with Relay is as simple as using the default settings. You can also configure Relay to suit your organization's needs. Check the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"../options/\"\n  }), \"Configuration Options\"), \" page for a detailed discussion of operating scenarios.\"), mdx(Note, {\n    mdxType: \"Note\"\n  }, mdx(\"markdown\", null, mdx(\"p\", null, \"The Relay server is called \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"relay\"), \". Download binaries from \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/getsentry/relay/releases\"\n  }), \"GitHub\\nReleases\"), \". A Docker image is provided on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://hub.docker.com/r/getsentry/relay/\"\n  }), \"DockerHub\"), \".\"))), mdx(\"h2\", {\n    \"id\": \"initializing-configuration\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#initializing-configuration\",\n    \"aria-label\": \"initializing configuration permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Initializing Configuration\"), mdx(\"p\", null, \"To create the initial configuration, use Relay's \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"relay config init\"), \" command,\\nwhich puts configuration files in the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".relay\"), \" folder under the current working\\ndirectory.\"), mdx(Note, {\n    mdxType: \"Note\"\n  }, mdx(\"p\", null, \"In Docker, provide the configuration directory using the standard\\nmechanisms offered by Docker, either by mounting \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://docs.docker.com/storage/volumes/\"\n  }), \"Docker\\nvolumes\"), \" or by building a new\\ncontainer and copying in the files.\")), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run in Docker\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"# Adjust permissions for the configuration directory\"), \"\\ndocker run --rm -it                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -v \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token variable\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \"$(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"pwd\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \")\")), \"/config/:/work/.relay/  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  --entrypoint \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token function\"\n  }), \"bash\"), \"                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  getsentry/relay                  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -c \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"'chown -R relay:relay /work/.relay'\"), \"\\n\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"# Generate the configuration\"), \"\\ndocker run --rm -it                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -v \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token variable\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \"$(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"pwd\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \")\")), \"/config/:/work/.relay/  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  getsentry/relay                  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  config init\")))), mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run Executable\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"./relay config init\")))))), mdx(\"p\", null, \"Select the default configuration to create a minimal configuration file.\\nYou can choose to override the default settings by selecting\\n\", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"\\\"create custom config\\\"\"), \" and customizing these parameters:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"mode\"), \" setting, which configures the major mode in which Relay operates. For more information on available Relay modes, refer to \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"../modes/\"\n  }), \"Relay Modes\"), \".\"), mdx(Alert, {\n    level: \"warning\",\n    mdxType: \"Alert\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Currently, only \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"proxy\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"static\"), \" mode are available to all organizations.\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"upstream\"), \" setting configures the server to which Relay will forward the\\nevents (by default the main \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sentry.io\"), \" URL).\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"port\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"host\"), \" settings configure the TCP port at which Relay will\\nlisten. This is the address to which SDKs send events.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"tls\"), \" settings configure TLS support (HTTPS support), used when communication between the SDK and Relay needs to be secured.\"))), mdx(\"p\", null, \"Settings are recorded in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".relay/config.yml\"), \". Note that all configuration values\\nare optional and default to these settings:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"yaml\",\n    title: \"Run in Docker\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"yaml\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-yaml\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-yaml\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"relay\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"mode\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" managed\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"upstream\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"\\\"https://sentry.io/\\\"\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"host\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" 0.0.0.0\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"port\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token number\"\n  }), \"3000\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_port\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_identity_path\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_identity_password\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"))))), mdx(CodeBlock, {\n    language: \"yaml\",\n    title: \"Run Executable\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"yaml\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-yaml\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-yaml\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"relay\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"mode\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" managed\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"upstream\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"\\\"https://sentry.io/\\\"\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"host\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" 127.0.0.1\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"port\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token number\"\n  }), \"3000\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_port\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_identity_path\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token key atrule\"\n  }), \"tls_identity_password\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token null important\"\n  }), \"~\"))))))), mdx(\"p\", null, \"Configurations are fully documented in \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"../options/\"\n  }), \"Configuration Options\"), \".\"), mdx(\"h2\", {\n    \"id\": \"creating-credentials\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#creating-credentials\",\n    \"aria-label\": \"creating credentials permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Creating Credentials\"), mdx(Alert, {\n    level: \"info\",\n    mdxType: \"Alert\"\n  }, mdx(\"p\", null, \"Not applicable in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"proxy\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"static\"), \" mode.\")), mdx(\"p\", null, \"In addition to \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"config.yml\"), \", the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"init\"), \" command creates a credentials file, \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"credentials.json\"), \", which is placed in the same \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".relay\"), \" directory. This file contains both the public and private key Relay uses to authenticate with the upstream server.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"As a result, this file must be protected from modification or view by unauthorized entities.\")), mdx(\"p\", null, \"A typical credentials file is similar to this example:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"json\",\n    title: \"\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"json\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-json\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-json\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"{\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token property\"\n  }), \"\\\"secret_key\\\"\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token operator\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"\\\"5gkTAfwOrJ0lMy9aOAOmHKO1k6gd8ApYkAInmg5VfWk\\\"\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \",\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token property\"\n  }), \"\\\"public_key\\\"\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token operator\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"\\\"nDJI79SbEYH9-8NEJAI7ezrgYfoIPW3Bnkg00k1z0fA\\\"\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \",\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token property\"\n  }), \"\\\"id\\\"\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token operator\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"\\\"cde0d72e-0c4e-4550-a934-c1867d8a177c\\\"\"), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"}\"))))))), mdx(\"p\", null, \"Use the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"public_key\"), \" to register your Relay with the upstream server when running it in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"managed\"), \" mode.\"), mdx(\"h2\", {\n    \"id\": \"registering-relay-with-sentry\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#registering-relay-with-sentry\",\n    \"aria-label\": \"registering relay with sentry permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Registering Relay with Sentry\"), mdx(Alert, {\n    level: \"info\",\n    mdxType: \"Alert\"\n  }, mdx(\"p\", null, \"Not applicable in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"proxy\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"static\"), \" mode.\")), mdx(\"p\", null, \"To operate in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"managed\"), \" mode, Relay pulls configuration for PII stripping,\\nfiltering, and rate limiting from your organization and project settings in\\nSentry. Since these settings may contain sensitive information, their access is\\nrestricted by Sentry and requires authorization.\"), mdx(\"p\", null, \"To register Relay with Sentry:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Copy the contents of the public key, either by inspecting the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"credentials.json\"), \" file or by running:\"), mdx(\"div\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"code-tabs-wrapper\"\n  }), mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run in Docker\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"docker run --rm -it                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -v \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token variable\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \"$(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"pwd\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \")\")), \"/config/:/work/.relay/  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  getsentry/relay                  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  credentials show\")))), mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run Executable\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"./relay credentials show\"))))))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Click on \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Settings\"), \" in the main navigation for Sentry, then select \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Relays\"), \".\"))), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/1a3d77f31dc15ff8e8363597eb573718/8454b/add-relay-key.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"64.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAAByklEQVQ4y51Sy3LbMAz0/39Dp5fM9G966DFN7VhjV7b1sEVK4pvaAKCVpJmmh3JmByQILMEFNiEE6HFG0AqmrmF9xDwZOOfx2Uopw0wWMUQsy0KeN2xiTDCGLp1DsmQp2FoHZz0lJqT4AeSLMcK7IITWBKibw3Czst8Ezw6NebbyBq+RKu6aKwIl5LwgEfIdKediU4l+ehzw8OUnvn19wo/vbanQGgcmXhmV0rhcWjRNh4Ys78+nBpdzi7btxd82xbK//t3gUNWYRkMVUhUTVZRDxu52RG8Vhn7A865CtT9gt92L3dP5ecW2IoIj7Q841h2u/RUdPeS9L4RmdljoGz6RLjmJPuo2Qg8jaRlET0V7juO7Uc0YrprOln5GmoYCTw0VDY3od/8vGUdJk54FgYIYo5qk82uHNZ09nZlojfHEteHOOeNf9WPBWde/LR4R1ruMyvr+257zNpOy2J4q/OoPZcaoi3zBSe8TJZkem0n4TDEfH3ol5FnSirTy/l5hvldYgrQepdOMruvF9mQv5wan+kwNnf6skAlZH9ZxrazMXxaUQf4MUe7XWOaSLo96EqzfZB8LzBDBwz/g38UKoY8ykKsOy70p/4sXstDzHJhuzEsAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"add relay key\",\n    \"title\": \"add relay key\",\n    \"src\": \"/static/1a3d77f31dc15ff8e8363597eb573718/c1b63/add-relay-key.png\",\n    \"srcSet\": [\"/static/1a3d77f31dc15ff8e8363597eb573718/5a46d/add-relay-key.png 300w\", \"/static/1a3d77f31dc15ff8e8363597eb573718/0a47e/add-relay-key.png 600w\", \"/static/1a3d77f31dc15ff8e8363597eb573718/c1b63/add-relay-key.png 1200w\", \"/static/1a3d77f31dc15ff8e8363597eb573718/8454b/add-relay-key.png 1798w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Click \", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"New Relay Key\"), \" to add the key and save it:\")), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"512px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/267b5f5394a064e5da422e0cc45c594e/01e7c/edit-relay-key.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"74%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsSAAALEgHS3X78AAABzUlEQVQ4y51TTU/bQBD176/EqVKPFZeqPXAAqZRCRD5UCkpIbJwvwseFEApx7PgjNI7XXr/OrJ0AEUUJKz/trrXz5u2bWa2wV4Kpt9ConUGvm9BPTdRrxnqoGjAaTezu7EO7urhGmqZwxy4818N0OsV7x2lVh9Y02mozC2eIoghCCCRJshbiOFYcx7+q0Fpmh1SFuBv8wfDBUmukgJRyZTApj5MjIuy2e/RDon8zgOOM84xvI1mCiERG+LsGrdM6V5LZw9ksWskr9lzKFGmOJ4W1TCH717+5hTUcwfcDhYDwOHnM9p6v9kEwoXmiBKjrJhnmHi4IefB1HXsMlyptj5wFHJtmAiezR7Y6w4XLVMr/K7SGNsaOqwJGlr3whQPpewH2XPmXV1mIJYXTvyFu+3d4uB/SPCA/vfcXpd08V20Sch9SUXjmoOfGS7m8nrcL+ycpLlb/c8KuYo8oSywyBXwF3otXEWdEgn2Ted3lU2PPCdmLeebMt9fBCX0voKQhGlULXzev8OXzJXodn951HVqve7n2m/WpddJU4Lhi4dNGDx8/dNHUA5hnBrTtre84PChj/8chDvZWA58v/CyhWCihUiyjXCwRKtj6toN/qkVtVOZ03tAAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"edit relay key\",\n    \"title\": \"edit relay key\",\n    \"src\": \"/static/267b5f5394a064e5da422e0cc45c594e/01e7c/edit-relay-key.png\",\n    \"srcSet\": [\"/static/267b5f5394a064e5da422e0cc45c594e/5a46d/edit-relay-key.png 300w\", \"/static/267b5f5394a064e5da422e0cc45c594e/01e7c/edit-relay-key.png 512w\"],\n    \"sizes\": \"(max-width: 512px) 100vw, 512px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"This process registers Relay with Sentry so it is ready to send messages. See\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"../options/\"\n  }), \"Configuration Options\"), \" to learn more about Relay configuration options.\"), mdx(\"h2\", {\n    \"id\": \"running-relay\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#running-relay\",\n    \"aria-label\": \"running relay permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Running Relay\"), mdx(\"p\", null, \"After registering Relay with Sentry, it is ready to run:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run in Docker\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"docker run --rm -it                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -v \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token variable\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \"$(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"pwd\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \")\")), \"/config/:/work/.relay/  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -p \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token number\"\n  }), \"3000\"), \":3000                     \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  getsentry/relay                  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  run\")))), mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run Executable\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"./relay run\")))))), mdx(\"p\", null, \"Under default configuration, Relay emits log output similar to:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"\",\n    title: \"\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"text\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-text\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-text\"\n  }), \" INFO  relay::setup > launching relay from config folder .relay\\n INFO  relay::setup >   relay mode: managed\\n INFO  relay::setup >   relay id: cde0d72e-0c4e-4550-a934-c1867d8a177c\\n INFO  relay::setup >   public key: nDJI79SbEYH9-8NEJAI7ezrgYfoIPW3Bnkg00k1z0fA\\n ...\\n INFO  relay_server::actors::upstream > relay successfully registered with upstream\")))))), mdx(\"p\", null, \"Refer to the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"../monitoring/#logging\"\n  }), \"Logging\"), \" page for more information on how to configure Relay's logging.\"), mdx(\"p\", null, \"If you moved your config folder (for example, for security reasons), use the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--config\"), \" option to specify the location:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run in Docker\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"docker run --rm -it                \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -v \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token variable\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \"$(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"pwd\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"token variable\"\n  }), \")\")), \"/config/:/etc/relay/    \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  -p \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token number\"\n  }), \"3000\"), \":3000                     \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  getsentry/relay                  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token punctuation\"\n  }), \"\\\\\"), \"\\n  run --config /etc/relay/\")))), mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"Run Executable\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"./relay run --config /etc/relay/\")))))), mdx(\"h2\", {\n    \"id\": \"sending-a-test-event\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#sending-a-test-event\",\n    \"aria-label\": \"sending a test event permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Sending a Test Event\"), mdx(\"p\", null, \"Once Relay is running and authenticated with Sentry, send a test event to one of the projects in your organization.\"), mdx(\"p\", null, \"Get the DSN of your project by navigating to your project settings at \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Settings > Projects > {YOUR_PROJECT_NAME} > Client Keys (DSN)\"), \", and select one of the existing DSNs, which looks similar to:\"), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"https://12345abcdef10111213141516171819@o1.ingest.sentry.io/2345\")), mdx(\"p\", null, \"Next, replace parts of the DSN to match the address at which Relay is reachable.\\nFor instance, if Relay listens at \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"http://localhost:3000\"), \", change the protocol\\nand host of the DSN to:\"), mdx(\"p\", null, mdx(\"code\", null, mdx(\"strong\", null, mdx(\"i\", null, \"http\")), \"://12345abcdef10111213141516171819@\", mdx(\"strong\", null, mdx(\"i\", null, \"localhost:3000\")), \"/2345\")), mdx(\"p\", null, \"Use the new DSN in your SDK configuration. To test this, you can send a message\\nwith \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sentry-cli\"), \" (\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/product/cli/installation/\"\n  }), \"installation instructions\"), \"):\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token builtin class-name\"\n  }), \"export\"), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token assign-left variable\"\n  }), \"SENTRY_DSN\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token operator\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"'http://12345abcdef10111213141516171819@127.0.0.1:3000/2345'\"), \"\\nsentry-cli send-event -m \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token string\"\n  }), \"'A test event'\"))))))), mdx(\"p\", null, \"In a few seconds, the event should appear in the issues stream in your\\nproject.\"), mdx(\"h2\", {\n    \"id\": \"next-steps\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#next-steps\",\n    \"aria-label\": \"next steps permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Next Steps\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"a\", _extends({\n    parentName: \"strong\"\n  }, {\n    \"href\": \"../operating-guidelines/\"\n  }), \"Learn more about our Operating Guidelines\")))), mdx(\"p\", null, \"With a working Relay instance, you can both monitor and scale your Relay setup.\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#initializing-configuration","title":"Initializing Configuration"},{"url":"#creating-credentials","title":"Creating Credentials"},{"url":"#registering-relay-with-sentry","title":"Registering Relay with Sentry"},{"url":"#running-relay","title":"Running Relay"},{"url":"#sending-a-test-event","title":"Sending a Test Event"},{"url":"#next-steps","title":"Next Steps"}]},"internal":{"type":"Mdx"}}}},"pageContext":{"excerpt":"Getting started with Relay is as simple as using the default settings. You can also configure Relay to suit your organization's needs. Check the  Configuration Options  page for a detailed discussion of operating scenarios. The Relay server is called  relay . Download binaries from  GitHub\nReleases . A Docker image is provided on  DockerHub . Initializing Configuration To create the initial configuration, use Relay's  relay config init  command,\nwhich puts configuration files in the  .relay  folder under the current working\ndirectory. In Docker, provide the configuration directory using the standard\nmechanisms offered by Docker, either by mounting  Docker\nvolumes  or by building a new\ncontainer and copying in the files. Select the default configuration to create a minimal configuration file.\nYou can choose to override the default settings by selecting\n \"create custom config\"  and customizing these parameters: The  mode  setting, which configures the major mode in which Relay operates. For more information on available Relay modes, refer to  Relay Modes . Currently, only  proxy  and  static  mode are available to all organizations. The  upstream  setting configures the server to which Relay will forward the\nevents (by default the main  sentry.io  URL). The  port  and  host  settings configure the TCP port at which Relay will\nlisten. This is the address to which SDKs send events. The  tls  settings configure TLS support (HTTPS support), used when communication between the SDK and Relay needs to be secured. Settings are recorded in  .relay/config.yml . Note that all configuration values\nare optional and default to these settings: Configurations are fully documented in  Configuration Options . Creating Credentials Not applicable in  proxy  or  static  mode. In addition to  config.yml , the  init  command creates a credentials file,  credentials.json , which is placed in the same  .relay  directory. This file contains both the public and private key Relay uses to authenticate with the upstream server. As a result, this file must be protected from modification or view by unauthorized entities. A typical credentials file is similar to this example: Use the  public_key  to register your Relay with the upstream server when running it in  managed  mode. Registering Relay with Sentry Not applicable in  proxy  or  static  mode. To operate in  managed  mode, Relay pulls configuration for PII stripping,\nfiltering, and rate limiting from your organization and project settings in\nSentry. Since these settings may contain sensitive information, their access is\nrestricted by Sentry and requires authorization. To register Relay with Sentry: Copy the contents of the public key, either by inspecting the  credentials.json  file or by running: Click on  Settings  in the main navigation for Sentry, then select  Relays . Click  New Relay Key  to add the key and save it: This process registers Relay with Sentry so it is ready to send messages. See\n Configuration Options  to learn more about Relay configuration options. Running Relay After registering Relay with Sentry, it is ready to run: Under default configuration, Relay emits log output similar to: Refer to the  Logging  page for more information on how to configure Relay's logging. If you moved your config folder (for example, for security reasons), use the  --config  option to specify the location: Sending a Test Event Once Relay is running and authenticated with Sentry, send a test event to one of the projects in your organization. Get the DSN of your project by navigating to your project settings at  Settings > Projects > {YOUR_PROJECT_NAME} > Client Keys (DSN) , and select one of the existing DSNs, which looks similar to: https://12345abcdef10111213141516171819@o1.ingest.sentry.io/2345 Next, replace parts of the DSN to match the address at which Relay is reachable.\nFor instance, if Relay listens at  http://localhost:3000 , change the protocol\nand host of the DSN to: Use the new DSN in your SDK configuration. To test this, you can send a message\nwith  sentry-cli  ( installation instructions ): In a few seconds, the event should appear in the issues stream in your\nproject. Next Steps Learn more about our Operating Guidelines With a working Relay instance, you can both monitor and scale your Relay setup.","title":"Getting Started","description":"Learn how to get started with Relay, Sentry's data security solution.","draft":null,"noindex":null,"notoc":null,"sidebar_order":1,"redirect_from":["/meta/relay/getting-started/"],"keywords":null,"id":"574b410f-a364-5367-bdd2-832839324197","legacy":false}},"staticQueryHashes":["1218203755","1222113826","1222113826","1766336459","2158593473","2764967025","3345802723","3818502851","3990806462","4015007367","4192517163","4264099332","518019976"]}