[{"data":1,"prerenderedAt":928},["ShallowReactive",2],{"docs-navigation":3,"-docs-installation-development":410,"-docs-installation-development-surround":923},[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":163,"body":412,"description":916,"extension":917,"links":918,"meta":919,"navigation":920,"path":164,"seo":921,"stem":165,"__hash__":922},"docs\u002Fdocs\u002F2.installation\u002F8.development.md",{"type":413,"value":414,"toc":913},"minimark",[415,419,464,467,548,551,573,590,597,614,617,635,657,660,679,682,708,711,727,733,738,748,890,909],[416,417,418],"p",{},"Start the Compose stack's PostgreSQL and SeaweedFS and create the buckets:",[420,421,426],"pre",{"className":422,"code":423,"language":424,"meta":425,"style":425},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","docker compose -f deploy\u002Fdocker-compose.yml up -d postgresql seaweedfs-s3 seaweedfs-create-buckets\n","bash","",[427,428,429],"code",{"__ignoreMap":425},[430,431,434,438,442,446,449,452,455,458,461],"span",{"class":432,"line":433},"line",1,[430,435,437],{"class":436},"seIyd","docker",[430,439,441],{"class":440},"sasMN"," compose",[430,443,445],{"class":444},"smky3"," -f",[430,447,448],{"class":440}," deploy\u002Fdocker-compose.yml",[430,450,451],{"class":440}," up",[430,453,454],{"class":444}," -d",[430,456,457],{"class":440}," postgresql",[430,459,460],{"class":440}," seaweedfs-s3",[430,462,463],{"class":440}," seaweedfs-create-buckets\n",[416,465,466],{},"Point Relic at the Compose services and set the admin password:",[420,468,470],{"className":422,"code":469,"language":424,"meta":425,"style":425},"export RELIC_DATABASE_URL='postgres:\u002F\u002Frelic:relic@localhost:5432\u002Frelic?sslmode=disable'\nexport RELIC_OBJECT_STORAGE_ENDPOINT=http:\u002F\u002Flocalhost:8333\nexport RELIC_OBJECT_STORAGE_ACCESS_KEY=relic-dev-access-key\nexport RELIC_OBJECT_STORAGE_SECRET_KEY=relic-dev-secret-key-not-for-production\nexport RELIC_ADMIN_PASSWORD=password\n",[427,471,472,496,509,522,535],{"__ignoreMap":425},[430,473,474,478,482,486,490,493],{"class":432,"line":433},[430,475,477],{"class":476},"s4vtu","export",[430,479,481],{"class":480},"saDVj"," RELIC_DATABASE_URL",[430,483,485],{"class":484},"s8eFF","=",[430,487,489],{"class":488},"sX5mu","'",[430,491,492],{"class":440},"postgres:\u002F\u002Frelic:relic@localhost:5432\u002Frelic?sslmode=disable",[430,494,495],{"class":488},"'\n",[430,497,499,501,504,506],{"class":432,"line":498},2,[430,500,477],{"class":476},[430,502,503],{"class":480}," RELIC_OBJECT_STORAGE_ENDPOINT",[430,505,485],{"class":484},[430,507,508],{"class":480},"http:\u002F\u002Flocalhost:8333\n",[430,510,512,514,517,519],{"class":432,"line":511},3,[430,513,477],{"class":476},[430,515,516],{"class":480}," RELIC_OBJECT_STORAGE_ACCESS_KEY",[430,518,485],{"class":484},[430,520,521],{"class":480},"relic-dev-access-key\n",[430,523,525,527,530,532],{"class":432,"line":524},4,[430,526,477],{"class":476},[430,528,529],{"class":480}," RELIC_OBJECT_STORAGE_SECRET_KEY",[430,531,485],{"class":484},[430,533,534],{"class":480},"relic-dev-secret-key-not-for-production\n",[430,536,538,540,543,545],{"class":432,"line":537},5,[430,539,477],{"class":476},[430,541,542],{"class":480}," RELIC_ADMIN_PASSWORD",[430,544,485],{"class":484},[430,546,547],{"class":480},"password\n",[416,549,550],{},"Start the server:",[420,552,554],{"className":422,"code":553,"language":424,"meta":425,"style":425},"go run .\u002Fcmd\u002Frelic server start\n",[427,555,556],{"__ignoreMap":425},[430,557,558,561,564,567,570],{"class":432,"line":433},[430,559,560],{"class":436},"go",[430,562,563],{"class":440}," run",[430,565,566],{"class":440}," .\u002Fcmd\u002Frelic",[430,568,569],{"class":440}," server",[430,571,572],{"class":440}," start\n",[416,574,575,576,579,580,583,584,589],{},"It serves HTTPS at ",[427,577,578],{},"https:\u002F\u002Flocalhost:8090"," with a certificate authority in\n",[427,581,582],{},"~\u002F.config\u002Frelic\u002Ftls"," (",[585,586,588],"a",{"href":587},"\u002Fdocs\u002Finstallation\u002Fconfiguration#tls","TLS",").",[416,591,592,593,596],{},"In a second shell with the same exports, move the worker's metrics off the\nserver's ",[427,594,595],{},":8091",":",[420,598,600],{"className":422,"code":599,"language":424,"meta":425,"style":425},"export RELIC_METRICS_LISTEN_ADDRESS=:8092\n",[427,601,602],{"__ignoreMap":425},[430,603,604,606,609,611],{"class":432,"line":433},[430,605,477],{"class":476},[430,607,608],{"class":480}," RELIC_METRICS_LISTEN_ADDRESS",[430,610,485],{"class":484},[430,612,613],{"class":480},":8092\n",[416,615,616],{},"Start the worker:",[420,618,620],{"className":422,"code":619,"language":424,"meta":425,"style":425},"go run .\u002Fcmd\u002Frelic server worker\n",[427,621,622],{"__ignoreMap":425},[430,623,624,626,628,630,632],{"class":432,"line":433},[430,625,560],{"class":436},[430,627,563],{"class":440},[430,629,566],{"class":440},[430,631,569],{"class":440},[430,633,634],{"class":440}," worker\n",[416,636,637,638,641,642,645,646,649,650,652,653,656],{},"A plain checkout does not embed the web UI, so ",[427,639,640],{},"\u002F"," answers \"UI not built into\nthis binary\" (the ",[427,643,644],{},"noui"," build tag leaves it out even after ",[427,647,648],{},"task ui","). Run the\nUI dev server instead. It proxies API calls to ",[427,651,578],{},", or to\n",[427,654,655],{},"RELIC_BACKEND",".",[416,658,659],{},"Install the web dependencies:",[420,661,663],{"className":422,"code":662,"language":424,"meta":425,"style":425},"pnpm -C web install\n",[427,664,665],{"__ignoreMap":425},[430,666,667,670,673,676],{"class":432,"line":433},[430,668,669],{"class":436},"pnpm",[430,671,672],{"class":444}," -C",[430,674,675],{"class":440}," web",[430,677,678],{"class":440}," install\n",[416,680,681],{},"Make Node.js trust the server's certificate authority:",[420,683,685],{"className":422,"code":684,"language":424,"meta":425,"style":425},"export NODE_EXTRA_CA_CERTS=\"$HOME\u002F.config\u002Frelic\u002Ftls\u002Fca.crt\"\n",[427,686,687],{"__ignoreMap":425},[430,688,689,691,694,696,699,702,705],{"class":432,"line":433},[430,690,477],{"class":476},[430,692,693],{"class":480}," NODE_EXTRA_CA_CERTS",[430,695,485],{"class":484},[430,697,698],{"class":488},"\"",[430,700,701],{"class":480},"$HOME",[430,703,704],{"class":440},"\u002F.config\u002Frelic\u002Ftls\u002Fca.crt",[430,706,707],{"class":488},"\"\n",[416,709,710],{},"Start the UI dev server:",[420,712,714],{"className":422,"code":713,"language":424,"meta":425,"style":425},"pnpm -C web dev\n",[427,715,716],{"__ignoreMap":425},[430,717,718,720,722,724],{"class":432,"line":433},[430,719,669],{"class":436},[430,721,672],{"class":444},[430,723,675],{"class":440},[430,725,726],{"class":440}," dev\n",[416,728,729,730,656],{},"Open ",[427,731,732],{},"http:\u002F\u002Flocalhost:3000",[734,735,737],"h2",{"id":736},"taskfile","Taskfile",[416,739,740,743,744,747],{},[427,741,742],{},"Taskfile.yml"," wraps these commands; ",[427,745,746],{},"task"," lists them.",[749,750,751,764],"table",{},[752,753,754],"thead",{},[755,756,757,761],"tr",{},[758,759,760],"th",{},"Task",[758,762,763],{},"Does",[765,766,767,789,799,809,819,835,848,865],"tbody",{},[755,768,769,775],{},[770,771,772],"td",{},[427,773,774],{},"task run",[770,776,777,778,583,781,784,785,788],{},"Runs a single node from source on SQLite and the filesystem store in ",[427,779,780],{},"~\u002F.local\u002Fshare\u002Frelic-dev",[427,782,783],{},"DATA_DIR",", ",[427,786,787],{},"PORT",")",[755,790,791,796],{},[770,792,793],{},[427,794,795],{},"task run:postgres",[770,797,798],{},"Runs the same against the Compose PostgreSQL and SeaweedFS",[755,800,801,806],{},[770,802,803],{},[427,804,805],{},"task run:docker",[770,807,808],{},"Builds the image and runs it as one container on volumes",[755,810,811,816],{},[770,812,813],{},[427,814,815],{},"task stack",[770,817,818],{},"Starts the full Compose stack",[755,820,821,826],{},[770,822,823],{},[427,824,825],{},"task install",[770,827,828,829,583,832,788],{},"Builds relic with the web UI into ",[427,830,831],{},"~\u002F.local\u002Fbin",[427,833,834],{},"BIN_DIR",[755,836,837,842],{},[770,838,839],{},[427,840,841],{},"task cli:install",[770,843,844,845,788],{},"Builds relic without the web UI (",[427,846,847],{},"-tags noui",[755,849,850,855],{},[770,851,852],{},[427,853,854],{},"task service",[770,856,857,858,861,862],{},"Runs ",[427,859,860],{},"install",", then ",[427,863,864],{},"relic server setup",[755,866,867,887],{},[770,868,869,784,872,784,875,784,878,784,881,784,884],{},[427,870,871],{},"task gen",[427,873,874],{},"fmt",[427,876,877],{},"lint",[427,879,880],{},"test",[427,882,883],{},"test:integration",[427,885,886],{},"e2e",[770,888,889],{},"Code generation and checks",[416,891,892,893,896,897,900,901,904,905,908],{},"The run tasks use ",[427,894,895],{},"admin"," \u002F ",[427,898,899],{},"password",", a fixed encryption key and\n",[427,902,903],{},"$DATA_DIR\u002Ftls","; ",[427,906,907],{},"task web"," runs the UI dev server trusting that authority.",[910,911,912],"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 pre.shiki code .smky3, html code.shiki .smky3{--shiki-light:#91B859;--shiki-default:#0550AE;--shiki-dark:#79C0FF}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 .s4vtu, html code.shiki .s4vtu{--shiki-light:#9C3EDA;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .saDVj, html code.shiki .saDVj{--shiki-light:#90A4AE;--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}",{"title":425,"searchDepth":498,"depth":498,"links":914},[915],{"id":736,"depth":498,"text":737},"Run Relic from source with go run and the web UI dev server, for working on Relic itself.","md",null,{},true,{"title":163,"description":916},"ZDsVbkjw0tx3Uyyws4fVJGklYJ6BAwBGxuuQgQEDiaA",[924,926],{"title":159,"path":160,"stem":161,"description":925,"children":-1},"Store artifact content in a local directory instead of an S3 service, on a single node.",{"title":173,"path":174,"stem":175,"description":927,"children":-1},"Create local, remote and virtual repositories, and set their limits, cleanup, holds and trash.",1793857336757]