DocsMaple Proxy

Run with Docker or a binary

Run Maple Proxy independently with Docker or a release binary. Verify downloads, connect with your API key, and configure ports, browser access and timeouts.

Use a dedicated proxy when your tools run on a server or without the desktop app. Keep it on the same machine as your application where possible: the application-to-proxy connection is plaintext.

Docker

The image supports AMD64 and ARM64. Publish its port only on loopback:

Shell
docker run --rm -p 127.0.0.1:8080:8080 \
  ghcr.io/mapleprivacylabs/maple-proxy:latest

The image enables CORS, so each request must send its own API key. It does not use MAPLE_API_KEY while CORS is on. It includes a local health check and connects to Maple’s production service.

For a persistent deployment, pin the image tag or digest you have tested. Only for a private deployment where every caller is trusted, add -e MAPLE_ENABLE_CORS=false -e MAPLE_API_KEY after exporting your key. See authentication.

Binary

Download the archive for your platform and the checksum file. These links use Maple release v3.4.3 (proxy 0.4.1).

PlatformDownload
Linux x86_64tar.gz
Linux ARM64tar.gz
macOS Apple silicontar.gz
Windows x86_64zip

Verify and extract the archive before running it. Linux x86_64:

Shell
curl -LO https://github.com/MaplePrivacyLabs/Maple/releases/download/v3.4.3/maple-proxy-linux-x86_64.tar.gz
curl -LO https://github.com/MaplePrivacyLabs/Maple/releases/download/v3.4.3/maple-proxy-release-final.sha256
sha256sum --check --ignore-missing maple-proxy-release-final.sha256
tar -xzf maple-proxy-linux-x86_64.tar.gz
export MAPLE_API_KEY='your-real-maple-api-key'
./maple-proxy

On macOS, verify with shasum -a 256 --check --ignore-missing maple-proxy-release-final.sha256. This binary is not notarized; after verifying and extracting it, remove the download quarantine with xattr -d com.apple.quarantine ./maple-proxy if macOS blocks it. On Windows, compare Get-FileHash <archive> -Algorithm SHA256 with the checksum file, extract the ZIP, set $env:MAPLE_API_KEY, and run ./maple-proxy.exe.

The binary defaults to 127.0.0.1:8080, with CORS off. It can use the exported key for requests without an Authorization header.

Connect your client

Create a Maple key and export it in the shell making requests. Starting the desktop app or a container does not set this shell variable:

Shell
export MAPLE_API_KEY='your-real-maple-api-key'
curl http://127.0.0.1:8080/v1/models \
  -H "Authorization: Bearer $MAPLE_API_KEY"

This checks the connection and credentials, and returns the API catalog; it does not prove model access or successful inference. Use http://127.0.0.1:8080/v1 as the client base URL, your real key, and a model suited to your task. See the API reference.

Settings

Environment variables configure the standalone proxy; command-line flags take priority. Run maple-proxy --help for all options in your version.

SettingDefaultUse
MAPLE_HOST, MAPLE_PORT127.0.0.1, 8080Numeric listen address and port. Docker listens on 0.0.0.0 inside the container; control exposure with the published port.
MAPLE_ENABLE_CORSOff; on in DockerBrowser response access. Requires per-request keys when on.
MAPLE_API_KEYNoneSaved key for trusted callers when CORS is off.
MAPLE_REQUEST_TIMEOUT_SECS300Time before a response starts; also caps the full non-streaming response. Initial enclave verification has a separate timeout budget.
MAPLE_STREAM_IDLE_TIMEOUT_SECS300Maximum gap between response chunks. Streaming has no total-duration cap.
MAPLE_DEBUGfalseEnable request method/path debug logs when diagnosing a problem.

Both timeouts must be positive. A timeout after a response starts ends the body; do not assume retrying a request cannot run it twice.

Optionally keep MAPLE_CACHE_NAMESPACE_ROOT in your secrets manager to preserve cache continuity across restarts. Generate it once with openssl rand -base64 32; cache hits are not guaranteed. Keep it and API keys out of source control.

Last updated