[{"data":1,"prerenderedAt":2237},["ShallowReactive",2],{"docs-navigation":3,"-docs-installation-configuration":410,"-docs-installation-configuration-surround":2232},[4,19,166,319,333,397],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Overview","i-lucide-compass","\u002Fdocs\u002Foverview","docs\u002F1.overview",[10,14],{"title":11,"path":12,"stem":13},"Introduction","\u002Fdocs\u002Foverview\u002Fintroduction","docs\u002F1.overview\u002F1.introduction",{"title":15,"path":16,"stem":17},"JFrog compatibility","\u002Fdocs\u002Foverview\u002Fjfrog-compatibility","docs\u002F1.overview\u002F2.jfrog-compatibility",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Installation","i-lucide-download","\u002Fdocs\u002Finstallation","docs\u002F2.installation",[25,29,43,68,108,112,116,162],{"title":26,"path":27,"stem":28},"Choosing a method","\u002Fdocs\u002Finstallation\u002Foverview","docs\u002F2.installation\u002F1.overview",{"title":30,"icon":31,"path":32,"stem":33,"children":34,"page":18},"Single binary","i-lucide-terminal","\u002Fdocs\u002Finstallation\u002Fsingle-binary","docs\u002F2.installation\u002F2.single-binary",[35,39],{"title":36,"path":37,"stem":38},"Quick start","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Fquick-start","docs\u002F2.installation\u002F2.single-binary\u002F1.quick-start",{"title":40,"path":41,"stem":42},"Limits and backups","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Foperations","docs\u002F2.installation\u002F2.single-binary\u002F2.operations",{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":18},"Docker","i-simple-icons-docker","\u002Fdocs\u002Finstallation\u002Fdocker","docs\u002F2.installation\u002F3.docker",[49,52,56,60,64],{"title":36,"path":50,"stem":51},"\u002Fdocs\u002Finstallation\u002Fdocker\u002Fquick-start","docs\u002F2.installation\u002F3.docker\u002F1.quick-start",{"title":53,"path":54,"stem":55},"PostgreSQL and S3","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fpostgresql-and-s3","docs\u002F2.installation\u002F3.docker\u002F2.postgresql-and-s3",{"title":57,"path":58,"stem":59},"Docker Compose","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose","docs\u002F2.installation\u002F3.docker\u002F3.compose",{"title":61,"path":62,"stem":63},"Compose settings","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-settings","docs\u002F2.installation\u002F3.docker\u002F4.compose-settings",{"title":65,"path":66,"stem":67},"Compose with another object store","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-other-object-storage","docs\u002F2.installation\u002F3.docker\u002F5.compose-other-object-storage",{"title":69,"icon":70,"path":71,"stem":72,"children":73,"page":18},"Kubernetes","i-simple-icons-kubernetes","\u002Fdocs\u002Finstallation\u002Fkubernetes","docs\u002F2.installation\u002F4.kubernetes",[74,77,80,84,88,92,96,100,104],{"title":5,"path":75,"stem":76},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Foverview","docs\u002F2.installation\u002F4.kubernetes\u002F1.overview",{"title":36,"path":78,"stem":79},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fquick-start","docs\u002F2.installation\u002F4.kubernetes\u002F2.quick-start",{"title":81,"path":82,"stem":83},"External PostgreSQL","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-postgresql","docs\u002F2.installation\u002F4.kubernetes\u002F3.external-postgresql",{"title":85,"path":86,"stem":87},"External object storage","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-object-storage","docs\u002F2.installation\u002F4.kubernetes\u002F4.external-object-storage",{"title":89,"path":90,"stem":91},"Exposing Relic","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexposing","docs\u002F2.installation\u002F4.kubernetes\u002F5.exposing",{"title":93,"path":94,"stem":95},"Values","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fvalues","docs\u002F2.installation\u002F4.kubernetes\u002F6.values",{"title":97,"path":98,"stem":99},"Upgrades and removal","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fupgrades","docs\u002F2.installation\u002F4.kubernetes\u002F7.upgrades",{"title":101,"path":102,"stem":103},"Hardening and probes","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fhardening","docs\u002F2.installation\u002F4.kubernetes\u002F8.hardening",{"title":105,"path":106,"stem":107},"Monitoring","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fmonitoring","docs\u002F2.installation\u002F4.kubernetes\u002F9.monitoring",{"title":109,"path":110,"stem":111},"Cloudflare","\u002Fdocs\u002Finstallation\u002Fcloudflare","docs\u002F2.installation\u002F5.cloudflare",{"title":113,"path":114,"stem":115},"Configuration reference","\u002Fdocs\u002Finstallation\u002Fconfiguration","docs\u002F2.installation\u002F6.configuration",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":18},"Storage","i-lucide-hard-drive","\u002Fdocs\u002Finstallation\u002Fstorage","docs\u002F2.installation\u002F7.storage",[122,126,130,134,138,142,146,150,154,158],{"title":123,"path":124,"stem":125},"Storage overview","\u002Fdocs\u002Finstallation\u002Fstorage\u002Foverview","docs\u002F2.installation\u002F7.storage\u002F1.overview",{"title":127,"path":128,"stem":129},"Azure Blob Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fazure-blob-storage","docs\u002F2.installation\u002F7.storage\u002F10.azure-blob-storage",{"title":131,"path":132,"stem":133},"SeaweedFS","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fseaweedfs","docs\u002F2.installation\u002F7.storage\u002F2.seaweedfs",{"title":135,"path":136,"stem":137},"Amazon S3","\u002Fdocs\u002Finstallation\u002Fstorage\u002Famazon-s3","docs\u002F2.installation\u002F7.storage\u002F3.amazon-s3",{"title":139,"path":140,"stem":141},"Cloudflare R2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fcloudflare-r2","docs\u002F2.installation\u002F7.storage\u002F4.cloudflare-r2",{"title":143,"path":144,"stem":145},"MinIO","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fminio","docs\u002F2.installation\u002F7.storage\u002F5.minio",{"title":147,"path":148,"stem":149},"Google Cloud Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fgoogle-cloud-storage","docs\u002F2.installation\u002F7.storage\u002F6.google-cloud-storage",{"title":151,"path":152,"stem":153},"Backblaze B2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fbackblaze-b2","docs\u002F2.installation\u002F7.storage\u002F7.backblaze-b2",{"title":155,"path":156,"stem":157},"Other S3-compatible services","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fother","docs\u002F2.installation\u002F7.storage\u002F8.other",{"title":159,"path":160,"stem":161},"Filesystem","\u002Fdocs\u002Finstallation\u002Fstorage\u002Ffilesystem","docs\u002F2.installation\u002F7.storage\u002F9.filesystem",{"title":163,"path":164,"stem":165},"Development","\u002Fdocs\u002Finstallation\u002Fdevelopment","docs\u002F2.installation\u002F8.development",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":18},"Guides","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F3.guides",[172,176,180,254,296,300,303,307,311,315],{"title":173,"path":174,"stem":175},"Repositories","\u002Fdocs\u002Fguides\u002Frepositories","docs\u002F3.guides\u002F1.repositories",{"title":177,"path":178,"stem":179},"Replication","\u002Fdocs\u002Fguides\u002Freplication","docs\u002F3.guides\u002F10.replication",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":18},"Package types","i-lucide-package","\u002Fdocs\u002Fguides\u002Fpackage-types","docs\u002F3.guides\u002F2.package-types",[186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250],{"title":187,"path":188,"stem":189},"npm, yarn and pnpm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnpm","docs\u002F3.guides\u002F2.package-types\u002F01.npm",{"title":191,"path":192,"stem":193},"Maven and Gradle","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fmaven-gradle","docs\u002F3.guides\u002F2.package-types\u002F02.maven-gradle",{"title":195,"path":196,"stem":197},"Docker and OCI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdocker","docs\u002F3.guides\u002F2.package-types\u002F03.docker",{"title":199,"path":200,"stem":201},"Go","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgo","docs\u002F3.guides\u002F2.package-types\u002F04.go",{"title":203,"path":204,"stem":205},"PyPI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fpypi","docs\u002F3.guides\u002F2.package-types\u002F05.pypi",{"title":207,"path":208,"stem":209},"Helm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhelm","docs\u002F3.guides\u002F2.package-types\u002F06.helm",{"title":211,"path":212,"stem":213},"NuGet","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnuget","docs\u002F3.guides\u002F2.package-types\u002F07.nuget",{"title":215,"path":216,"stem":217},"RubyGems","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frubygems","docs\u002F3.guides\u002F2.package-types\u002F08.rubygems",{"title":219,"path":220,"stem":221},"Cargo","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fcargo","docs\u002F3.guides\u002F2.package-types\u002F09.cargo",{"title":223,"path":224,"stem":225},"Conan","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fconan","docs\u002F3.guides\u002F2.package-types\u002F10.conan",{"title":227,"path":228,"stem":229},"Terraform and OpenTofu","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fterraform","docs\u002F3.guides\u002F2.package-types\u002F11.terraform",{"title":231,"path":232,"stem":233},"Hugging Face","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhugging-face","docs\u002F3.guides\u002F2.package-types\u002F12.hugging-face",{"title":235,"path":236,"stem":237},"Generic files","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgeneric","docs\u002F3.guides\u002F2.package-types\u002F13.generic",{"title":239,"path":240,"stem":241},"RPM","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frpm","docs\u002F3.guides\u002F2.package-types\u002F14.rpm",{"title":243,"path":244,"stem":245},"Debian","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdebian","docs\u002F3.guides\u002F2.package-types\u002F15.debian",{"title":247,"path":248,"stem":249},"Alpine","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Falpine","docs\u002F3.guides\u002F2.package-types\u002F16.alpine",{"title":251,"path":252,"stem":253},"Nix","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnix","docs\u002F3.guides\u002F2.package-types\u002F17.nix",{"title":255,"icon":256,"path":257,"stem":258,"children":259,"page":18},"Security","i-lucide-shield","\u002Fdocs\u002Fguides\u002Fsecurity","docs\u002F3.guides\u002F3.security",[260,264,268,272,276,280,284,288,292],{"title":261,"path":262,"stem":263},"Permissions","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fpermissions","docs\u002F3.guides\u002F3.security\u002F1.permissions",{"title":265,"path":266,"stem":267},"LDAP","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fldap","docs\u002F3.guides\u002F3.security\u002F2.ldap",{"title":269,"path":270,"stem":271},"Access tokens","\u002Fdocs\u002Fguides\u002Fsecurity\u002Ftokens","docs\u002F3.guides\u002F3.security\u002F3.tokens",{"title":273,"path":274,"stem":275},"Relic Scan","\u002Fdocs\u002Fguides\u002Fsecurity\u002Frelic-scan","docs\u002F3.guides\u002F3.security\u002F4.relic-scan",{"title":277,"path":278,"stem":279},"CVE intelligence","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fcve-intelligence","docs\u002F3.guides\u002F3.security\u002F5.cve-intelligence",{"title":281,"path":282,"stem":283},"Audit log","\u002Fdocs\u002Fguides\u002Fsecurity\u002Faudit-log","docs\u002F3.guides\u002F3.security\u002F6.audit-log",{"title":285,"path":286,"stem":287},"Single sign-on","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fsingle-sign-on","docs\u002F3.guides\u002F3.security\u002F7.single-sign-on",{"title":289,"path":290,"stem":291},"SCIM provisioning","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fscim","docs\u002F3.guides\u002F3.security\u002F8.scim",{"title":293,"path":294,"stem":295},"Workload identities","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fworkload-identities","docs\u002F3.guides\u002F3.security\u002F9.workload-identities",{"title":297,"path":298,"stem":299},"Operations","\u002Fdocs\u002Fguides\u002Foperations","docs\u002F3.guides\u002F4.operations",{"title":105,"path":301,"stem":302},"\u002Fdocs\u002Fguides\u002Fmonitoring","docs\u002F3.guides\u002F5.monitoring",{"title":304,"path":305,"stem":306},"Metrics reference","\u002Fdocs\u002Fguides\u002Fmetrics-reference","docs\u002F3.guides\u002F6.metrics-reference",{"title":308,"path":309,"stem":310},"Webhooks","\u002Fdocs\u002Fguides\u002Fwebhooks","docs\u002F3.guides\u002F7.webhooks",{"title":312,"path":313,"stem":314},"Projects","\u002Fdocs\u002Fguides\u002Fprojects","docs\u002F3.guides\u002F8.projects",{"title":316,"path":317,"stem":318},"AI agents","\u002Fdocs\u002Fguides\u002Fai-agents","docs\u002F3.guides\u002F9.ai-agents",{"title":320,"icon":321,"path":322,"stem":323,"children":324,"page":18},"API","i-lucide-braces","\u002Fdocs\u002Fapi","docs\u002F4.api",[325,329],{"title":326,"path":327,"stem":328},"API usage","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F4.api\u002F1.overview",{"title":330,"path":331,"stem":332},"Relic API","\u002Fdocs\u002Fapi\u002Frelic-api","docs\u002F4.api\u002F2.relic-api",{"title":334,"icon":31,"path":335,"stem":336,"children":337,"page":18},"CLI","\u002Fdocs\u002Fcli","docs\u002F5.cli",[338,341,345,349,353,357,361,365,369,373,377,381,385,389,393],{"title":5,"path":339,"stem":340},"\u002Fdocs\u002Fcli\u002Foverview","docs\u002F5.cli\u002F01.overview",{"title":342,"path":343,"stem":344},"Sign in and contexts","\u002Fdocs\u002Fcli\u002Fsign-in","docs\u002F5.cli\u002F02.sign-in",{"title":346,"path":347,"stem":348},"Resources","\u002Fdocs\u002Fcli\u002Fresources","docs\u002F5.cli\u002F03.resources",{"title":350,"path":351,"stem":352},"apply, diff and delete","\u002Fdocs\u002Fcli\u002Fapply","docs\u002F5.cli\u002F04.apply",{"title":354,"path":355,"stem":356},"Artifacts","\u002Fdocs\u002Fcli\u002Ffiles","docs\u002F5.cli\u002F05.files",{"title":358,"path":359,"stem":360},"Server, API and tokens","\u002Fdocs\u002Fcli\u002Fplatform","docs\u002F5.cli\u002F06.platform",{"title":362,"path":363,"stem":364},"Builds and images","\u002Fdocs\u002Fcli\u002Fbuilds","docs\u002F5.cli\u002F07.builds",{"title":366,"path":367,"stem":368},"Scanning and auditing","\u002Fdocs\u002Fcli\u002Fsecurity","docs\u002F5.cli\u002F08.security",{"title":370,"path":371,"stem":372},"Releases","\u002Fdocs\u002Fcli\u002Freleases","docs\u002F5.cli\u002F09.releases",{"title":374,"path":375,"stem":376},"Evidence","\u002Fdocs\u002Fcli\u002Fevidence","docs\u002F5.cli\u002F10.evidence",{"title":378,"path":379,"stem":380},"Package managers","\u002Fdocs\u002Fcli\u002Fpackage-managers","docs\u002F5.cli\u002F11.package-managers",{"title":382,"path":383,"stem":384},"Scan reports and VEX","\u002Fdocs\u002Fcli\u002Freports-and-vex","docs\u002F5.cli\u002F12.reports-and-vex",{"title":386,"path":387,"stem":388},"Migrating from Artifactory","\u002Fdocs\u002Fcli\u002Fimport","docs\u002F5.cli\u002F13.import",{"title":390,"path":391,"stem":392},"Database","\u002Fdocs\u002Fcli\u002Fdatabase","docs\u002F5.cli\u002F14.database",{"title":394,"path":395,"stem":396},"Machine setup","\u002Fdocs\u002Fcli\u002Fsetup","docs\u002F5.cli\u002F15.setup",{"title":398,"icon":399,"path":400,"stem":401,"children":402,"page":18},"SDK","i-lucide-boxes","\u002Fdocs\u002Fsdk","docs\u002F6.sdk",[403,406],{"title":5,"path":404,"stem":405},"\u002Fdocs\u002Fsdk\u002Foverview","docs\u002F6.sdk\u002F1.overview",{"title":407,"path":408,"stem":409},"Relic API clients","\u002Fdocs\u002Fsdk\u002Frelic-api-clients","docs\u002F6.sdk\u002F2.relic-api-clients",{"id":411,"title":113,"body":412,"description":2225,"extension":2226,"links":2227,"meta":2228,"navigation":2229,"path":114,"seo":2230,"stem":115,"__hash__":2231},"docs\u002Fdocs\u002F2.installation\u002F6.configuration.md",{"type":413,"value":414,"toc":2211},"minimark",[415,452,485,490,653,657,662,677,765,770,776,816,841,853,860,863,866,971,975,981,1217,1221,1431,1435,1907,1912,1916,1921],[416,417,418,419,423,424,427,428,431,432,435,436,439,440,443,444,447,448,451],"p",{},"Relic reads its configuration from environment variables. ",[420,421,422],"code",{},"relic server start",", ",[420,425,426],{},"relic server worker"," and ",[420,429,430],{},"relic server migrate"," take ",[420,433,434],{},"--settings \u003Cfile>",", which first sets the variables of a file of ",[420,437,438],{},"KEY=value"," lines,\nreplacing ones already set; give the server and the worker the same file. Blank\nlines and lines starting with ",[420,441,442],{},"#"," are skipped, and quotes around a value are\ndropped. A line with ",[420,445,446],{},"export",", or with spaces around ",[420,449,450],{},"=",", stops the command with\nan error that names the line.",[416,453,454,455,423,458,423,461,464,465,468,469,472,473,476,477,480,481,484],{},"Durations use Go syntax (",[420,456,457],{},"90s",[420,459,460],{},"10m",[420,462,463],{},"336h","). Switches take ",[420,466,467],{},"true"," or\n",[420,470,471],{},"false",". Feed URLs take an ",[420,474,475],{},"http"," or ",[420,478,479],{},"https"," URL, or ",[420,482,483],{},"off",". If any variable is\nwrong, Relic refuses to start and lists every error.",[486,487,489],"h2",{"id":488},"core","Core",[491,492,493,509],"table",{},[494,495,496],"thead",{},[497,498,499,503,506],"tr",{},[500,501,502],"th",{},"Variable",[500,504,505],{},"Default",[500,507,508],{},"Meaning",[510,511,512,539,565,584,605,621,637],"tbody",{},[497,513,514,520,525],{},[515,516,517],"td",{},[420,518,519],{},"RELIC_HTTP_LISTEN_ADDRESS",[515,521,522],{},[420,523,524],{},":8090",[515,526,527,528,476,531,534,535,538],{},"Listen address, ",[420,529,530],{},"host:port",[420,532,533],{},":port",". Serves HTTPS unless the server runs with ",[420,536,537],{},"--no-tls",".",[497,540,541,546,549],{},[515,542,543],{},[420,544,545],{},"RELIC_DATABASE_URL",[515,547,548],{},"(required)",[515,550,551,552,555,556,559,560,564],{},"A PostgreSQL URL, such as ",[420,553,554],{},"postgres:\u002F\u002Frelic:\u003Cpassword>@db:5432\u002Frelic?sslmode=require",", or a SQLite file for a single node, such as ",[420,557,558],{},"sqlite:\u002F\u002F\u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Frelic.db"," (",[561,562,563],"a",{"href":37},"Single node",").",[497,566,567,575,581],{},[515,568,569,423,572],{},[420,570,571],{},"RELIC_ADMIN_USERNAME",[420,573,574],{},"RELIC_ADMIN_PASSWORD",[515,576,577,580],{},[420,578,579],{},"admin",", (none)",[515,582,583],{},"The first administrator, created when no user exists. The password needs at least 8 characters, as every user password does.",[497,585,586,591,594],{},[515,587,588],{},[420,589,590],{},"RELIC_ENCRYPTION_KEY",[515,592,593],{},"(none)",[515,595,596,597,600,601,538],{},"32 bytes in base64 (",[420,598,599],{},"openssl rand -base64 32","). Seals token signing keys, signing key pairs, and the upstream, replication and LDAP manager passwords. See ",[561,602,604],{"href":603},"\u002Fdocs\u002Fguides\u002Foperations#secrets-at-rest","Secrets at rest",[497,606,607,612,616],{},[515,608,609],{},[420,610,611],{},"RELIC_UPSTREAM_ALLOW_PRIVATE_ADDRESSES",[515,613,614],{},[420,615,471],{},[515,617,618,620],{},[420,619,467],{}," lets remote repositories and replication reach loopback, private and link-local addresses.",[497,622,623,628,630],{},[515,624,625],{},[420,626,627],{},"RELIC_UPSTREAM_CA_CERTIFICATE_FILE",[515,629,593],{},[515,631,632,633,538],{},"A PEM file of extra CA certificates, trusted besides the system roots, for the servers remote repositories and replication connect to. Set it on the server and the worker. See ",[561,634,636],{"href":635},"#trusting-the-authority","Trusting the authority",[497,638,639,644,648],{},[515,640,641],{},[420,642,643],{},"RELIC_WEBHOOK_ALLOW_PRIVATE_ADDRESSES",[515,645,646],{},[420,647,471],{},[515,649,650,652],{},[420,651,467],{}," lets webhooks reach loopback, private and link-local addresses.",[486,654,656],{"id":655},"tls","TLS",[416,658,659,661],{},[420,660,422],{}," serves HTTPS: TLS 1.3 (with the hybrid post-quantum\nX25519MLKEM768 key exchange), and TLS 1.2 with ECDHE and AES-GCM or\nChaCha20-Poly1305 only. Older versions and CBC suites are refused.",[416,663,664,667,668,671,672,676],{},[420,665,666],{},"relic server start --no-tls"," serves plain HTTP, for use behind a proxy that\nterminates TLS. List that proxy in ",[420,669,670],{},"RELIC_TRUSTED_PROXIES","\n(",[561,673,675],{"href":674},"\u002Fdocs\u002Fguides\u002Foperations#behind-a-reverse-proxy","Behind a reverse proxy","). The\nmetrics listener always serves plain HTTP.",[491,678,679,689],{},[494,680,681],{},[497,682,683,685,687],{},[500,684,502],{},[500,686,505],{},[500,688,508],{},[510,690,691,706,730,749],{},[497,692,693,701,703],{},[515,694,695,423,698],{},[420,696,697],{},"RELIC_TLS_CERTIFICATE_FILE",[420,699,700],{},"RELIC_TLS_KEY_FILE",[515,702,593],{},[515,704,705],{},"Your certificate chain and private key, as PEM files. Set both or neither. Reloaded when either changes; a pair that does not load is logged as a warning and the previous certificate stays in use.",[497,707,708,713,727],{},[515,709,710],{},[420,711,712],{},"RELIC_TLS_DIRECTORY",[515,714,715,718,719,722,723,726],{},[420,716,717],{},"$XDG_CONFIG_HOME\u002Frelic\u002Ftls",", or ",[420,720,721],{},"~\u002F.config\u002Frelic\u002Ftls","; ",[420,724,725],{},"\u002Fetc\u002Frelic\u002Ftls"," in the image",[515,728,729],{},"Where Relic keeps the certificate authority and certificate it generates when you give it none.",[497,731,732,737,742],{},[515,733,734],{},[420,735,736],{},"RELIC_TLS_MIN_VERSION",[515,738,739],{},[420,740,741],{},"1.2",[515,743,744,476,746,538],{},[420,745,741],{},[420,747,748],{},"1.3",[497,750,751,756,758],{},[515,752,753],{},[420,754,755],{},"RELIC_TLS_HOSTNAMES",[515,757,593],{},[515,759,760,761,764],{},"Comma-separated host names (",[420,762,763],{},"*."," allowed in front) and IP addresses to add to the generated certificate.",[766,767,769],"h3",{"id":768},"the-generated-certificate-authority","The generated certificate authority",[416,771,772,773,775],{},"Without your own certificate, Relic creates these files in\n",[420,774,712],{},":",[491,777,778,788],{},[494,779,780],{},[497,781,782,785],{},[500,783,784],{},"File",[500,786,787],{},"Holds",[510,789,790,803],{},[497,791,792,800],{},[515,793,794,423,797],{},[420,795,796],{},"ca.crt",[420,798,799],{},"ca.key",[515,801,802],{},"A certificate authority, valid for 10 years. The key has mode 0600.",[497,804,805,813],{},[515,806,807,423,810],{},[420,808,809],{},"server.crt",[420,811,812],{},"server.key",[515,814,815],{},"The server certificate, valid for 90 days. Relic issues a new one at every start and 30 days before it expires.",[416,817,818,819,822,823,423,826,829,830,427,832,834,835,838,839,538],{},"The keys are ECDSA P-384. The server certificate holds ",[420,820,821],{},"localhost",",\n",[420,824,825],{},"127.0.0.1",[420,827,828],{},"::1",", the host name, the interface addresses, the host of\n",[420,831,519],{},[420,833,755],{},". Add the name clients\nuse, such as ",[420,836,837],{},"relic.example.com",", to ",[420,840,755],{},[416,842,843,844,846,847,849,850,852],{},"At start, the server logs the path of ",[420,845,796],{}," and its SHA-256 fingerprint.\nGive clients ",[420,848,796],{},"; keep ",[420,851,799],{}," on the server. Keep the directory across\nrestarts and upgrades: if it is lost, Relic creates a new authority that every\nclient has to trust again.",[416,854,855,856,427,858,538],{},"Each server creates its own authority. Behind one load balancer, give every\nserver the same ",[420,857,697],{},[420,859,700],{},[766,861,636],{"id":862},"trusting-the-authority",[416,864,865],{},"Clients need a private authority's certificate:",[491,867,868,878],{},[494,869,870],{},[497,871,872,875],{},[500,873,874],{},"Client",[500,876,877],{},"Where the certificate goes",[510,879,880,899,907,921,934,943,953,961],{},[497,881,882,885],{},[515,883,884],{},"relic CLI",[515,886,887,890,891,894,895,564],{},[420,888,889],{},"--ca-file ca.crt"," on ",[420,892,893],{},"relic auth login",", or accept the fingerprint it shows (",[561,896,898],{"href":897},"\u002Fdocs\u002Fcli\u002Fsign-in#servers-with-a-private-certificate-authority","Sign in",[497,900,901,904],{},[515,902,903],{},"Browsers and other tools",[515,905,906],{},"The operating system's trust store.",[497,908,909,912],{},[515,910,911],{},"npm",[515,913,914,917,918,538],{},[420,915,916],{},"cafile"," in ",[420,919,920],{},".npmrc",[497,922,923,926],{},[515,924,925],{},"pip",[515,927,928,718,931,538],{},[420,929,930],{},"--cert ca.crt",[420,932,933],{},"PIP_CERT",[497,935,936,938],{},[515,937,199],{},[515,939,940,538],{},[420,941,942],{},"SSL_CERT_FILE",[497,944,945,947],{},[515,946,44],{},[515,948,949,952],{},[420,950,951],{},"\u002Fetc\u002Fdocker\u002Fcerts.d\u002F\u003Chost:port>\u002Fca.crt"," on each machine that pushes or pulls.",[497,954,955,958],{},[515,956,957],{},"Maven, Gradle",[515,959,960],{},"The JVM trust store.",[497,962,963,966],{},[515,964,965],{},"Another Relic server (remote repositories, replication)",[515,967,968,970],{},[420,969,627],{}," on the server and the worker.",[486,972,974],{"id":973},"object-storage","Object storage",[416,976,977,978,980],{},"See ",[561,979,117],{"href":124}," for each provider.",[491,982,983,993],{},[494,984,985],{},[497,986,987,989,991],{},[500,988,502],{},[500,990,505],{},[500,992,508],{},[510,994,995,1022,1041,1070,1085,1100,1118,1133,1148,1162,1177,1192],{},[497,996,997,1002,1007],{},[515,998,999],{},[420,1000,1001],{},"RELIC_OBJECT_STORAGE_TYPE",[515,1003,1004],{},[420,1005,1006],{},"s3",[515,1008,1009,1011,1012,423,1015,718,1018,1021],{},[420,1010,1006],{}," (Amazon S3 or S3-compatible), ",[420,1013,1014],{},"azure",[420,1016,1017],{},"gcs",[420,1019,1020],{},"filesystem"," (a local directory).",[497,1023,1024,1029,1035],{},[515,1025,1026],{},[420,1027,1028],{},"RELIC_OBJECT_STORAGE_PATH",[515,1030,1031,1032,1034],{},"(required with ",[420,1033,1020],{},")",[515,1036,1037,1038,538],{},"Absolute path of the content directory, such as ",[420,1039,1040],{},"\u002Fvar\u002Flib\u002Frelic\u002Fobjects",[497,1042,1043,1048,1051],{},[515,1044,1045],{},[420,1046,1047],{},"RELIC_OBJECT_STORAGE_ENDPOINT",[515,1049,1050],{},"(empty)",[515,1052,1053,1055,1056,1059,1060,1062,1063,1066,1067,1069],{},[420,1054,1006],{},": the service's base URL with scheme, such as ",[420,1057,1058],{},"http:\u002F\u002Fseaweedfs-s3:8333","; empty for Amazon S3. ",[420,1061,1014],{},": ",[420,1064,1065],{},"https:\u002F\u002F\u003Caccount>.blob.core.windows.net",". ",[420,1068,1017],{},": an emulator's URL only.",[497,1071,1072,1077,1082],{},[515,1073,1074],{},[420,1075,1076],{},"RELIC_OBJECT_STORAGE_REGION",[515,1078,1079],{},[420,1080,1081],{},"us-east-1",[515,1083,1084],{},"The region Relic signs S3 requests for.",[497,1086,1087,1095,1097],{},[515,1088,1089,423,1092],{},[420,1090,1091],{},"RELIC_OBJECT_STORAGE_ACCESS_KEY",[420,1093,1094],{},"RELIC_OBJECT_STORAGE_SECRET_KEY",[515,1096,1050],{},[515,1098,1099],{},"A static S3 key pair. Empty uses the AWS default credentials (IRSA, EKS Pod Identity, the instance or task role, the environment).",[497,1101,1102,1107,1109],{},[515,1103,1104],{},[420,1105,1106],{},"RELIC_OBJECT_STORAGE_SSE",[515,1108,1050],{},[515,1110,1111,1112,476,1115,538],{},"S3 server-side encryption for every write: ",[420,1113,1114],{},"AES256",[420,1116,1117],{},"aws:kms",[497,1119,1120,1125,1127],{},[515,1121,1122],{},[420,1123,1124],{},"RELIC_OBJECT_STORAGE_SSE_KMS_KEY_ID",[515,1126,1050],{},[515,1128,1129,1130,1132],{},"The KMS key for ",[420,1131,1117],{},"; empty uses the account's default key.",[497,1134,1135,1140,1142],{},[515,1136,1137],{},[420,1138,1139],{},"RELIC_OBJECT_STORAGE_STORAGE_CLASS",[515,1141,1050],{},[515,1143,1144,1145,538],{},"The S3 storage class for every write, such as ",[420,1146,1147],{},"INTELLIGENT_TIERING",[497,1149,1150,1155,1157],{},[515,1151,1152],{},[420,1153,1154],{},"RELIC_OBJECT_STORAGE_AZURE_CONNECTION_STRING",[515,1156,1050],{},[515,1158,1159,1161],{},[420,1160,1014],{},": a connection string with the account key. Empty uses the default Azure credential.",[497,1163,1164,1169,1174],{},[515,1165,1166],{},[420,1167,1168],{},"RELIC_OBJECT_STORAGE_ARTIFACTS_BUCKET",[515,1170,1171],{},[420,1172,1173],{},"artifacts",[515,1175,1176],{},"The bucket, or Azure container, for content.",[497,1178,1179,1184,1189],{},[515,1180,1181],{},[420,1182,1183],{},"RELIC_OBJECT_STORAGE_TEMPORARY_BUCKET",[515,1185,1186],{},[420,1187,1188],{},"temporary",[515,1190,1191],{},"The bucket for uploads in progress. Must differ from the artifacts bucket.",[497,1193,1194,1199,1204],{},[515,1195,1196],{},[420,1197,1198],{},"RELIC_OBJECT_STORAGE_CHECKSUM",[515,1200,1201],{},[420,1202,1203],{},"when_supported",[515,1205,1206,1208,1209,1212,1213,1216],{},[420,1207,1203],{}," sends a checksum with every upload. ",[420,1210,1211],{},"when_required"," sends one only where S3 requires it, for services that reject uploads with ",[420,1214,1215],{},"XAmzContentSHA256Mismatch"," or another checksum error.",[486,1218,1220],{"id":1219},"server","Server",[491,1222,1223,1233],{},[494,1224,1225],{},[497,1226,1227,1229,1231],{},[500,1228,502],{},[500,1230,505],{},[500,1232,508],{},[510,1234,1235,1254,1286,1310,1328,1346,1363,1375,1393,1409],{},[497,1236,1237,1242,1247],{},[515,1238,1239],{},[420,1240,1241],{},"RELIC_MAX_CONNECTIONS",[515,1243,1244],{},[420,1245,1246],{},"8192",[515,1248,1249,1250,1253],{},"Client connections accepted at once; more wait. ",[420,1251,1252],{},"0"," removes the cap.",[497,1255,1256,1261,1263],{},[515,1257,1258],{},[420,1259,1260],{},"RELIC_MAX_UPLOAD_SIZE",[515,1262,593],{},[515,1264,1265,1266,423,1269,423,1272,476,1275,559,1278,1281,1282,1285],{},"The largest file Relic accepts, in bytes or with ",[420,1267,1268],{},"KiB",[420,1270,1271],{},"MiB",[420,1273,1274],{},"GiB",[420,1276,1277],{},"TiB",[420,1279,1280],{},"10GiB","). Larger uploads fail with ",[420,1283,1284],{},"413",". A local repository can set a lower limit.",[497,1287,1288,1293,1298],{},[515,1289,1290],{},[420,1291,1292],{},"RELIC_DATABASE_MAX_CONNECTIONS",[515,1294,1295],{},[420,1296,1297],{},"20",[515,1299,1300,1301,1066,1304,917,1307,1309],{},"PostgreSQL only. Connections per server or worker process. Processes times this value must fit within PostgreSQL's ",[420,1302,1303],{},"max_connections",[420,1305,1306],{},"pool_max_conns",[420,1308,545],{}," takes precedence.",[497,1311,1312,1317,1322],{},[515,1313,1314],{},[420,1315,1316],{},"RELIC_DATABASE_STATEMENT_TIMEOUT",[515,1318,1319],{},[420,1320,1321],{},"5m",[515,1323,1324,1325,1327],{},"PostgreSQL only. The longest a server query may run; ",[420,1326,1252],{}," removes the limit. Migrations and the worker have none.",[497,1329,1330,1335,1339],{},[515,1331,1332],{},[420,1333,1334],{},"RELIC_FAILED_SIGN_INS_BEFORE_BACKOFF",[515,1336,1337],{},[420,1338,1297],{},[515,1340,1341,1342,1345],{},"Failed password attempts a client address may make within ten minutes. After that, Relic answers ",[420,1343,1344],{},"429"," until a wait passes: one second, doubling up to five minutes. Clients behind one NAT share the count.",[497,1347,1348,1352,1354],{},[515,1349,1350],{},[420,1351,670],{},[515,1353,593],{},[515,1355,1356,1357,427,1360,538],{},"Comma-separated CIDRs or addresses of the proxies allowed to set ",[420,1358,1359],{},"X-Forwarded-For",[420,1361,1362],{},"X-Forwarded-Proto",[497,1364,1365,1370,1372],{},[515,1366,1367],{},[420,1368,1369],{},"RELIC_SIGN_IN_NOTE",[515,1371,593],{},[515,1373,1374],{},"Public text shown under the sign-in form.",[497,1376,1377,1382,1384],{},[515,1378,1379],{},[420,1380,1381],{},"RELIC_LDAP_CA_CERTIFICATE_FILE",[515,1383,593],{},[515,1385,1386,1387,1390,1391,538],{},"A PEM file of extra CA certificates for LDAP over ",[420,1388,1389],{},"ldaps:\u002F\u002F"," or StartTLS. See ",[561,1392,265],{"href":266},[497,1394,1395,1400,1404],{},[515,1396,1397],{},[420,1398,1399],{},"RELIC_TRASH_ENABLED",[515,1401,1402],{},[420,1403,467],{},[515,1405,1406,1408],{},[420,1407,471],{}," makes deletes permanent.",[497,1410,1411,1416,1425],{},[515,1412,1413],{},[420,1414,1415],{},"RELIC_INDEXER_DIR",[515,1417,1418,1421,1422,726],{},[420,1419,1420],{},"share\u002Frelic\u002Findexer"," beside the binary's directory; ",[420,1423,1424],{},"\u002Fusr\u002Flocal\u002Fshare\u002Frelic\u002Findexer",[515,1426,1427,1430],{},[420,1428,1429],{},"relic-indexer-\u003Cos>-\u003Carch>"," builds that clients download.",[486,1432,1434],{"id":1433},"worker","Worker",[491,1436,1437,1447],{},[494,1438,1439],{},[497,1440,1441,1443,1445],{},[500,1442,502],{},[500,1444,505],{},[500,1446,508],{},[510,1448,1449,1463,1478,1492,1511,1532,1567,1585,1602,1618,1633,1668,1684,1700,1715,1730,1746,1763,1778,1801,1817,1844,1860,1876,1889],{},[497,1450,1451,1456,1460],{},[515,1452,1453],{},[420,1454,1455],{},"RELIC_TRASH_RETENTION",[515,1457,1458],{},[420,1459,463],{},[515,1461,1462],{},"How long deleted items stay in the trash can.",[497,1464,1465,1470,1475],{},[515,1466,1467],{},[420,1468,1469],{},"RELIC_AUDIT_RETENTION",[515,1471,1472],{},[420,1473,1474],{},"8760h",[515,1476,1477],{},"How long audit events are kept.",[497,1479,1480,1485,1489],{},[515,1481,1482],{},[420,1483,1484],{},"RELIC_GARBAGE_COLLECTION_INTERVAL",[515,1486,1487],{},[420,1488,460],{},[515,1490,1491],{},"How often garbage collection runs.",[497,1493,1494,1499,1504],{},[515,1495,1496],{},[420,1497,1498],{},"RELIC_GARBAGE_COLLECTION_GRACE_PERIOD",[515,1500,1501],{},[420,1502,1503],{},"1h",[515,1505,1506,1507,564],{},"How long unreferenced content is kept before deletion. Keep it longer than your longest backup copy (",[561,1508,1510],{"href":1509},"\u002Fdocs\u002Fguides\u002Foperations#backup","Backup",[497,1512,1513,1521,1529],{},[515,1514,1515,423,1518],{},[420,1516,1517],{},"RELIC_SCAN_SYFT_PATH",[420,1519,1520],{},"RELIC_SCAN_GRYPE_PATH",[515,1522,1523,423,1526],{},[420,1524,1525],{},"syft",[420,1527,1528],{},"grype",[515,1530,1531],{},"The scanner binaries. If either is missing, Relic Scan is off.",[497,1533,1534,1539,1548],{},[515,1535,1536],{},[420,1537,1538],{},"RELIC_SCAN_MEMORY_BUDGET",[515,1540,1541,1542,722,1545,1547],{},"half the container's memory limit, at most ",[420,1543,1544],{},"1GiB",[420,1546,1544],{}," without a limit",[515,1549,1550,1551,423,1553,423,1555,476,1557,559,1559,1562,1563,538],{},"The memory the scanner subprocesses share, in bytes or with ",[420,1552,1268],{},[420,1554,1271],{},[420,1556,1274],{},[420,1558,1277],{},[420,1560,1561],{},"768MiB","). See ",[561,1564,1566],{"href":1565},"\u002Fdocs\u002Fguides\u002Foperations#memory-and-concurrent-uploads","Memory",[497,1568,1569,1574,1582],{},[515,1570,1571],{},[420,1572,1573],{},"RELIC_SCAN_GITLEAKS_PATH",[515,1575,1576,890,1579],{},[420,1577,1578],{},"gitleaks",[420,1580,1581],{},"PATH",[515,1583,1584],{},"The secrets analyzer; off when not found.",[497,1586,1587,1592,1599],{},[515,1588,1589],{},[420,1590,1591],{},"RELIC_SCAN_TRIVY_PATH",[515,1593,1594,890,1597],{},[420,1595,1596],{},"trivy",[420,1598,1581],{},[515,1600,1601],{},"The misconfiguration analyzer, run with its bundled checks and no downloads; off when not found.",[497,1603,1604,1609,1611],{},[515,1605,1606],{},[420,1607,1608],{},"RELIC_SCAN_SCANCODE_PATH",[515,1610,593],{},[515,1612,1613,1614,1617],{},"ScanCode's ",[420,1615,1616],{},"scancode",", for deep license scanning of file text. Slow, so off unless set.",[497,1619,1620,1625,1630],{},[515,1621,1622],{},[420,1623,1624],{},"RELIC_SCAN_VULNERABILITY_DATABASE_DIR",[515,1626,1627],{},[420,1628,1629],{},"\u002Fvar\u002Flib\u002Frelic\u002Fgrype",[515,1631,1632],{},"Grype's vulnerability database. Keep it on a persistent volume.",[497,1634,1635,1640,1643],{},[515,1636,1637],{},[420,1638,1639],{},"RELIC_SCAN_VULNERABILITY_DATABASE_URL",[515,1641,1642],{},"Grype's listing",[515,1644,1645,1646,1649,1650,1653,1654,1656,1657,1660,1661,427,1664,1667],{},"A ",[420,1647,1648],{},"latest.json"," listing, such as a mirror of ",[420,1651,1652],{},"https:\u002F\u002Fgrype.anchore.io\u002Fdatabases\u002Fv6\u002Flatest.json",". With ",[420,1655,483],{},", import databases with ",[420,1658,1659],{},"relic security database import"," or on the System page; until then, scans fail, including ",[420,1662,1663],{},"jf scan",[420,1665,1666],{},"relic security scan",". Stored artifacts are scanned again after an import.",[497,1669,1670,1675,1677],{},[515,1671,1672],{},[420,1673,1674],{},"RELIC_SCAN_MAVEN_URL",[515,1676,483],{},[515,1678,1679,1680,538],{},"A Maven repository Syft reads POMs from, for licenses and parent POMs. See ",[561,1681,1683],{"href":1682},"\u002Fdocs\u002Fguides\u002Fsecurity\u002Frelic-scan#package-lookups","Package lookups",[497,1685,1686,1691,1693],{},[515,1687,1688],{},[420,1689,1690],{},"RELIC_SCAN_PYPI_URL",[515,1692,483],{},[515,1694,1695,1696,1699],{},"A PyPI JSON API (",[420,1697,1698],{},"\u003Curl>\u002F\u003Cname>\u002F\u003Cversion>\u002Fjson",") Syft reads licenses from.",[497,1701,1702,1707,1709],{},[515,1703,1704],{},[420,1705,1706],{},"RELIC_SCAN_NPM_URL",[515,1708,483],{},[515,1710,1711,1712,1699],{},"An npm registry (",[420,1713,1714],{},"\u003Curl>\u002F\u003Cname>\u002F\u003Cversion>",[497,1716,1717,1722,1724],{},[515,1718,1719],{},[420,1720,1721],{},"RELIC_SCAN_GO_PROXY_URL",[515,1723,483],{},[515,1725,1726,1727,1699],{},"One Go module proxy (",[420,1728,1729],{},"\u003Curl>\u002F\u003Cmodule>\u002F@v\u002F\u003Cversion>.zip",[497,1731,1732,1737,1740],{},[515,1733,1734],{},[420,1735,1736],{},"RELIC_MALICIOUS_PACKAGES_URL",[515,1738,1739],{},"OSV's bucket",[515,1741,1742,1743,538],{},"Malicious-package advisories, read from ",[420,1744,1745],{},"\u003Curl>\u002F\u003Cecosystem>\u002Fall.zip",[497,1747,1748,1753,1760],{},[515,1749,1750],{},[420,1751,1752],{},"RELIC_SCAN_GOVULNCHECK_PATH",[515,1754,1755,890,1758],{},[420,1756,1757],{},"govulncheck",[420,1759,1581],{},[515,1761,1762],{},"Tells whether Go executables call the vulnerable code. Without it, Go findings have unknown reachability.",[497,1764,1765,1770,1775],{},[515,1766,1767],{},[420,1768,1769],{},"RELIC_SCAN_GO_VULNERABILITY_DATABASE_URL",[515,1771,1772],{},[420,1773,1774],{},"https:\u002F\u002Fvuln.go.dev\u002Fvulndb.zip",[515,1776,1777],{},"The Go vulnerability database govulncheck reads.",[497,1779,1780,1785,1788],{},[515,1781,1782],{},[420,1783,1784],{},"RELIC_END_OF_LIFE_URL",[515,1786,1787],{},"endoflife.date",[515,1789,1790,1791,1794,1795,1797,1798,538],{},"endoflife.date's full product dump (",[420,1792,1793],{},"\u002Fapi\u002Fv1\u002Fproducts\u002Ffull","), read daily. With ",[420,1796,483],{},", use ",[420,1799,1800],{},"relic security end-of-life import",[497,1802,1803,1808,1812],{},[515,1804,1805],{},[420,1806,1807],{},"RELIC_SECRET_VALIDATION_ENABLED",[515,1809,1810],{},[420,1811,471],{},[515,1813,1814,1816],{},[420,1815,467],{}," sends each secret found in content to its provider (GitHub, GitLab, Slack, npm, Stripe) to check whether it is still valid.",[497,1818,1819,1824,1827],{},[515,1820,1821],{},[420,1822,1823],{},"RELIC_SECRET_VALIDATION_PROVIDERS",[515,1825,1826],{},"all",[515,1828,1829,1830,423,1833,423,1836,423,1839,423,1841,538],{},"Comma-separated: ",[420,1831,1832],{},"github",[420,1834,1835],{},"gitlab",[420,1837,1838],{},"slack",[420,1840,911],{},[420,1842,1843],{},"stripe",[497,1845,1846,1851,1853],{},[515,1847,1848],{},[420,1849,1850],{},"RELIC_DEPS_DEV_URL",[515,1852,483],{},[515,1854,1855,1856,1859],{},"deps.dev's API (",[420,1857,1858],{},"https:\u002F\u002Fapi.deps.dev",") or a mirror, to flag deprecated and unmaintained packages. Each check sends a package name and version.",[497,1861,1862,1867,1870],{},[515,1863,1864],{},[420,1865,1866],{},"RELIC_CVE_EPSS_URL",[515,1868,1869],{},"FIRST's daily EPSS scores",[515,1871,1872,1873,564],{},"EPSS scores (",[420,1874,1875],{},".csv.gz",[497,1877,1878,1883,1886],{},[515,1879,1880],{},[420,1881,1882],{},"RELIC_CVE_KEV_URL",[515,1884,1885],{},"CISA's KEV catalog",[515,1887,1888],{},"The Known Exploited Vulnerabilities catalog (JSON).",[497,1890,1891,1896,1901],{},[515,1892,1893],{},[420,1894,1895],{},"RELIC_CVE_RECORDS_URL",[515,1897,1898],{},[420,1899,1900],{},"https:\u002F\u002Fcveawg.mitre.org\u002Fapi\u002Fcve",[515,1902,1903,1904,538],{},"Serves CVE JSON 5 records at ",[420,1905,1906],{},"\u003Curl>\u002F\u003CCVE-ID>",[416,1908,1909,1910,538],{},"In an air-gapped network, point the feeds at mirrors or set them to ",[420,1911,483],{},[486,1913,1915],{"id":1914},"telemetry","Telemetry",[416,1917,1918,1919,538],{},"The server and the worker both read these. See ",[561,1920,105],{"href":301},[491,1922,1923,1933],{},[494,1924,1925],{},[497,1926,1927,1929,1931],{},[500,1928,502],{},[500,1930,505],{},[500,1932,508],{},[510,1934,1935,1956,1976,1992,2017,2036,2052,2067,2085,2097,2115,2130,2161,2179,2195],{},[497,1936,1937,1942,1947],{},[515,1938,1939],{},[420,1940,1941],{},"RELIC_METRICS_LISTEN_ADDRESS",[515,1943,1944],{},[420,1945,1946],{},":8091",[515,1948,1949,1950,1953,1954,538],{},"Serves ",[420,1951,1952],{},"\u002Fmetrics"," over plain HTTP, or ",[420,1955,483],{},[497,1957,1958,1963,1967],{},[515,1959,1960],{},[420,1961,1962],{},"RELIC_PROFILING_ENABLED",[515,1964,1965],{},[420,1966,471],{},[515,1968,1969,1971,1972,1975],{},[420,1970,467],{}," adds ",[420,1973,1974],{},"\u002Fdebug\u002Fpprof\u002F"," to the metrics listener.",[497,1977,1978,1983,1987],{},[515,1979,1980],{},[420,1981,1982],{},"RELIC_METRICS_REPOSITORY_LABEL",[515,1984,1985],{},[420,1986,471],{},[515,1988,1989,1991],{},[420,1990,467],{}," labels artifact, upstream, cache and replication series with the repository name. Series then grow with the number of repositories.",[497,1993,1994,1999,2004],{},[515,1995,1996],{},[420,1997,1998],{},"RELIC_LOG_LEVEL",[515,2000,2001],{},[420,2002,2003],{},"info",[515,2005,2006,423,2009,423,2011,476,2014,538],{},[420,2007,2008],{},"debug",[420,2010,2003],{},[420,2012,2013],{},"warn",[420,2015,2016],{},"error",[497,2018,2019,2024,2029],{},[515,2020,2021],{},[420,2022,2023],{},"RELIC_LOG_FORMAT",[515,2025,2026],{},[420,2027,2028],{},"json",[515,2030,2031,476,2033,538],{},[420,2032,2028],{},[420,2034,2035],{},"text",[497,2037,2038,2043,2045],{},[515,2039,2040],{},[420,2041,2042],{},"OTEL_EXPORTER_OTLP_ENDPOINT",[515,2044,593],{},[515,2046,2047,2048,2051],{},"The OTLP\u002FHTTP base URL, such as ",[420,2049,2050],{},"http:\u002F\u002Fcollector:4318",". Without it or a traces endpoint, tracing is off.",[497,2053,2054,2062,2064],{},[515,2055,2056,423,2059],{},[420,2057,2058],{},"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",[420,2060,2061],{},"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",[515,2063,593],{},[515,2065,2066],{},"Full URLs per signal.",[497,2068,2069,2074,2079],{},[515,2070,2071],{},[420,2072,2073],{},"OTEL_EXPORTER_OTLP_PROTOCOL",[515,2075,2076],{},[420,2077,2078],{},"http\u002Fprotobuf",[515,2080,2081,2082,538],{},"The only protocol. Relic refuses to start with ",[420,2083,2084],{},"grpc",[497,2086,2087,2092,2094],{},[515,2088,2089],{},[420,2090,2091],{},"OTEL_EXPORTER_OTLP_HEADERS",[515,2093,593],{},[515,2095,2096],{},"Headers for the collector.",[497,2098,2099,2104,2112],{},[515,2100,2101],{},[420,2102,2103],{},"OTEL_SERVICE_NAME",[515,2105,2106,423,2109],{},[420,2107,2108],{},"relic-server",[420,2110,2111],{},"relic-worker",[515,2113,2114],{},"The service name.",[497,2116,2117,2122,2124],{},[515,2118,2119],{},[420,2120,2121],{},"OTEL_RESOURCE_ATTRIBUTES",[515,2123,593],{},[515,2125,2126,2127,538],{},"Extra resource attributes, ",[420,2128,2129],{},"key=value,…",[497,2131,2132,2140,2145],{},[515,2133,2134,423,2137],{},[420,2135,2136],{},"OTEL_TRACES_SAMPLER",[420,2138,2139],{},"OTEL_TRACES_SAMPLER_ARG",[515,2141,2142],{},[420,2143,2144],{},"parentbased_always_on",[515,2146,2147,423,2150,423,2153,2156,2157,2160],{},[420,2148,2149],{},"always_on",[420,2151,2152],{},"always_off",[420,2154,2155],{},"traceidratio",", or their ",[420,2158,2159],{},"parentbased_"," forms; the argument is the ratio.",[497,2162,2163,2168,2173],{},[515,2164,2165],{},[420,2166,2167],{},"OTEL_TRACES_EXPORTER",[515,2169,2170],{},[420,2171,2172],{},"otlp",[515,2174,2175,2178],{},[420,2176,2177],{},"none"," turns tracing off.",[497,2180,2181,2186,2190],{},[515,2182,2183],{},[420,2184,2185],{},"OTEL_LOGS_EXPORTER",[515,2187,2188],{},[420,2189,2177],{},[515,2191,2192,2194],{},[420,2193,2172],{}," also sends log records to the collector.",[497,2196,2197,2202,2206],{},[515,2198,2199],{},[420,2200,2201],{},"OTEL_SDK_DISABLED",[515,2203,2204],{},[420,2205,471],{},[515,2207,2208,2210],{},[420,2209,467],{}," turns traces and OTLP logs off.",{"title":2212,"searchDepth":2213,"depth":2213,"links":2214},"",2,[2215,2216,2221,2222,2223,2224],{"id":488,"depth":2213,"text":489},{"id":655,"depth":2213,"text":656,"children":2217},[2218,2220],{"id":768,"depth":2219,"text":769},3,{"id":862,"depth":2219,"text":636},{"id":973,"depth":2213,"text":974},{"id":1219,"depth":2213,"text":1220},{"id":1433,"depth":2213,"text":1434},{"id":1914,"depth":2213,"text":1915},"Every environment variable the Relic server and worker read.","md",null,{},true,{"title":113,"description":2225},"kXkI0PJ8iCWX2Cyfh47SOQkGGF5EtYfoDTtkGM2V4Qg",[2233,2235],{"title":109,"path":110,"stem":111,"description":2234,"children":-1},"Run Relic in a Cloudflare Container behind a Worker, with R2 and your own PostgreSQL.",{"title":123,"path":124,"stem":125,"description":2236,"children":-1},"What Relic keeps in object storage, the buckets and permissions it needs, and what S3 services must support.",1793857334573]