DeltaGlider Proxy documentation
DeltaGlider is an S3 proxy that sits between your applications and S3-compatible storage. It stores similar files as small binary diffs of each other instead of full copies, and you don't need to change your client code. The proxy is source-available (BUSL-1.1) and free up to 15 TB.
Press ⌘K to search.
Using an AI assistant? Give it
llms.txt (an index of every page) or
llms-full.txt (all pages in one file).
Every page is also plain markdown at its URL plus .md, for example
/docs/reference/configuration.md.
Recommended starting points
Start here
What this is, plus guided lessons from zero to a working proxy.
- Your first delta savings Run the proxy, upload two firmware versions, and see the second one stored as a small…
- Securing your first proxy Replace open access with real credentials and a least-privilege IAM user.
- Your first Helm deployment on kind Install the Helm chart on a local kind cluster and prove it stores and returns a file.
- Common questions An index, not an FAQ: each question links straight to the page that answers it properly.
Guides: deploy & operate
Recipes for installing, upgrading, watching, and debugging a running proxy.
- How to take a proxy to production This guide shows you how to take a working DeltaGlider Proxy from "runs on my laptop" to…
- How to deploy with Docker Compose This guide shows you how to run DeltaGlider Proxy with Docker Compose using a…
- How to deploy on Kubernetes with Helm This guide shows you how to run DeltaGlider Proxy in production on Kubernetes with the…
- How to scale out with the Kubernetes operator This guide shows you how to run DeltaGlider Proxy on Kubernetes with more than one pod…
- How to serve TLS This guide shows you how to put HTTPS in front of DeltaGlider Proxy. You can terminate…
- How to upgrade to 2.0 This guide takes a proxy that runs 1.19 to 2.0.0. Version 2.0.0 is a major release…
- How to upgrade the proxy This guide shows you how to move between DeltaGlider Proxy versions safely, including…
- How to back up and restore This guide shows you how to back up the state of DeltaGlider Proxy (config, IAM, and…
- How to run multiple instances (HA) This guide shows you how to run more than one DeltaGlider Proxy instance against the…
- How to rotate the config DB key This guide shows you how to move the encrypted config database (deltaglider_config.db)…
- How to use a backend without conditional writes Some backends, such as Backblaze B2, do not support conditional writes…
- How to diagnose a backend that isn't serving Follow this when a bucket answers 503 ServiceUnavailable, the Backends panel shows a red…
- How to monitor with Prometheus and Grafana This guide shows you how to scrape DeltaGlider Proxy with Prometheus, build the most…
- How to view live logs in the admin GUI This guide shows you how to tail and filter the proxy's operational logs from the admin…
- How to trace and audit requests This guide shows you how to find out why the proxy allowed or denied a request. You test…
- Troubleshooting This guide maps the symptoms you'll see in the wild to their fixes. If your symptom…
Guides: storage & data
How to route, migrate, compress, replicate, expire, and encrypt your data.
- How to route a bucket to a different backend This guide shows you how to serve a bucket from a specific storage backend, and how to…
- How to migrate an existing S3 bucket into the proxy This guide shows you how to put an existing S3 bucket, with years of objects already in…
- How to move a bucket to another backend This guide shows you how to relocate the data of a bucket from one backend to another…
- How to set per-bucket compression and quotas This guide shows you how to turn delta compression off for a bucket, how to make the…
- How to replicate a bucket to another backend This guide shows you how to mirror a bucket to a second backend with a replication rule…
- How to expire and archive objects This guide shows you how to delete objects past a certain age with a lifecycle rule, or…
- How to encrypt data at rest This guide shows you how to turn on at-rest encryption on a storage backend. The…
- How to encrypt one bucket on a shared backend This guide shows you how to encrypt one bucket with its own key while the other buckets…
- How to rotate or change encryption keys This guide shows you how to change the encryption key or the encryption mode of a…
- How to send events to webhooks and Slack This guide shows you how to deliver object events (created, deleted, copied, replicated…
Guides: access & security
How to create IAM users, set up SSO, gate requests, and publish public folders.
- How to create IAM users and groups Give every client its own scoped credential. The example is a CI pipeline (ci-uploader)…
- How to restrict access by IP and prefix Add conditions to IAM rules so a leaked credential is useless outside your network, and…
- How to set up OAuth/OIDC single sign-on Let people sign in to the admin UI with the identity provider they already have, and…
- How to manage IAM as code (GitOps) Make YAML the source of truth for users, groups, and OAuth providers. You review changes…
- How to gate requests before authentication Reject unwanted traffic, such as requests from bad IPs, anonymous writes, or all…
- How to publish a folder publicly Serve one prefix to anyone, for example installers that people download with curl and no…
Reference
Facts: every field, endpoint, metric, and limit. No opinions.
- Configuration You configure DeltaGlider Proxy with a YAML file, with environment variables (DGP_*…
- S3 API compatibility DeltaGlider speaks the S3 wire protocol through the s3s framework, so standard tools…
- Command-line tools The deltaglider_proxy binary is both the server and its CLI. With no subcommand it…
- Admin API Every endpoint under /_/api/admin/*, grouped by purpose.
- Authentication and access Reference for the proxy's authentication modes, the bootstrap password, SigV4…
- IAM permissions and conditions Reference for the ABAC permission model: rule shape, actions, resource patterns…
- Rate limits and concurrency This page lists the limits that protect the proxy against overload, abuse, and resource…
- Capacity planning and hardware sizing This page describes the resource profile of the proxy and how to size CPU, memory, and…
- Encryption reference Encryption at rest is configured per backend, and a bucket can replace the encryption of…
- Jobs The proxy has one API surface for all the work that runs in the background: replication…
- Bucket replication Replication copies objects from a source to a destination through the engine, so…
- Lifecycle rules Lifecycle rules act on engine-visible objects. A rule deletes old objects by age, keeps…
- Event log After each successful S3 mutation, the proxy writes a durable object event to the…
- Declarative IAM GitOps-shaped IAM: YAML is the source of truth; the encrypted config DB is reconciled…
- Metrics Every Prometheus metric the proxy exposes, with labels, types, and bucket boundaries.
Concepts
How it works and why — readable away from the keyboard.
- How delta compression works Why storing every version of a binary is mostly waste, and what the proxy does about it.
- Two ways to configure DeltaGlider Why the admin GUI and the YAML file are two editors of one configuration, where…
- The compute tax Delta compression and encryption both cost CPU time, and the first question an engineer…
- How migration works What happens when you move an existing bucket onto the proxy, and the questions to ask…
- About multi-backend routing Why the proxy is a control plane over your storage, not another place your bytes live.
- About authentication and access control DeltaGlider Proxy sits between every client and every byte of stored data, so every…
- About encryption at rest Encryption at rest in DeltaGlider Proxy is a per-backend decision with four modes: none…
- About the encryption threat model This page describes what proxy-side encryption (aes256-gcm-proxy) protects, and what it…
- About jobs, write gates, and durability DeltaGlider Proxy runs five kinds of background work (replication rules, lifecycle…
- DeltaGlider compression vs. S3 Object Versioning Two different things that both use the word "version", and why DeltaGlider does only one…
- The DeltaGlider license DeltaGlider Proxy is published under the Business Source License 1.1 (BUSL-1.1). This…
Releases
What changed in every published version, newest first.