[{"data":1,"prerenderedAt":1537},["ShallowReactive",2],{"docs-navigation":3,"-docs-cli-setup":410,"-docs-cli-setup-surround":1532},[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":394,"body":412,"description":1525,"extension":1526,"links":1527,"meta":1528,"navigation":1529,"path":395,"seo":1530,"stem":396,"__hash__":1531},"docs\u002Fdocs\u002F5.cli\u002F15.setup.md",{"type":413,"value":414,"toc":1515},"minimark",[415,431,448,451,476,479,501,511,516,595,603,670,674,706,780,807,814,825,839,863,866,883,886,906,910,937,940,969,972,987,991,994,1000,1045,1076,1078,1091,1093,1108,1112,1118,1126,1132,1135,1149,1152,1172,1175,1196,1217,1236,1239,1282,1286,1292,1306,1309,1326,1335,1338,1363,1366,1390,1394,1399,1416,1419,1433,1436,1456,1462,1479,1511],[416,417,418,422,423,426,427,430],"p",{},[419,420,421],"code",{},"relic server setup"," installs the client config, shell completion, and the\nserver as a service. On Linux it is a systemd service for your user, or with\n",[419,424,425],{},"--system"," (as root) for the whole machine. On macOS it is a launch agent for\nyour user. It lists every change and asks first (",[419,428,429],{},"--yes"," skips the question).\nRunning it again changes nothing.",[416,432,433,434,437,438,441,442,447],{},"On other systems (Windows), or without ",[419,435,436],{},"systemctl"," or ",[419,439,440],{},"launchctl",", the command\nstops before changing anything;\n",[443,444,446],"a",{"href":445},"\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Fquick-start#run-by-hand","run the server by hand",".",[416,449,450],{},"Install a user service:",[452,453,458],"pre",{"className":454,"code":455,"language":456,"meta":457,"style":457},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","relic server setup\n","bash","",[419,459,460],{"__ignoreMap":457},[461,462,465,469,473],"span",{"class":463,"line":464},"line",1,[461,466,468],{"class":467},"seIyd","relic",[461,470,472],{"class":471},"sasMN"," server",[461,474,475],{"class":471}," setup\n",[416,477,478],{},"Install a system service:",[452,480,482],{"className":454,"code":481,"language":456,"meta":457,"style":457},"sudo relic server setup --system\n",[419,483,484],{"__ignoreMap":457},[461,485,486,489,492,494,497],{"class":463,"line":464},[461,487,488],{"class":467},"sudo",[461,490,491],{"class":471}," relic",[461,493,472],{"class":471},[461,495,496],{"class":471}," setup",[461,498,500],{"class":499},"smky3"," --system\n",[416,502,503,504,507,508,510],{},"To configure a package manager, use ",[419,505,506],{},"relic package setup","\n(",[443,509,378],{"href":379},").",[512,513,515],"h2",{"id":514},"what-it-sets-up","What it sets up",[517,518,519,532],"table",{},[520,521,522],"thead",{},[523,524,525,529],"tr",{},[526,527,528],"th",{},"What",[526,530,531],{},"Where",[533,534,535,563],"tbody",{},[523,536,537,545],{},[538,539,540,541,544],"td",{},"Client config (",[419,542,543],{},"relic auth login"," fills it)",[538,546,547,550,551,554,555,558,559,562],{},[419,548,549],{},"~\u002F.config\u002Frelic\u002Fconfig.yaml"," (macOS: ",[419,552,553],{},"~\u002FLibrary\u002FApplication Support\u002Frelic\u002Fconfig.yaml","), or ",[419,556,557],{},"--config"," \u002F ",[419,560,561],{},"RELIC_CONFIG",". Created empty if missing, never rewritten.",[523,564,565,574],{},[538,566,567,568,437,571],{},"Shell completion, for ",[419,569,570],{},"$SHELL",[419,572,573],{},"--shell",[538,575,576,577,580,581,584,585,580,588,591,592,447],{},"bash: ",[419,578,579],{},"~\u002F.config\u002Frelic\u002Fcompletion.bash",", loaded from ",[419,582,583],{},"~\u002F.bashrc",". zsh: ",[419,586,587],{},"completion.zsh",[419,589,590],{},"~\u002F.zshrc",". fish: ",[419,593,594],{},"~\u002F.config\u002Ffish\u002Fcompletions\u002Frelic.fish",[416,596,597,598,437,600,602],{},"Each run replaces only the marked block in ",[419,599,583],{},[419,601,590],{},". The bash\nblock:",[452,604,606],{"className":454,"code":605,"language":456,"meta":457,"style":457},"# relic setup completion begin\n# Completion for relic, written by relic server setup.\n[ -f \"$HOME\u002F.config\u002Frelic\u002Fcompletion.bash\" ] && . \"$HOME\u002F.config\u002Frelic\u002Fcompletion.bash\"\n# relic setup completion end\n",[419,607,608,614,620,664],{"__ignoreMap":457},[461,609,610],{"class":463,"line":464},[461,611,613],{"class":612},"siFmp","# relic setup completion begin\n",[461,615,617],{"class":463,"line":616},2,[461,618,619],{"class":612},"# Completion for relic, written by relic server setup.\n",[461,621,623,627,631,635,639,642,645,648,651,655,657,659,661],{"class":463,"line":622},3,[461,624,626],{"class":625},"sWneD","[",[461,628,630],{"class":629},"s8eFF"," -f",[461,632,634],{"class":633},"sX5mu"," \"",[461,636,638],{"class":637},"saDVj","$HOME",[461,640,641],{"class":471},"\u002F.config\u002Frelic\u002Fcompletion.bash",[461,643,644],{"class":633},"\"",[461,646,647],{"class":625}," ]",[461,649,650],{"class":625}," &&",[461,652,654],{"class":653},"sRZlD"," .",[461,656,634],{"class":633},[461,658,638],{"class":637},[461,660,641],{"class":471},[461,662,663],{"class":633},"\"\n",[461,665,667],{"class":463,"line":666},4,[461,668,669],{"class":612},"# relic setup completion end\n",[512,671,673],{"id":672},"the-server-as-a-service","The server as a service",[416,675,676,677,680,681,684,685,688,689,692,693,696,697,701,702,510],{},"The user service runs ",[419,678,679],{},"relic server start --worker"," on SQLite and the\nfilesystem store (",[443,682,683],{"href":37},"Single node","),\nwithout root. On Linux, ",[419,686,687],{},"loginctl enable-linger"," keeps it running after logout\nand starts it at boot; setup runs it first, so it also works from a shell\nwithout a login session. The unit's ",[419,690,691],{},"PATH"," starts with ",[419,694,695],{},"~\u002F.local\u002Fbin"," and the\ndirectory of the relic binary, so it finds\n",[443,698,700],{"href":699},"\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Fquick-start#scanners","scanners"," installed\nnext to relic. On macOS, it runs in your login session (",[443,703,705],{"href":704},"#macos","macOS",[517,707,708,716],{},[520,709,710],{},[523,711,712,714],{},[526,713,528],{},[526,715,531],{},[533,717,718,729,739,749,759,770],{},[523,719,720,723],{},[538,721,722],{},"Settings, with a generated encryption key and admin password",[538,724,725,728],{},[419,726,727],{},"~\u002F.config\u002Frelic\u002Fserver.env",", mode 0600",[523,730,731,734],{},[538,732,733],{},"Unit (Linux)",[538,735,736],{},[419,737,738],{},"~\u002F.config\u002Fsystemd\u002Fuser\u002Frelic.service",[523,740,741,744],{},[538,742,743],{},"Launch agent (macOS)",[538,745,746],{},[419,747,748],{},"~\u002FLibrary\u002FLaunchAgents\u002Fbuild.relic.server.plist",[523,750,751,754],{},[538,752,753],{},"Log (macOS)",[538,755,756],{},[419,757,758],{},"~\u002FLibrary\u002FLogs\u002Frelic.log",[523,760,761,764],{},[538,762,763],{},"Database and files",[538,765,766,769],{},[419,767,768],{},"~\u002F.local\u002Fshare\u002Frelic",", mode 0700",[523,771,772,775],{},[538,773,774],{},"Certificate authority and server certificate",[538,776,777],{},[419,778,779],{},"~\u002F.config\u002Frelic\u002Ftls",[416,781,782,783,786,787,790,791,795,796,799,800,507,803,510],{},"The server serves HTTPS on ",[419,784,785],{},"127.0.0.1:8090"," (",[419,788,789],{},"--listen"," changes it) with a\ncertificate authority it generates (",[443,792,794],{"href":793},"\u002Fdocs\u002Finstallation\u002Fconfiguration#tls","TLS","),\nand metrics over HTTP on ",[419,797,798],{},"127.0.0.1:8091",". relic commands on this machine\ntrust its ",[419,801,802],{},"ca.crt",[443,804,806],{"href":805},"\u002Fdocs\u002Fcli\u002Fsign-in#on-the-servers-own-machine","On the server's own machine",[416,808,809,810,813],{},"Later runs keep the settings in ",[419,811,812],{},"server.env",", so the encryption key never\nchanges; they add missing ones. Setup restarts the service when the settings,\nthe unit or launch agent, or the binary changed.",[416,815,816,817,820,821,824],{},"Before the first install, setup stops without changing anything when another\nprogram already listens on the server's address or the metrics address. After\nstarting the service, it waits up to a minute for ",[419,818,819],{},"\u002Freadyz"," on the server's\naddress to answer. It prints ",[419,822,823],{},"Done"," only then; otherwise it prints the answer\nit got and the command that shows the service's logs, and exits with status 1.",[416,826,827,828,831,832,835,836,838],{},"Sign in as ",[419,829,830],{},"admin"," with the ",[419,833,834],{},"RELIC_ADMIN_PASSWORD"," from ",[419,837,812],{},", and\ntrust the authority's fingerprint when asked:",[452,840,842],{"className":454,"code":841,"language":456,"meta":457,"style":457},"relic auth login https:\u002F\u002F127.0.0.1:8090 --user admin\n",[419,843,844],{"__ignoreMap":457},[461,845,846,848,851,854,857,860],{"class":463,"line":464},[461,847,468],{"class":467},[461,849,850],{"class":471}," auth",[461,852,853],{"class":471}," login",[461,855,856],{"class":471}," https:\u002F\u002F127.0.0.1:8090",[461,858,859],{"class":499}," --user",[461,861,862],{"class":471}," admin\n",[416,864,865],{},"Check the service:",[452,867,869],{"className":454,"code":868,"language":456,"meta":457,"style":457},"systemctl --user status relic\n",[419,870,871],{"__ignoreMap":457},[461,872,873,875,877,880],{"class":463,"line":464},[461,874,436],{"class":467},[461,876,859],{"class":499},[461,878,879],{"class":471}," status",[461,881,882],{"class":471}," relic\n",[416,884,885],{},"Follow its logs:",[452,887,889],{"className":454,"code":888,"language":456,"meta":457,"style":457},"journalctl --user -u relic -f\n",[419,890,891],{"__ignoreMap":457},[461,892,893,896,898,901,903],{"class":463,"line":464},[461,894,895],{"class":467},"journalctl",[461,897,859],{"class":499},[461,899,900],{"class":499}," -u",[461,902,491],{"class":471},[461,904,905],{"class":499}," -f\n",[907,908,705],"h3",{"id":909},"macos",[416,911,912,913,916,917,920,921,923,924,926,927,930,931,933,934,936],{},"The launch agent ",[419,914,915],{},"build.relic.server"," starts when you log in and stops when\nyou log out; launchd starts the server again when it exits. It runs\n",[419,918,919],{},"relic server start --worker --settings ~\u002F.config\u002Frelic\u002Fserver.env",", so the\nsecrets stay in ",[419,922,812],{}," and out of the launch agent. Its ",[419,925,691],{}," is\n",[419,928,929],{},"\u002Fopt\u002Fhomebrew\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin:\u002Fusr\u002Fsbin:\u002Fsbin",", so it finds\n",[443,932,700],{"href":699}," installed with\nHomebrew. macOS has no system service: ",[419,935,425],{}," stops before changing\nanything.",[416,938,939],{},"Check the launch agent:",[452,941,943],{"className":454,"code":942,"language":456,"meta":457,"style":457},"launchctl print gui\u002F$(id -u)\u002Fbuild.relic.server\n",[419,944,945],{"__ignoreMap":457},[461,946,947,949,952,955,958,961,963,966],{"class":463,"line":464},[461,948,440],{"class":467},[461,950,951],{"class":471}," print",[461,953,954],{"class":471}," gui\u002F",[461,956,957],{"class":625},"$(",[461,959,960],{"class":467},"id",[461,962,900],{"class":499},[461,964,965],{"class":625},")",[461,967,968],{"class":471},"\u002Fbuild.relic.server\n",[416,970,971],{},"Follow its log:",[452,973,975],{"className":454,"code":974,"language":456,"meta":457,"style":457},"tail -f ~\u002FLibrary\u002FLogs\u002Frelic.log\n",[419,976,977],{"__ignoreMap":457},[461,978,979,982,984],{"class":463,"line":464},[461,980,981],{"class":467},"tail",[461,983,630],{"class":499},[461,985,986],{"class":471}," ~\u002FLibrary\u002FLogs\u002Frelic.log\n",[907,988,990],{"id":989},"system-service","System service",[416,992,993],{},"Linux only.",[416,995,996,999],{},[419,997,998],{},"sudo relic server setup --system"," creates:",[1001,1002,1003,1013,1018,1027,1033,1039],"ul",{},[1004,1005,1006,1007,1009,1010],"li",{},"a ",[419,1008,468],{}," system user with its home at ",[419,1011,1012],{},"\u002Fvar\u002Flib\u002Frelic",[1004,1014,1015],{},[419,1016,1017],{},"\u002Fusr\u002Flocal\u002Fbin\u002Frelic",[1004,1019,1020,1021,1024,1025,965],{},"the settings in ",[419,1022,1023],{},"\u002Fetc\u002Frelic\u002Frelic.env"," (mode 0640, group ",[419,1026,468],{},[1004,1028,1029,1032],{},[419,1030,1031],{},"\u002Fetc\u002Frelic\u002Ftls"," for the certificate authority",[1004,1034,1035,1036],{},"the unit ",[419,1037,1038],{},"\u002Fetc\u002Fsystemd\u002Fsystem\u002Frelic.service",[1004,1040,1041,1042],{},"bash completion in ",[419,1043,1044],{},"\u002Fusr\u002Fshare\u002Fbash-completion\u002Fcompletions\u002Frelic",[416,1046,1047,1048,1050,1051,1053,1054,1056,1057,1059,1060,1062,1063,1065,1066,1068,1069,1071,1072,1075],{},"The service runs as ",[419,1049,468],{},", may write only to ",[419,1052,1012],{}," and\n",[419,1055,1031],{},", and starts at boot. It gets no client config;\n",[419,1058,543],{}," creates yours. ",[419,1061,421],{}," without ",[419,1064,425],{},"\nrefuses to install a user service beside it, since both would use the same\nports. ",[419,1067,998],{}," likewise refuses when the user who\nran ",[419,1070,488],{}," has a user service; remove it first with ",[419,1073,1074],{},"relic server uninstall",",\nas that user.",[416,1077,865],{},[452,1079,1081],{"className":454,"code":1080,"language":456,"meta":457,"style":457},"systemctl status relic\n",[419,1082,1083],{"__ignoreMap":457},[461,1084,1085,1087,1089],{"class":463,"line":464},[461,1086,436],{"class":467},[461,1088,879],{"class":471},[461,1090,882],{"class":471},[416,1092,885],{},[452,1094,1096],{"className":454,"code":1095,"language":456,"meta":457,"style":457},"journalctl -u relic -f\n",[419,1097,1098],{"__ignoreMap":457},[461,1099,1100,1102,1104,1106],{"class":463,"line":464},[461,1101,895],{"class":467},[461,1103,900],{"class":499},[461,1105,491],{"class":471},[461,1107,905],{"class":499},[512,1109,1111],{"id":1110},"status-and-settings","Status and settings",[416,1113,1114,1117],{},[419,1115,1116],{},"relic server status"," reports the service on this machine:",[452,1119,1124],{"className":1120,"code":1122,"language":1123,"meta":457},[1121],"language-text","╭──────────────────────────────────────────────────────────────────────────────────╮\n│ This machine  user service · ~\u002F.config\u002Fsystemd\u002Fuser\u002Frelic.service                │\n│                                                                                  │\n│ server      ● active (running)  since Sat 2026-10-03 06:30:55 +04 · pid 177655   │\n│ address     https:\u002F\u002F127.0.0.1:8090  ✓ Relic v0.1.0                               │\n│ metrics     http:\u002F\u002F127.0.0.1:8091\u002Fmetrics                                        │\n│ settings    ~\u002F.config\u002Frelic\u002Fserver.env  ✓ encryption key set                     │\n│ database    sqlite ~\u002F.local\u002Fshare\u002Frelic\u002Frelic.db  1.6 MiB                        │\n│ files       filesystem ~\u002F.local\u002Fshare\u002Frelic\u002Fobjects  3.2 GiB in 1204 files       │\n│ scanner db  ~\u002F.local\u002Fshare\u002Frelic\u002Fgrype  812.4 MiB                                │\n│ disk        60% free  1.1 TiB of 1.8 TiB                                         │\n│ binary      ~\u002F.local\u002Fbin\u002Frelic                                                   │\n│ completion  ~\u002F.config\u002Frelic\u002Fcompletion.bash                                      │\n╰──────────────────────────────────────────────────────────────────────────────────╯\n","text",[419,1125,1122],{"__ignoreMap":457},[416,1127,1128,1129,1131],{},"PostgreSQL and cloud object stores show no size. For a system service, run it\nwith ",[419,1130,488],{},". The command exits with status 1 when the service is not running or\ndoes not answer.",[416,1133,1134],{},"Print the service's settings, with secrets, keys, tokens and connection\nstrings masked:",[452,1136,1138],{"className":454,"code":1137,"language":456,"meta":457,"style":457},"relic server config\n",[419,1139,1140],{"__ignoreMap":457},[461,1141,1142,1144,1146],{"class":463,"line":464},[461,1143,468],{"class":467},[461,1145,472],{"class":471},[461,1147,1148],{"class":471}," config\n",[416,1150,1151],{},"Change a setting and restart the service:",[452,1153,1155],{"className":454,"code":1154,"language":456,"meta":457,"style":457},"relic server config set RELIC_HTTP_LISTEN_ADDRESS=0.0.0.0:8090\n",[419,1156,1157],{"__ignoreMap":457},[461,1158,1159,1161,1163,1166,1169],{"class":463,"line":464},[461,1160,468],{"class":467},[461,1162,472],{"class":471},[461,1164,1165],{"class":471}," config",[461,1167,1168],{"class":471}," set",[461,1170,1171],{"class":471}," RELIC_HTTP_LISTEN_ADDRESS=0.0.0.0:8090\n",[416,1173,1174],{},"Change several settings with one restart:",[452,1176,1178],{"className":454,"code":1177,"language":456,"meta":457,"style":457},"relic server config set RELIC_SCAN_SYFT_PATH=\u002Fopt\u002Fbin\u002Fsyft RELIC_SCAN_GRYPE_PATH=\u002Fopt\u002Fbin\u002Fgrype\n",[419,1179,1180],{"__ignoreMap":457},[461,1181,1182,1184,1186,1188,1190,1193],{"class":463,"line":464},[461,1183,468],{"class":467},[461,1185,472],{"class":471},[461,1187,1165],{"class":471},[461,1189,1168],{"class":471},[461,1191,1192],{"class":471}," RELIC_SCAN_SYFT_PATH=\u002Fopt\u002Fbin\u002Fsyft",[461,1194,1195],{"class":471}," RELIC_SCAN_GRYPE_PATH=\u002Fopt\u002Fbin\u002Fgrype\n",[416,1197,1198,1201,1202,1205,1206,1209,1210,1213,1214,1216],{},[419,1199,1200],{},"config set"," takes the ",[419,1203,1204],{},"RELIC_"," and ",[419,1207,1208],{},"OTEL_"," variables of the\n",[443,1211,1212],{"href":114},"configuration reference",". It refuses an\nunknown ",[419,1215,1204],{}," name, or a value the server would not start with, before\nchanging anything. When every setting already has the value given, it writes\nnothing and does not restart the service.",[416,1218,1219,1220,1222,1223,1227,1228,1231,1232,1235],{},"It refuses ",[419,1221,834],{},": that setting only sets the password of the\nfirst administrator, when the server has no users yet. Change the admin\npassword on the ",[1224,1225,1226],"strong",{},"Users"," page of the web UI, or with ",[419,1229,1230],{},"relic apply --force"," on\nthe ",[419,1233,1234],{},"User"," resource.",[416,1237,1238],{},"Set a secret from standard input, keeping it out of the shell history and the\nprocess list:",[452,1240,1242],{"className":454,"code":1241,"language":456,"meta":457,"style":457},"printf '%s' \"$SECRET\" | relic server config set RELIC_OBJECT_STORAGE_SECRET_KEY --value-stdin\n",[419,1243,1244],{"__ignoreMap":457},[461,1245,1246,1249,1252,1255,1258,1260,1263,1265,1268,1270,1272,1274,1276,1279],{"class":463,"line":464},[461,1247,1248],{"class":653},"printf",[461,1250,1251],{"class":633}," '",[461,1253,1254],{"class":471},"%s",[461,1256,1257],{"class":633},"'",[461,1259,634],{"class":633},[461,1261,1262],{"class":637},"$SECRET",[461,1264,644],{"class":633},[461,1266,1267],{"class":629}," |",[461,1269,491],{"class":467},[461,1271,472],{"class":471},[461,1273,1165],{"class":471},[461,1275,1168],{"class":471},[461,1277,1278],{"class":471}," RELIC_OBJECT_STORAGE_SECRET_KEY",[461,1280,1281],{"class":499}," --value-stdin\n",[512,1283,1285],{"id":1284},"stop","Stop",[416,1287,1288,1289,1291],{},"Stop the service after confirming (",[419,1290,429],{}," skips the question). It starts\nagain at the next boot, or on macOS at the next login, and the command prints\nhow to start it now:",[452,1293,1295],{"className":454,"code":1294,"language":456,"meta":457,"style":457},"relic server stop\n",[419,1296,1297],{"__ignoreMap":457},[461,1298,1299,1301,1303],{"class":463,"line":464},[461,1300,468],{"class":467},[461,1302,472],{"class":471},[461,1304,1305],{"class":471}," stop\n",[416,1307,1308],{},"Start it again:",[452,1310,1312],{"className":454,"code":1311,"language":456,"meta":457,"style":457},"systemctl --user start relic.service\n",[419,1313,1314],{"__ignoreMap":457},[461,1315,1316,1318,1320,1323],{"class":463,"line":464},[461,1317,436],{"class":467},[461,1319,859],{"class":499},[461,1321,1322],{"class":471}," start",[461,1324,1325],{"class":471}," relic.service\n",[416,1327,1328,1329,1331,1332,447],{},"For a system service, use ",[419,1330,488],{}," and leave out ",[419,1333,1334],{},"--user",[416,1336,1337],{},"On macOS, load the launch agent again:",[452,1339,1341],{"className":454,"code":1340,"language":456,"meta":457,"style":457},"launchctl bootstrap gui\u002F$(id -u) ~\u002FLibrary\u002FLaunchAgents\u002Fbuild.relic.server.plist\n",[419,1342,1343],{"__ignoreMap":457},[461,1344,1345,1347,1350,1352,1354,1356,1358,1360],{"class":463,"line":464},[461,1346,440],{"class":467},[461,1348,1349],{"class":471}," bootstrap",[461,1351,954],{"class":471},[461,1353,957],{"class":625},[461,1355,960],{"class":467},[461,1357,900],{"class":499},[461,1359,965],{"class":625},[461,1361,1362],{"class":471}," ~\u002FLibrary\u002FLaunchAgents\u002Fbuild.relic.server.plist\n",[416,1364,1365],{},"Then start it:",[452,1367,1369],{"className":454,"code":1368,"language":456,"meta":457,"style":457},"launchctl kickstart gui\u002F$(id -u)\u002Fbuild.relic.server\n",[419,1370,1371],{"__ignoreMap":457},[461,1372,1373,1375,1378,1380,1382,1384,1386,1388],{"class":463,"line":464},[461,1374,440],{"class":467},[461,1376,1377],{"class":471}," kickstart",[461,1379,954],{"class":471},[461,1381,957],{"class":625},[461,1383,960],{"class":467},[461,1385,900],{"class":499},[461,1387,965],{"class":625},[461,1389,968],{"class":471},[512,1391,1393],{"id":1392},"uninstall","Uninstall",[416,1395,1396,1398],{},[419,1397,1074],{}," stops the service and removes its unit or launch\nagent, the shell completion and its rc block, and the relic binary when it is under your home\ndirectory. It asks first.",[416,1400,1401,1402,1404,1405,1407,1408,1411,1412,1415],{},"It keeps the data, ",[419,1403,812],{}," (which holds the encryption key the data\nneeds), ",[419,1406,779],{},", the client config, the build runs ",[419,1409,1410],{},"relic build","\nrecorded next to it and, on macOS, the log. ",[419,1413,1414],{},"--purge"," deletes them too, and\nthen the Relic directories they leave empty.",[416,1417,1418],{},"Uninstall and keep the data:",[452,1420,1422],{"className":454,"code":1421,"language":456,"meta":457,"style":457},"relic server uninstall\n",[419,1423,1424],{"__ignoreMap":457},[461,1425,1426,1428,1430],{"class":463,"line":464},[461,1427,468],{"class":467},[461,1429,472],{"class":471},[461,1431,1432],{"class":471}," uninstall\n",[416,1434,1435],{},"Delete everything setup created, without asking:",[452,1437,1439],{"className":454,"code":1438,"language":456,"meta":457,"style":457},"relic server uninstall --purge --yes\n",[419,1440,1441],{"__ignoreMap":457},[461,1442,1443,1445,1447,1450,1453],{"class":463,"line":464},[461,1444,468],{"class":467},[461,1446,472],{"class":471},[461,1448,1449],{"class":471}," uninstall",[461,1451,1452],{"class":499}," --purge",[461,1454,1455],{"class":499}," --yes\n",[416,1457,1458,1459,1461],{},"Uninstall the system service, removing ",[419,1460,1017],{}," and the bash\ncompletion:",[452,1463,1465],{"className":454,"code":1464,"language":456,"meta":457,"style":457},"sudo relic server uninstall --system\n",[419,1466,1467],{"__ignoreMap":457},[461,1468,1469,1471,1473,1475,1477],{"class":463,"line":464},[461,1470,488],{"class":467},[461,1472,491],{"class":471},[461,1474,472],{"class":471},[461,1476,1449],{"class":471},[461,1478,500],{"class":499},[416,1480,1481,1482,1485,1486,1488,1489,1491,1492,1494,1495,1497,1498,1205,1501,1504,1505,1507,1508,1510],{},"It keeps ",[419,1483,1484],{},"\u002Fetc\u002Frelic",", ",[419,1487,1012],{}," and the ",[419,1490,468],{}," user. With ",[419,1493,1414],{},", it\ndeletes ",[419,1496,1484],{}," (with ",[419,1499,1500],{},"relic.env",[419,1502,1503],{},"tls","), ",[419,1506,1012],{}," and the\n",[419,1509,468],{}," user too.",[1512,1513,1514],"style",{},"html pre.shiki code .seIyd, html code.shiki .seIyd{--shiki-light:#E2931D;--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sasMN, html code.shiki .sasMN{--shiki-light:#91B859;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .smky3, html code.shiki .smky3{--shiki-light:#91B859;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .siFmp, html code.shiki .siFmp{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6E7781;--shiki-default-font-style:inherit;--shiki-dark:#8B949E;--shiki-dark-font-style:inherit}html pre.shiki code .sWneD, html code.shiki .sWneD{--shiki-light:#39ADB5;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .s8eFF, html code.shiki .s8eFF{--shiki-light:#39ADB5;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sX5mu, html code.shiki .sX5mu{--shiki-light:#39ADB5;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .saDVj, html code.shiki .saDVj{--shiki-light:#90A4AE;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sRZlD, html code.shiki .sRZlD{--shiki-light:#6182B8;--shiki-default:#0550AE;--shiki-dark:#79C0FF}",{"title":457,"searchDepth":616,"depth":616,"links":1516},[1517,1518,1522,1523,1524],{"id":514,"depth":616,"text":515},{"id":672,"depth":616,"text":673,"children":1519},[1520,1521],{"id":909,"depth":622,"text":705},{"id":989,"depth":622,"text":990},{"id":1110,"depth":616,"text":1111},{"id":1284,"depth":616,"text":1285},{"id":1392,"depth":616,"text":1393},"Install, run, inspect and remove the Relic server on a machine as a service, under systemd on Linux or launchd on macOS.","md",null,{},true,{"title":394,"description":1525},"DAIJTsjrZR3LzU4lz0ycpzquOs86AymhCXdVXuyVpRw",[1533,1535],{"title":390,"path":391,"stem":392,"description":1534,"children":-1},"Copy a Relic database between PostgreSQL and SQLite, and back up a SQLite database.",{"title":5,"path":404,"stem":405,"description":1536,"children":-1},"Program against Relic with a client generated from the Relic API's protobuf definitions.",1793857334801]