[{"data":1,"prerenderedAt":994},["ShallowReactive",2],{"docs-navigation":3,"-docs-installation-docker-quick-start":410,"-docs-installation-docker-quick-start-surround":989},[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":36,"body":412,"description":982,"extension":983,"links":984,"meta":985,"navigation":986,"path":50,"seo":987,"stem":51,"__hash__":988},"docs\u002Fdocs\u002F2.installation\u002F3.docker\u002F1.quick-start.md",{"type":413,"value":414,"toc":977},"minimark",[415,420,444,469,476,512,515,541,544,617,624,628,635,700,703,781,793,810,832,881,909,912,955,959,973],[416,417,419],"h2",{"id":418},"get-the-image","Get the image",[421,422,423,424,428,429,432,433,436,437,428,440,443],"p",{},"Each release publishes a signed image for linux\u002Famd64 and linux\u002Farm64 as\n",[425,426,427],"code",{},"ghcr.io\u002Frelicbuild\u002Frelic"," and ",[425,430,431],{},"relicbuild\u002Frelic"," (Docker Hub), tagged\n",[425,434,435],{},"v1.2.3",", ",[425,438,439],{},"1.2",[425,441,442],{},"latest"," (a pre-release: its tag only). Pull it:",[445,446,451],"pre",{"className":447,"code":448,"language":449,"meta":450,"style":450},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","docker pull ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z\n","bash","",[425,452,453],{"__ignoreMap":450},[454,455,458,462,466],"span",{"class":456,"line":457},"line",1,[454,459,461],{"class":460},"seIyd","docker",[454,463,465],{"class":464},"sasMN"," pull",[454,467,468],{"class":464}," ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z\n",[421,470,471,472,475],{},"Check its signature with cosign 3 or later (optional). Older cosign versions\nanswer ",[425,473,474],{},"no signatures found",".",[445,477,479],{"className":447,"code":478,"language":449,"meta":450,"style":450},"cosign verify ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z --certificate-oidc-issuer https:\u002F\u002Ftoken.actions.githubusercontent.com --certificate-identity-regexp '^https:\u002F\u002Fgithub.com\u002Frelicbuild\u002Frelic\u002F'\n",[425,480,481],{"__ignoreMap":450},[454,482,483,486,489,492,496,499,502,506,509],{"class":456,"line":457},[454,484,485],{"class":460},"cosign",[454,487,488],{"class":464}," verify",[454,490,491],{"class":464}," ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z",[454,493,495],{"class":494},"smky3"," --certificate-oidc-issuer",[454,497,498],{"class":464}," https:\u002F\u002Ftoken.actions.githubusercontent.com",[454,500,501],{"class":494}," --certificate-identity-regexp",[454,503,505],{"class":504},"sX5mu"," '",[454,507,508],{"class":464},"^https:\u002F\u002Fgithub.com\u002Frelicbuild\u002Frelic\u002F",[454,510,511],{"class":504},"'\n",[421,513,514],{},"Or build it from a checkout of the release's tag:",[445,516,518],{"className":447,"code":517,"language":449,"meta":450,"style":450},"docker build --build-arg VERSION=vX.Y.Z -t ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z .\n",[425,519,520],{"__ignoreMap":450},[454,521,522,524,527,530,533,536,538],{"class":456,"line":457},[454,523,461],{"class":460},[454,525,526],{"class":464}," build",[454,528,529],{"class":494}," --build-arg",[454,531,532],{"class":464}," VERSION=vX.Y.Z",[454,534,535],{"class":494}," -t",[454,537,491],{"class":464},[454,539,540],{"class":464}," .\n",[421,542,543],{},"The command selects the part:",[545,546,547,560],"table",{},[548,549,550],"thead",{},[551,552,553,557],"tr",{},[554,555,556],"th",{},"Command",[554,558,559],{},"What it does",[561,562,563,587,597,607],"tbody",{},[551,564,565,572],{},[566,567,568,571],"td",{},[425,569,570],{},"server start"," (the default)",[566,573,574,575,578,579,582,583,586],{},"Applies migrations, then serves the APIs and the web UI over HTTPS on ",[425,576,577],{},"RELIC_HTTP_LISTEN_ADDRESS"," (",[425,580,581],{},":8090","). ",[425,584,585],{},"--no-tls"," serves plain HTTP.",[551,588,589,594],{},[566,590,591],{},[425,592,593],{},"server start --worker",[566,595,596],{},"Server and background jobs in one process, for a single node.",[551,598,599,604],{},[566,600,601],{},[425,602,603],{},"server worker",[566,605,606],{},"Applies migrations, then runs background jobs.",[551,608,609,614],{},[566,610,611],{},[425,612,613],{},"server migrate",[566,615,616],{},"Applies migrations and exits.",[421,618,619,620,623],{},"The image is distroless, runs as a non-root user, and includes the web UI, the\nscanners, the ",[425,621,622],{},"relic-indexer"," builds and the Debian CA bundle.",[416,625,627],{"id":626},"run-one-container","Run one container",[421,629,630,631,634],{},"Put the settings in an env file, such as ",[425,632,633],{},"relic.env"," with mode 0600:",[445,636,640],{"className":637,"code":638,"language":639,"meta":450,"style":450},"language-ini shiki shiki-themes material-theme-lighter github-light-default github-dark-default","RELIC_DATABASE_URL=sqlite:\u002F\u002F\u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Frelic.db\nRELIC_OBJECT_STORAGE_TYPE=filesystem\nRELIC_OBJECT_STORAGE_PATH=\u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Fobjects\nRELIC_ADMIN_PASSWORD=\u003Cadmin-password>\nRELIC_ENCRYPTION_KEY=\u003Copenssl rand -base64 32>\n","ini",[425,641,642,656,667,678,689],{"__ignoreMap":450},[454,643,644,648,652],{"class":456,"line":457},[454,645,647],{"class":646},"s03VG","RELIC_DATABASE_URL",[454,649,651],{"class":650},"sWneD","=",[454,653,655],{"class":654},"saDVj","sqlite:\u002F\u002F\u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Frelic.db\n",[454,657,659,662,664],{"class":456,"line":658},2,[454,660,661],{"class":646},"RELIC_OBJECT_STORAGE_TYPE",[454,663,651],{"class":650},[454,665,666],{"class":654},"filesystem\n",[454,668,670,673,675],{"class":456,"line":669},3,[454,671,672],{"class":646},"RELIC_OBJECT_STORAGE_PATH",[454,674,651],{"class":650},[454,676,677],{"class":654},"\u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Fobjects\n",[454,679,681,684,686],{"class":456,"line":680},4,[454,682,683],{"class":646},"RELIC_ADMIN_PASSWORD",[454,685,651],{"class":650},[454,687,688],{"class":654},"\u003Cadmin-password>\n",[454,690,692,695,697],{"class":456,"line":691},5,[454,693,694],{"class":646},"RELIC_ENCRYPTION_KEY",[454,696,651],{"class":650},[454,698,699],{"class":654},"\u003Copenssl rand -base64 32>\n",[421,701,702],{},"Start the server and the worker in one container:",[445,704,706],{"className":447,"code":705,"language":449,"meta":450,"style":450},"docker run -d --name relic --restart unless-stopped --env-file relic.env -p 8090:8090 \\\n  -v relic-data:\u002Fvar\u002Flib\u002Frelic\u002Fdata -v relic-grype:\u002Fvar\u002Flib\u002Frelic\u002Fgrype -v relic-tls:\u002Fetc\u002Frelic\u002Ftls \\\n  ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z server start --worker\n",[425,707,708,746,767],{"__ignoreMap":450},[454,709,710,712,715,718,721,724,727,730,733,736,739,742],{"class":456,"line":457},[454,711,461],{"class":460},[454,713,714],{"class":464}," run",[454,716,717],{"class":494}," -d",[454,719,720],{"class":494}," --name",[454,722,723],{"class":464}," relic",[454,725,726],{"class":494}," --restart",[454,728,729],{"class":464}," unless-stopped",[454,731,732],{"class":494}," --env-file",[454,734,735],{"class":464}," relic.env",[454,737,738],{"class":494}," -p",[454,740,741],{"class":464}," 8090:8090",[454,743,745],{"class":744},"s3oUJ"," \\\n",[454,747,748,751,754,757,760,762,765],{"class":456,"line":658},[454,749,750],{"class":494},"  -v",[454,752,753],{"class":464}," relic-data:\u002Fvar\u002Flib\u002Frelic\u002Fdata",[454,755,756],{"class":494}," -v",[454,758,759],{"class":464}," relic-grype:\u002Fvar\u002Flib\u002Frelic\u002Fgrype",[454,761,756],{"class":494},[454,763,764],{"class":464}," relic-tls:\u002Fetc\u002Frelic\u002Ftls",[454,766,745],{"class":744},[454,768,769,772,775,778],{"class":456,"line":669},[454,770,771],{"class":464},"  ghcr.io\u002Frelicbuild\u002Frelic:vX.Y.Z",[454,773,774],{"class":464}," server",[454,776,777],{"class":464}," start",[454,779,780],{"class":494}," --worker\n",[421,782,783,784,578,787,792],{},"The server serves HTTPS with a certificate authority it generates in\n",[425,785,786],{},"\u002Fetc\u002Frelic\u002Ftls",[788,789,791],"a",{"href":790},"\u002Fdocs\u002Finstallation\u002Fconfiguration#tls","TLS","). Copy its\ncertificate out of the container:",[445,794,796],{"className":447,"code":795,"language":449,"meta":450,"style":450},"docker cp relic:\u002Fetc\u002Frelic\u002Ftls\u002Fca.crt .\n",[425,797,798],{"__ignoreMap":450},[454,799,800,802,805,808],{"class":456,"line":457},[454,801,461],{"class":460},[454,803,804],{"class":464}," cp",[454,806,807],{"class":464}," relic:\u002Fetc\u002Frelic\u002Ftls\u002Fca.crt",[454,809,540],{"class":464},[421,811,812,813,816,817,820,821,824,825,828,829,475],{},"Trust ",[425,814,815],{},"ca.crt",", open ",[425,818,819],{},"https:\u002F\u002Flocalhost:8090"," and sign in as ",[425,822,823],{},"admin",", or\n",[788,826,827],{"href":343},"use the relic CLI"," with ",[425,830,831],{},"--ca-file ca.crt",[545,833,834,844],{},[548,835,836],{},[551,837,838,841],{},[554,839,840],{},"Volume",[554,842,843],{},"Holds",[561,845,846,861,871],{},[551,847,848,853],{},[566,849,850],{},[425,851,852],{},"relic-data",[566,854,855,856,578,858,860],{},"The SQLite database and the content. Back it up with ",[425,857,633],{},[788,859,40],{"href":41},").",[551,862,863,868],{},[566,864,865],{},[425,866,867],{},"relic-grype",[566,869,870],{},"Grype's vulnerability database.",[551,872,873,878],{},[566,874,875],{},[425,876,877],{},"relic-tls",[566,879,880],{},"The certificate authority and server certificate.",[421,882,883,884,887,888,891,892,428,895,898,899,901,902,578,905,860],{},"Use named volumes, or bind mounts owned by uid 65532 (",[425,885,886],{},"nonroot","). To reach the\nserver by another name, add it to ",[425,889,890],{},"RELIC_TLS_HOSTNAMES",", or set your own\ncertificate with ",[425,893,894],{},"RELIC_TLS_CERTIFICATE_FILE",[425,896,897],{},"RELIC_TLS_KEY_FILE",". Behind a\nreverse proxy that terminates TLS, add ",[425,900,585],{}," and list the proxy in\n",[425,903,904],{},"RELIC_TRUSTED_PROXIES",[788,906,908],{"href":907},"\u002Fdocs\u002Fguides\u002Foperations#behind-a-reverse-proxy","Behind a reverse proxy",[421,910,911],{},"Back up the database from inside the container:",[445,913,915],{"className":447,"code":914,"language":449,"meta":450,"style":450},"docker exec relic \u002Frelic server database backup \u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Fbackup-$(date +%F).db\n",[425,916,917],{"__ignoreMap":450},[454,918,919,921,924,926,929,931,934,937,940,943,946,949,952],{"class":456,"line":457},[454,920,461],{"class":460},[454,922,923],{"class":464}," exec",[454,925,723],{"class":464},[454,927,928],{"class":464}," \u002Frelic",[454,930,774],{"class":464},[454,932,933],{"class":464}," database",[454,935,936],{"class":464}," backup",[454,938,939],{"class":464}," \u002Fvar\u002Flib\u002Frelic\u002Fdata\u002Fbackup-",[454,941,942],{"class":650},"$(",[454,944,945],{"class":460},"date",[454,947,948],{"class":464}," +%F",[454,950,951],{"class":650},")",[454,953,954],{"class":464},".db\n",[416,956,958],{"id":957},"next","Next",[960,961,962,968],"ul",{},[963,964,965,966,475],"li",{},"Several replicas: ",[788,967,53],{"href":54},[963,969,970,971,475],{},"Development or evaluation: ",[788,972,57],{"href":58},[974,975,976],"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 .sX5mu, html code.shiki .sX5mu{--shiki-light:#39ADB5;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .s03VG, html code.shiki .s03VG{--shiki-light:#E53935;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sWneD, html code.shiki .sWneD{--shiki-light:#39ADB5;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .saDVj, html code.shiki .saDVj{--shiki-light:#90A4AE;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .s3oUJ, html code.shiki .s3oUJ{--shiki-light:#90A4AE;--shiki-default:#CF222E;--shiki-dark:#FF7B72}",{"title":450,"searchDepth":658,"depth":658,"links":978},[979,980,981],{"id":418,"depth":658,"text":419},{"id":626,"depth":658,"text":627},{"id":957,"depth":658,"text":958},"Pull the Relic image and run it as one container, with SQLite and the content on a volume.","md",null,{},true,{"title":36,"description":982},"R40fkPJUIgiWrfQMDRsx_R7agKK0bFfdpa94Hn0KJHQ",[990,992],{"title":40,"path":41,"stem":42,"description":991,"children":-1},"What a single node cannot do, how to back it up, restore and upgrade it, and how to move it to PostgreSQL.",{"title":53,"path":54,"stem":55,"description":993,"children":-1},"Run a Relic server and worker container against your own PostgreSQL and S3-compatible storage.",1793857335691]