Your analytics,
your domain

A self-hosted Nginx reverse proxy that routes analytics requests through your infrastructure. Bypass adblockers with a single Docker container.

docker run -d -p 8765:80 rajnandan1/saki
Why Saki

Analytics that actually
reach your dashboard

Bypass adblockers

Adblockers target known analytics domains. Requests through your own domain pass through cleanly, giving you the full picture of your traffic.

Full header forwarding

User-Agent, cookies, IP address, language — every client detail is forwarded so analytics SDKs work exactly as they would directly.

Add any service

Drop in a new Nginx location block for any analytics or tracking service. Facebook Pixel, Hotjar, Segment — if it has a domain, Saki can proxy it.

Works with the tools
you already use

Each route has a short default path to avoid adblockers. You can change any route by setting its environment variable in your deployment.

Google Tag Manager
/tg/
www.googletagmanager.com
ROUTE_GTM
Google Analytics
/an/
www.google-analytics.com
ROUTE_GA
Amplitude CDN
/acdn/
cdn.amplitude.com
ROUTE_AMP_CDN
Amplitude API
/aapi/
api2.amplitude.com
ROUTE_AMP_API
Mixpanel CDN
/mxc/
cdn.mxpnl.com
ROUTE_MIX_CDN
Mixpanel API
/mxa/
api.mixpanel.com
ROUTE_MIX_API
Microsoft Clarity
/cla/
www.clarity.ms
ROUTE_CLARITY
PostHog JS
/phj/
us-assets.i.posthog.com
ROUTE_PH_JS
PostHog API
/pha/
us.i.posthog.com
ROUTE_PH_API
Get Started

Up and running
in under a minute

1

Run the container

Pull from Docker Hub and start with a single command. Saki listens on port 80 inside the container.

2

Point your scripts

Replace analytics domains in your website with your Saki proxy URL. That's it — no SDK changes needed.

3

Deploy to production

Put it behind your own subdomain with HTTPS. Works on any platform — Railway, Render, Fly.io, a VPS, or bare metal.

docker-compose.yml
services:
  saki:
    image: rajnandan1/saki:latest
    container_name: saki
    ports:
      - "8765:80"
    restart: unless-stopped
terminal
# verify it works
$ curl -s http://localhost:8765/health
OK

Swap one domain,
keep everything else

Replace the analytics domain in your script tags with your Saki proxy URL. No SDK changes, no config rewrites — just a different hostname.

Google Tag Manager

www.googletagmanager.com/gtag/js your-domain.com/tg/script.js

Amplitude

cdn.amplitude.com/libs/... your-domain.com/acdn/libs/...

PostHog

us.i.posthog.com your-domain.com/pha
your-website.html
<!-- Before -->
<script src="https://www.googletagmanager.com
  /gtag/js?id=G-XXXXXXXX"></script>

<!-- After -->
<script src="https://your-domain.com
  /tg/script.js?id=G-XXXXXXXX"></script>