SELF-HOSTING

Your circle. Your hardware. Free forever.

Run the BanditKin relay yourself, on a machine you control. Your circle keeps end-to-end encrypted location sharing and messaging, plus signed public map and routing data — and no BanditKin cloud subscription, ever.

Free foreverAGPL-3.0-onlySelf-Host Server 2026.08.1linux/amd64 + arm64

You provide the hardware, electricity, Internet connection, storage, and any domain, VPN, or reverse proxy you choose. BanditKin provides the software.

WHAT CHANGES, WHAT DOESN'T

The relay you run still can't read your circle

Self-hosting doesn't change how BanditKin protects you. It changes who owns the box.

Your phone encrypts circle information end to end before it leaves the device. The self-hosted relay stores and forwards opaque encrypted records. It does not receive your circle encryption key or readable location history.

The key never leaves your devices

Your circle key is created on your device and shared in person by QR scan. No relay — ours or yours — ever receives it.

Ciphertext in, ciphertext out

The relay's job is to hold and pass along opaque encrypted records, so members who were offline still get them later.

The metadata stays home too

Self-hosting keeps connection metadata on hardware you control rather than on a BanditKin server. See exactly what a relay can and can't see.

BEFORE YOU START

What you bring, what we ship

Self-hosting is free, but it isn't free of work. Here's the honest split.

You provide

The hardware, the electricity, the Internet connection and the storage. Docker. And an HTTPS address — plus any domain, VPN, or reverse proxy you choose in order to get one. You run the box, and you keep the backups.

BanditKin provides

The relay server, the installer, the updater and the self-host web interface — plus publisher-signed public map, routing, search, road, U-turn and reviewed ALPR data, delivered automatically. Free forever, with no subscription. Compare with cloud circles.

DOWNLOAD

Start here: the online installer

Recommended for most people. The download is small; the installer fetches the exact signed container during setup.

Online installer

BanditKin-SelfHost-Online-29680293.zip

1.3 MiB · Windows, macOS, Linux, Raspberry Pi, and compatible NAS and hypervisor installs. During installation it anonymously pulls the exact signed container image from the public GitHub Container Registry. It does not pull source from any private repository.

SHA-256

fd152dc0834da05ce369a98dcdbc75845f413b4994809a2cdd34c12c10419268

Signed container image

ghcr.io/auditurbo2/banditkin-selfhost@sha256:fcd0175fa487a55f29ad269b942a67656086a35a22b2e7c0ab2070bc7e471074

OFFLINE AND ADVANCED

Slow link or avoiding a registry pull? Take the whole image.

Each Offline package includes the complete BanditKin container image, so installation does not require a GHCR registry pull. It is not an air-gapped package: the first selected public-map and routing-data synchronization, and later public-data updates, still require outbound HTTPS access to maps.banditkin.com.

Intel / AMD offline package

BanditKin-SelfHost-Offline-amd64-29680293.zip

24.1 MiB · For Intel and AMD Windows PCs, Linux servers, and most x86-64 NAS devices.

SHA-256

d5a5f847cc6df7234a373dbbf9a8450fe3a6fd91963787db5811ed37f86ed296

ARM64 offline package

BanditKin-SelfHost-Offline-arm64-29680293.zip

24.4 MiB · For 64-bit Raspberry Pi, ARM64 NAS devices, Apple Silicon, and other ARM64 systems.

SHA-256

6fdd8b7c45b295a5a362bd072f872a2de1141d72629c58dcfcfa3e75a0a900a4

32-bit ARM systems are not supported. If you aren't sure which package you need, use the online installer above — it selects the right image for your machine automatically.

HOW IT WORKS

Six steps from download to paired

Docker runs the BanditKin containers. The included doctor.sh and doctor.ps1 scripts are read-only diagnostics that check the installation; they do not install, reconfigure, or delete anything. An HTTPS address is required for phones using the Google Play app.

STEP 1

Download the installer

Download and unzip the online installer above. Use an offline package only when the server cannot reach the Internet during setup. Keep the extracted release folder and its .env file for later updates or region changes.

STEP 2

Install Docker

Docker Desktop on Windows and macOS, Docker Engine on Linux, or the built-in container manager on Synology and QNAP.

STEP 3

Run it and pick your regions

From the extracted folder, run Windows: .\install.ps1 -Regions "connecticut,massachusetts". Linux/macOS: chmod +x install.sh doctor.sh, then ./install.sh connecticut,massachusetts. Replace the examples with the complete comma-separated region list you want. The catalog may display every U.S. region, but only your selected regions plus required shared routing files are downloaded. A first sync can be several GB.

STEP 4

Give the relay an HTTPS address

Tailscale with HTTPS and MagicDNS, or a domain you control behind a maintained HTTPS reverse proxy.

STEP 5

Pair the BanditKin app

On the relay computer, open http://127.0.0.1:<your-port>/app (or the relay HTTPS /app page). Under “First device on this self-host?”, enter the relay address the phone can reach and the BANDITKIN_ADMIN_TOKEN value from .env, create the QR code, then scan it in BanditKin. Later devices use the normal circle invite.

STEP 6

Let it keep itself current

Leave Docker running while the updater retrieves signed data. To add or remove regions later, rerun the same installer from the same extracted release folder with the complete desired list. This preserves .env, the operator credential, and circle data. Run ./doctor.sh or .\doctor.ps1 in another terminal to check progress.

ALREADY RUNNING A RELAY?

Updating from an earlier build

Self-Host Server 2026.08.1 fixes self-hosted member pins that could jump backward or “leapfrog” when live and delayed encrypted location uploads arrived out of order. Delayed fixes remain available in encrypted history, but can no longer replace a newer live member location or roll live battery and stationary status backward. The same rule is enforced for both file-backed and PostgreSQL storage. Existing relay data and .env files remain compatible.

STEP 1

Extract into a new folder

Unpack Self-Host Server 2026.08.1 into a new protected folder. Don't extract it over the release you're currently running.

STEP 2

Copy your existing .env

Copy the running release's exact private .env file into the new folder.

STEP 3

Run the updater

Run update.ps1 on Windows, or update.sh on Linux and macOS.

Do not delete or regenerate your .env, and do not remove the banditkin_circle-data volume.

Recent Android improvements — client 0.2.43 (Build 295), delivered through the app's own in-app updater. Both reach BanditKin-hosted and self-hosted Android clients: they arrive with the app, not as a server package, container, or separate download.

Rerouting continues forward

Anonymous Online rerouting now uses the vehicle's current direction and a short maneuver-avoidance distance when calculating a new route. This helps the route continue forward from the road being traveled instead of pulling the driver back toward the old route. It is live for both BanditKin-hosted and self-hosted Android clients, because both use the same Anonymous Online routing service.

Steadier location if Play Services drops out

Improved location reliability when Google Play Services stops delivering location updates. BanditKin can temporarily use Android's alternate location source, avoids waking GPS during normal device idle, and automatically returns to the usual location source after it recovers.

SUPPORTED SYSTEMS

Where the relay runs

Anything that runs Docker on 64-bit Intel, AMD, or ARM hardware. The guide has step-by-step instructions for each of these.

Windows and macOS

With Docker Desktop, including Apple Silicon Macs.

Linux servers

Docker Engine on any modern 64-bit distribution.

Raspberry Pi

64-bit Raspberry Pi OS on Pi hardware that supports it.

Synology DSM 7

Through Container Manager, on x86-64 and ARM64 models.

QNAP

Through Container Station.

Unraid

For a supported Unraid deployment, run a small Debian or Ubuntu virtual machine and follow the Linux installation instructions. A community Compose manager is an advanced, unsupported alternative that is not maintained by BanditKin or Unraid.

Proxmox and hypervisors

In a VM or container guest running Docker.

Not supported

32-bit ARM systems. Older Pi models and 32-bit operating systems can't run the image.

HOSTING AND RETENTION

Who runs the box, and what they can see

Self-hosting hands you one real decision: whose hardware your relay lives on.

The relay runs wherever you choose — a private home server, a Raspberry Pi or NAS, a virtual machine, or a rented VPS. BanditKin does not choose or operate that host. A normal VPS is a private virtual server running on shared physical hardware; dedicated physical hosting is only used if you specifically purchase or supply it.

Your circle's content is encrypted end to end on the phones, so the relay only ever holds encrypted records. Current defaults for how long it holds them:

24 hours

Persisted location history.

30 days

Messages, voice clips and events.

90 days

Support feedback.

Until you remove it

Device and circle configuration.

Backups, server logs, disk encryption and infrastructure metadata are controlled by you and your hosting provider, and may carry their own separate retention policies. On a rented VPS, the provider may see account, IP and traffic metadata, plus the encrypted bytes — but not your decrypted circle content. For maximum infrastructure privacy, run the relay on hardware you personally control, with encrypted storage and encrypted backups.

HTTPS IS REQUIRED

Give your relay a real HTTPS address

The BanditKin app requires an HTTPS relay address. There are two well-trodden ways to get one.

Tailscale, if you want the short path

Tailscale with HTTPS and MagicDNS gives the relay a valid certificate and keeps it reachable from your phone without opening a port on your router.

Your own domain, if you'd rather

Point a domain you control at the relay and terminate HTTPS with Caddy, Nginx Proxy Manager, or another maintained HTTPS reverse proxy.

Do not expose unencrypted port 8090 directly to the Internet. Docker and HTTPS setup are genuinely required here — we'd rather tell you that up front than promise a one-click install and leave you on an open port.

SIGNED PUBLIC DATA

Maps that update themselves, verifiably

The installed updater checks BanditKin's publisher-signed catalog roughly every six hours and retrieves only the regions you selected.

What it verifies

The Ed25519 catalog signature, the generation number, the file size, the SHA-256 digest, and the expected data format — before anything is installed.

What it can update

Maps, address search and geocoding, road information, offline routing grids, U-turn information, and reviewed public ALPR snapshots.

What it can't touch

The updater has no access to your private circle-data volume. An interrupted or invalid update leaves the last known-good generation active.

Live catalog: maps.banditkin.com/v1/catalog.json · current public-data generation 2026080202. The catalog digest is listed in the release information below.

DOCUMENTATION

The full installation guide

Covers Windows and macOS with Docker Desktop, Linux, Raspberry Pi, Synology DSM 7 Container Manager, QNAP Container Station, Unraid, Proxmox and other hypervisors, online and offline installation, HTTPS and remote access, pairing BanditKin, automatic public-data updates, backup and recovery, container updates, and troubleshooting.

HTML guide

0.7 MiB · the complete guide as a single self-contained HTML file.

Download the PDF

0.9 MiB · print it, or keep it on the machine you're setting up.

Markdown

Plain-text source of the guide, for terminals and repositories.

All three formats are covered by SHA256SUMS.txt, along with every other file in the release — see Verify your download below.

SOURCE AND LICENSING

The self-host release is licensed AGPL-3.0-only

Corresponding source ships alongside every release, in the same folder as the installers.

The BanditKin self-host server, installer, updater, and included self-host web interface are licensed under AGPL-3.0-only. BanditKin trademarks, the Android app, managed hosted service, infrastructure, signing keys, production configuration, and private data pipeline are not included in the self-host source release.

Corresponding source

BanditKin-SelfHost-Source-29680293.zip

360.4 KiB (369,068 bytes) · the server, installer, updater, and self-host web interface as built for this release.

SHA-256

845e8735c093625a0eef5d6a727e3d1d2aa38ddaaa655966e2da3f4d86dc8ec6

VERIFY YOUR DOWNLOAD

Don't trust the download. Check it.

Every release payload is covered by SHA256SUMS.txt and ships with its own Sigstore bundle. The two signed control files close the verification chain. Here’s how to confirm you got exactly what we published.

STEP 1

Compare the checksum

Hash the file you downloaded and compare it against SHA256SUMS.txt — and against the digests printed on this page.

STEP 2

Verify the signature

Every file has a matching .sigstore.json bundle. Verify it with cosign against the identity and issuer below.

STEP 3

Read the bill of materials

The SPDX SBOMs list every component inside each architecture's image; the vulnerability summaries record what scanners flagged, and why.

Signature identity

Expected payload identity

https://github.com/auditurbo2/banditkin-app/.github/workflows/sign-banditkin-release.yml@refs/tags/banditkin-selfhost-29680293-policy-payload

Expected issuer

https://token.actions.githubusercontent.com

Verify a payload file (swap in any payload filename)

cosign verify-blob --bundle BanditKin-SelfHost-Online-29680293.zip.sigstore.json --certificate-identity "https://github.com/auditurbo2/banditkin-app/.github/workflows/sign-banditkin-release.yml@refs/tags/banditkin-selfhost-29680293-policy-payload" --certificate-oidc-issuer "https://token.actions.githubusercontent.com" BanditKin-SelfHost-Online-29680293.zip

Release information

Compatible Android app

Android client 0.2.43 (Build 295) — available through the in-app updater

Server release

2026.08.1

Platforms

linux/amd64 and linux/arm64

Container digest

sha256:fcd0175fa487a55f29ad269b942a67656086a35a22b2e7c0ab2070bc7e471074

Public-data generation

2026080202

Public-data catalog SHA-256

365d28b970522135aafea75e2526db364bde20cf3d7a0a117cbb65e350099283

Container vulnerability summaries for this release report 0 critical findings and 3 high scanner matches. All three are documented as not affected — the implicated Python modules and execution paths are not used by BanditKin. The raw scanner output and the policy that classifies them are both below, so you can check that call yourself.

Payload files use the payload identity above. SHA256SUMS.txt and release-manifest.json use this control identity: https://github.com/auditurbo2/banditkin-app/.github/workflows/sign-banditkin-release.yml@refs/tags/banditkin-selfhost-29680293-policy-control. Every public file has a matching Sigstore bundle; SHA256SUMS.txt covers the payloads, their bundles, and release-manifest.json.

FAQ

Self-hosting questions

Is self-hosting really free forever?

Yes. Self-hosting the BanditKin relay is free forever — no subscription, and no device cap imposed by us. Cloud circles are the paid option: a 30-day full free trial with no card and no account, then $4.99/month, $39.99/year, or a one-time $99.99 for lifetime access, one plan for the whole circle. See pricing.

Do I still need the BanditKin app?

Yes. The relay is the server half. For the first phone, use the relay computer’s /app page to create the self-host QR code with the operator token, then scan it in BanditKin. Add later phones with the normal circle invite.

Can BanditKin read anything on my relay?

No. Your phone encrypts circle information end to end before it leaves the device. The self-hosted relay stores and forwards opaque encrypted records; it does not receive your circle encryption key or readable location history.

What hardware do I need?

Anything 64-bit that runs Docker — a spare PC, a Linux server or VPS, a modern NAS, or a 64-bit Raspberry Pi. You provide the hardware, electricity, Internet connection and storage; 32-bit ARM systems are not supported.

If I rent a VPS, what can the hosting provider see?

Account, IP and traffic metadata, plus the encrypted bytes on disk — but not your decrypted circle content, because the circle key never leaves your phones. A normal VPS is a private virtual server on shared physical hardware; dedicated physical hosting applies only if you specifically purchase or supply it. Backups, server logs and disk encryption are controlled by you and your provider and may carry their own retention. For maximum infrastructure privacy, run the relay on hardware you personally control, with encrypted storage and encrypted backups.

Why does the relay need HTTPS?

The Google Play app requires a trusted HTTPS relay address. Tailscale with HTTPS/MagicDNS or your own domain behind a maintained reverse proxy works. The public / and /health routes expose only minimal service status; /app, /map, and /admin are static shells with no credentials or circle data, and their API calls remain authenticated. Keep /health reachable to phones. A VPN-only relay may keep every route private; do not apply a blanket LAN-only rule unless every phone always uses that VPN. Never expose unencrypted port 8090 directly to the Internet.

Is BanditKin open source?

Not as a whole, and we won't claim otherwise. The self-host release is licensed AGPL-3.0-only and ships with its corresponding source. The Android app, managed hosted service, infrastructure, signing keys, production configuration and private data pipeline are not included in that release. Here's what is public, and what isn't.

Do I get map and camera data on my own relay?

Yes. The updater mirrors signed map, search, road, routing, U-turn, and reviewed public ALPR files only for the regions selected by the operator. A statewide map is intentionally coarse for through-travel and major roads; save the counties you need for detailed local streets, search, and navigation. In Anonymous Online mode, live traffic affects active routes and congestion is shown on the route line, not as a general traffic overlay.

What happens if an update fails partway through?

Nothing breaks. An interrupted or invalid update leaves the last known-good generation active, and the updater has no access to your private circle-data volume.

Run it yourself.

Download the installer, follow the guide, and your circle's relay lives on hardware you control — free, forever.

Stuck? The guide's troubleshooting section covers the common cases first. If it doesn't, write to privacy@banditkin.com.