[{"data":1,"prerenderedAt":1177},["ShallowReactive",2],{"docs-navigation":3,"-docs-installation-storage-amazon-s3":410,"-docs-installation-storage-amazon-s3-surround":1172},[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":135,"body":412,"description":1165,"extension":1166,"links":1167,"meta":1168,"navigation":1169,"path":136,"seo":1170,"stem":137,"__hash__":1171},"docs\u002Fdocs\u002F2.installation\u002F7.storage\u002F3.amazon-s3.md",{"type":413,"value":414,"toc":1156},"minimark",[415,420,424,427,479,482,512,516,519,560,563,598,602,605,875,885,896,900,915,919,922,962,965,969,1004,1011,1014,1122,1141,1145,1152],[416,417,419],"h2",{"id":418},"create-the-buckets","Create the buckets",[421,422,423],"p",{},"Bucket names are global: pick your own. Create both in Relic's region.",[421,425,426],{},"This command creates the artifacts bucket:",[428,429,434],"pre",{"className":430,"code":431,"language":432,"meta":433,"style":433},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","aws s3api create-bucket --bucket example-relic-artifacts --region eu-central-1 \\\n  --create-bucket-configuration LocationConstraint=eu-central-1\n","bash","",[435,436,437,470],"code",{"__ignoreMap":433},[438,439,442,446,450,453,457,460,463,466],"span",{"class":440,"line":441},"line",1,[438,443,445],{"class":444},"seIyd","aws",[438,447,449],{"class":448},"sasMN"," s3api",[438,451,452],{"class":448}," create-bucket",[438,454,456],{"class":455},"smky3"," --bucket",[438,458,459],{"class":448}," example-relic-artifacts",[438,461,462],{"class":455}," --region",[438,464,465],{"class":448}," eu-central-1",[438,467,469],{"class":468},"s3oUJ"," \\\n",[438,471,473,476],{"class":440,"line":472},2,[438,474,475],{"class":455},"  --create-bucket-configuration",[438,477,478],{"class":448}," LocationConstraint=eu-central-1\n",[421,480,481],{},"This command creates the temporary bucket:",[428,483,485],{"className":430,"code":484,"language":432,"meta":433,"style":433},"aws s3api create-bucket --bucket example-relic-temporary --region eu-central-1 \\\n  --create-bucket-configuration LocationConstraint=eu-central-1\n",[435,486,487,506],{"__ignoreMap":433},[438,488,489,491,493,495,497,500,502,504],{"class":440,"line":441},[438,490,445],{"class":444},[438,492,449],{"class":448},[438,494,452],{"class":448},[438,496,456],{"class":455},[438,498,499],{"class":448}," example-relic-temporary",[438,501,462],{"class":455},[438,503,465],{"class":448},[438,505,469],{"class":468},[438,507,508,510],{"class":440,"line":472},[438,509,475],{"class":455},[438,511,478],{"class":448},[416,513,515],{"id":514},"lifecycle-rules","Lifecycle rules",[421,517,518],{},"This rule expires everything in the temporary bucket after one day:",[428,520,522],{"className":430,"code":521,"language":432,"meta":433,"style":433},"aws s3api put-bucket-lifecycle-configuration --bucket example-relic-temporary \\\n  --lifecycle-configuration '{\"Rules\":[{\"ID\":\"expire-staged-uploads\",\"Status\":\"Enabled\",\"Filter\":{},\n    \"Expiration\":{\"Days\":1},\"AbortIncompleteMultipartUpload\":{\"DaysAfterInitiation\":1}}]}'\n",[435,523,524,539,551],{"__ignoreMap":433},[438,525,526,528,530,533,535,537],{"class":440,"line":441},[438,527,445],{"class":444},[438,529,449],{"class":448},[438,531,532],{"class":448}," put-bucket-lifecycle-configuration",[438,534,456],{"class":455},[438,536,499],{"class":448},[438,538,469],{"class":468},[438,540,541,544,548],{"class":440,"line":472},[438,542,543],{"class":455},"  --lifecycle-configuration",[438,545,547],{"class":546},"sX5mu"," '",[438,549,550],{"class":448},"{\"Rules\":[{\"ID\":\"expire-staged-uploads\",\"Status\":\"Enabled\",\"Filter\":{},\n",[438,552,554,557],{"class":440,"line":553},3,[438,555,556],{"class":448},"    \"Expiration\":{\"Days\":1},\"AbortIncompleteMultipartUpload\":{\"DaysAfterInitiation\":1}}]}",[438,558,559],{"class":546},"'\n",[421,561,562],{},"This rule cleans up incomplete multipart uploads in the artifacts bucket:",[428,564,566],{"className":430,"code":565,"language":432,"meta":433,"style":433},"aws s3api put-bucket-lifecycle-configuration --bucket example-relic-artifacts \\\n  --lifecycle-configuration '{\"Rules\":[{\"ID\":\"abort-incomplete-uploads\",\"Status\":\"Enabled\",\"Filter\":{},\n    \"AbortIncompleteMultipartUpload\":{\"DaysAfterInitiation\":1}}]}'\n",[435,567,568,582,591],{"__ignoreMap":433},[438,569,570,572,574,576,578,580],{"class":440,"line":441},[438,571,445],{"class":444},[438,573,449],{"class":448},[438,575,532],{"class":448},[438,577,456],{"class":455},[438,579,459],{"class":448},[438,581,469],{"class":468},[438,583,584,586,588],{"class":440,"line":472},[438,585,543],{"class":455},[438,587,547],{"class":546},[438,589,590],{"class":448},"{\"Rules\":[{\"ID\":\"abort-incomplete-uploads\",\"Status\":\"Enabled\",\"Filter\":{},\n",[438,592,593,596],{"class":440,"line":553},[438,594,595],{"class":448},"    \"AbortIncompleteMultipartUpload\":{\"DaysAfterInitiation\":1}}]}",[438,597,559],{"class":546},[416,599,601],{"id":600},"iam-policy","IAM policy",[421,603,604],{},"Grant Relic this policy:",[428,606,610],{"className":607,"code":608,"language":609,"meta":433,"style":433},"language-json shiki shiki-themes material-theme-lighter github-light-default github-dark-default","{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\"s3:ListBucket\"],\n      \"Resource\": [\"arn:aws:s3:::example-relic-artifacts\", \"arn:aws:s3:::example-relic-temporary\"]\n    },\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\"s3:GetObject\", \"s3:PutObject\", \"s3:DeleteObject\", \"s3:AbortMultipartUpload\"],\n      \"Resource\": [\"arn:aws:s3:::example-relic-artifacts\u002F*\", \"arn:aws:s3:::example-relic-temporary\u002F*\"]\n    }\n  ]\n}\n","json",[435,611,612,618,645,659,665,688,713,747,753,758,777,826,857,863,869],{"__ignoreMap":433},[438,613,614],{"class":440,"line":441},[438,615,617],{"class":616},"sWneD","{\n",[438,619,620,624,628,631,634,637,640,642],{"class":440,"line":472},[438,621,623],{"class":622},"sK3rv","  \"",[438,625,627],{"class":626},"s10kg","Version",[438,629,630],{"class":622},"\"",[438,632,633],{"class":616},":",[438,635,636],{"class":546}," \"",[438,638,639],{"class":448},"2012-10-17",[438,641,630],{"class":546},[438,643,644],{"class":616},",\n",[438,646,647,649,652,654,656],{"class":440,"line":553},[438,648,623],{"class":622},[438,650,651],{"class":626},"Statement",[438,653,630],{"class":622},[438,655,633],{"class":616},[438,657,658],{"class":616}," [\n",[438,660,662],{"class":440,"line":661},4,[438,663,664],{"class":616},"    {\n",[438,666,668,671,675,677,679,681,684,686],{"class":440,"line":667},5,[438,669,670],{"class":622},"      \"",[438,672,674],{"class":673},"st6vK","Effect",[438,676,630],{"class":622},[438,678,633],{"class":616},[438,680,636],{"class":546},[438,682,683],{"class":448},"Allow",[438,685,630],{"class":546},[438,687,644],{"class":616},[438,689,691,693,696,698,700,703,705,708,710],{"class":440,"line":690},6,[438,692,670],{"class":622},[438,694,695],{"class":673},"Action",[438,697,630],{"class":622},[438,699,633],{"class":616},[438,701,702],{"class":616}," [",[438,704,630],{"class":546},[438,706,707],{"class":448},"s3:ListBucket",[438,709,630],{"class":546},[438,711,712],{"class":616},"],\n",[438,714,716,718,721,723,725,727,729,732,734,737,739,742,744],{"class":440,"line":715},7,[438,717,670],{"class":622},[438,719,720],{"class":673},"Resource",[438,722,630],{"class":622},[438,724,633],{"class":616},[438,726,702],{"class":616},[438,728,630],{"class":546},[438,730,731],{"class":448},"arn:aws:s3:::example-relic-artifacts",[438,733,630],{"class":546},[438,735,736],{"class":616},",",[438,738,636],{"class":546},[438,740,741],{"class":448},"arn:aws:s3:::example-relic-temporary",[438,743,630],{"class":546},[438,745,746],{"class":616},"]\n",[438,748,750],{"class":440,"line":749},8,[438,751,752],{"class":616},"    },\n",[438,754,756],{"class":440,"line":755},9,[438,757,664],{"class":616},[438,759,761,763,765,767,769,771,773,775],{"class":440,"line":760},10,[438,762,670],{"class":622},[438,764,674],{"class":673},[438,766,630],{"class":622},[438,768,633],{"class":616},[438,770,636],{"class":546},[438,772,683],{"class":448},[438,774,630],{"class":546},[438,776,644],{"class":616},[438,778,780,782,784,786,788,790,792,795,797,799,801,804,806,808,810,813,815,817,819,822,824],{"class":440,"line":779},11,[438,781,670],{"class":622},[438,783,695],{"class":673},[438,785,630],{"class":622},[438,787,633],{"class":616},[438,789,702],{"class":616},[438,791,630],{"class":546},[438,793,794],{"class":448},"s3:GetObject",[438,796,630],{"class":546},[438,798,736],{"class":616},[438,800,636],{"class":546},[438,802,803],{"class":448},"s3:PutObject",[438,805,630],{"class":546},[438,807,736],{"class":616},[438,809,636],{"class":546},[438,811,812],{"class":448},"s3:DeleteObject",[438,814,630],{"class":546},[438,816,736],{"class":616},[438,818,636],{"class":546},[438,820,821],{"class":448},"s3:AbortMultipartUpload",[438,823,630],{"class":546},[438,825,712],{"class":616},[438,827,829,831,833,835,837,839,841,844,846,848,850,853,855],{"class":440,"line":828},12,[438,830,670],{"class":622},[438,832,720],{"class":673},[438,834,630],{"class":622},[438,836,633],{"class":616},[438,838,702],{"class":616},[438,840,630],{"class":546},[438,842,843],{"class":448},"arn:aws:s3:::example-relic-artifacts\u002F*",[438,845,630],{"class":546},[438,847,736],{"class":616},[438,849,636],{"class":546},[438,851,852],{"class":448},"arn:aws:s3:::example-relic-temporary\u002F*",[438,854,630],{"class":546},[438,856,746],{"class":616},[438,858,860],{"class":440,"line":859},13,[438,861,862],{"class":616},"    }\n",[438,864,866],{"class":440,"line":865},14,[438,867,868],{"class":616},"  ]\n",[438,870,872],{"class":440,"line":871},15,[438,873,874],{"class":616},"}\n",[421,876,877,878,880,881,884],{},"Without ",[435,879,707],{},", garbage collection, the storage check and ",[435,882,883],{},"\u002Freadyz","\nfail.",[421,886,887,888,891,892,895],{},"With SSE-KMS and a customer managed key, also allow ",[435,889,890],{},"kms:GenerateDataKey"," and\n",[435,893,894],{},"kms:Decrypt"," on that key.",[416,897,899],{"id":898},"credentials","Credentials",[421,901,902,903,906,907,910,911,914],{},"With ",[435,904,905],{},"RELIC_OBJECT_STORAGE_ACCESS_KEY"," and ",[435,908,909],{},"RELIC_OBJECT_STORAGE_SECRET_KEY","\nempty, Relic uses the AWS default credential chain: IRSA, EKS Pod Identity, the\nEC2 instance profile or ECS task role, or ",[435,912,913],{},"AWS_*"," variables.",[416,916,918],{"id":917},"encryption-and-storage-class","Encryption and storage class",[421,920,921],{},"New buckets encrypt with SSE-S3. For a KMS key or another storage class:",[428,923,927],{"className":924,"code":925,"language":926,"meta":433,"style":433},"language-ini shiki shiki-themes material-theme-lighter github-light-default github-dark-default","RELIC_OBJECT_STORAGE_SSE=aws:kms\nRELIC_OBJECT_STORAGE_SSE_KMS_KEY_ID=alias\u002Frelic\nRELIC_OBJECT_STORAGE_STORAGE_CLASS=INTELLIGENT_TIERING\n","ini",[435,928,929,942,952],{"__ignoreMap":433},[438,930,931,935,938],{"class":440,"line":441},[438,932,934],{"class":933},"s03VG","RELIC_OBJECT_STORAGE_SSE",[438,936,937],{"class":616},"=",[438,939,941],{"class":940},"saDVj","aws:kms\n",[438,943,944,947,949],{"class":440,"line":472},[438,945,946],{"class":933},"RELIC_OBJECT_STORAGE_SSE_KMS_KEY_ID",[438,948,937],{"class":616},[438,950,951],{"class":940},"alias\u002Frelic\n",[438,953,954,957,959],{"class":440,"line":553},[438,955,956],{"class":933},"RELIC_OBJECT_STORAGE_STORAGE_CLASS",[438,958,937],{"class":616},[438,960,961],{"class":940},"INTELLIGENT_TIERING\n",[421,963,964],{},"Avoid classes with retrieval delays (Glacier Flexible Retrieval, Deep Archive).",[416,966,968],{"id":967},"settings","Settings",[428,970,972],{"className":924,"code":971,"language":926,"meta":433,"style":433},"RELIC_OBJECT_STORAGE_REGION=eu-central-1\nRELIC_OBJECT_STORAGE_ARTIFACTS_BUCKET=example-relic-artifacts\nRELIC_OBJECT_STORAGE_TEMPORARY_BUCKET=example-relic-temporary\n",[435,973,974,984,994],{"__ignoreMap":433},[438,975,976,979,981],{"class":440,"line":441},[438,977,978],{"class":933},"RELIC_OBJECT_STORAGE_REGION",[438,980,937],{"class":616},[438,982,983],{"class":940},"eu-central-1\n",[438,985,986,989,991],{"class":440,"line":472},[438,987,988],{"class":933},"RELIC_OBJECT_STORAGE_ARTIFACTS_BUCKET",[438,990,937],{"class":616},[438,992,993],{"class":940},"example-relic-artifacts\n",[438,995,996,999,1001],{"class":440,"line":553},[438,997,998],{"class":933},"RELIC_OBJECT_STORAGE_TEMPORARY_BUCKET",[438,1000,937],{"class":616},[438,1002,1003],{"class":940},"example-relic-temporary\n",[421,1005,1006,1007,1010],{},"Leave ",[435,1008,1009],{},"RELIC_OBJECT_STORAGE_ENDPOINT"," empty. The region must match the buckets'\nregion.",[421,1012,1013],{},"Helm, with IRSA:",[428,1015,1019],{"className":1016,"code":1017,"language":1018,"meta":433,"style":433},"language-yaml shiki shiki-themes material-theme-lighter github-light-default github-dark-default","seaweedfs:\n  enabled: false\nserviceAccount:\n  annotations:\n    eks.amazonaws.com\u002Frole-arn: arn:aws:iam::\u003Caccount>:role\u002Frelic\nobjectStorage:\n  endpoint: \"\"\n  region: eu-central-1\n  defaultCredentials: true\n  artifactsBucket: example-relic-artifacts\n  temporaryBucket: example-relic-temporary\n","yaml",[435,1020,1021,1030,1041,1048,1055,1065,1072,1082,1092,1102,1112],{"__ignoreMap":433},[438,1022,1023,1027],{"class":440,"line":441},[438,1024,1026],{"class":1025},"smKOL","seaweedfs",[438,1028,1029],{"class":616},":\n",[438,1031,1032,1035,1037],{"class":440,"line":472},[438,1033,1034],{"class":1025},"  enabled",[438,1036,633],{"class":616},[438,1038,1040],{"class":1039},"sH4kE"," false\n",[438,1042,1043,1046],{"class":440,"line":553},[438,1044,1045],{"class":1025},"serviceAccount",[438,1047,1029],{"class":616},[438,1049,1050,1053],{"class":440,"line":661},[438,1051,1052],{"class":1025},"  annotations",[438,1054,1029],{"class":616},[438,1056,1057,1060,1062],{"class":440,"line":667},[438,1058,1059],{"class":1025},"    eks.amazonaws.com\u002Frole-arn",[438,1061,633],{"class":616},[438,1063,1064],{"class":448}," arn:aws:iam::\u003Caccount>:role\u002Frelic\n",[438,1066,1067,1070],{"class":440,"line":690},[438,1068,1069],{"class":1025},"objectStorage",[438,1071,1029],{"class":616},[438,1073,1074,1077,1079],{"class":440,"line":715},[438,1075,1076],{"class":1025},"  endpoint",[438,1078,633],{"class":616},[438,1080,1081],{"class":546}," \"\"\n",[438,1083,1084,1087,1089],{"class":440,"line":749},[438,1085,1086],{"class":1025},"  region",[438,1088,633],{"class":616},[438,1090,1091],{"class":448}," eu-central-1\n",[438,1093,1094,1097,1099],{"class":440,"line":755},[438,1095,1096],{"class":1025},"  defaultCredentials",[438,1098,633],{"class":616},[438,1100,1101],{"class":1039}," true\n",[438,1103,1104,1107,1109],{"class":440,"line":760},[438,1105,1106],{"class":1025},"  artifactsBucket",[438,1108,633],{"class":616},[438,1110,1111],{"class":448}," example-relic-artifacts\n",[438,1113,1114,1117,1119],{"class":440,"line":779},[438,1115,1116],{"class":1025},"  temporaryBucket",[438,1118,633],{"class":616},[438,1120,1121],{"class":448}," example-relic-temporary\n",[421,1123,1124,1125,1128,1129,1132,1133,1136,1137,1140],{},"With a static key pair, the chart requires the endpoint: leave out\n",[435,1126,1127],{},"defaultCredentials",", set ",[435,1130,1131],{},"objectStorage.endpoint"," to\n",[435,1134,1135],{},"https:\u002F\u002Fs3.eu-central-1.amazonaws.com",", and put the keys in the Secret (see\n",[1138,1139,85],"a",{"href":86},").",[416,1142,1144],{"id":1143},"costs-on-aws","Costs on AWS",[421,1146,1147,1148,1151],{},"Every download is a ",[435,1149,1150],{},"GetObject",", and egress and requests cost money. The daily\nstorage check also lists the artifacts bucket and reads up to 10 GiB. Run Relic\nin the buckets' region, and consider a VPC gateway endpoint for S3 to skip the\nNAT gateway.",[1153,1154,1155],"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 pre.shiki code .s3oUJ, html code.shiki .s3oUJ{--shiki-light:#90A4AE;--shiki-default:#CF222E;--shiki-dark:#FF7B72}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 .sX5mu, html code.shiki .sX5mu{--shiki-light:#39ADB5;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sWneD, html code.shiki .sWneD{--shiki-light:#39ADB5;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sK3rv, html code.shiki .sK3rv{--shiki-light:#39ADB5;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .s10kg, html code.shiki .s10kg{--shiki-light:#9C3EDA;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .st6vK, html code.shiki .st6vK{--shiki-light:#E2931D;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .s03VG, html code.shiki .s03VG{--shiki-light:#E53935;--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 .smKOL, html code.shiki .smKOL{--shiki-light:#E53935;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sH4kE, html code.shiki .sH4kE{--shiki-light:#FF5370;--shiki-default:#0550AE;--shiki-dark:#79C0FF}",{"title":433,"searchDepth":472,"depth":472,"links":1157},[1158,1159,1160,1161,1162,1163,1164],{"id":418,"depth":472,"text":419},{"id":514,"depth":472,"text":515},{"id":600,"depth":472,"text":601},{"id":898,"depth":472,"text":899},{"id":917,"depth":472,"text":918},{"id":967,"depth":472,"text":968},{"id":1143,"depth":472,"text":1144},"Buckets, lifecycle rules, the IAM policy, credentials, encryption and settings for Amazon S3.","md",null,{},true,{"title":135,"description":1165},"x1wtcebd4eC7-VXw5j2bqTxBJBl18g8JfcOlHmoxLxY",[1173,1175],{"title":131,"path":132,"stem":133,"description":1174,"children":-1},"The recommended self-hosted store, how to set it up, and the connection settings.",{"title":139,"path":140,"stem":141,"description":1176,"children":-1},"Cloudflare R2 as object storage, through its S3-compatible API.",1793857349706]