---
title: "Deploy PostHog Proxy"
description: "Allows you to send events to PostHog Cloud using your own domain."
category: "Analytics"
url: https://railway.com/deploy/qHvw-4
---

# Deploy PostHog Proxy

Allows you to send events to PostHog Cloud using your own domain.

**[Deploy PostHog Proxy on Railway](https://railway.com/template/qHvw-4)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/qHvw-4/manifest.json

- **Creator:** Paulo
- **Category:** Analytics
- **Total deploys:** 37

## Template content

### PostHog Proxy https://avatars.githubusercontent.com/u/60330232

- **Source:** paulocsanz/posthog-proxy
- **Public domain:** Yes

## Documentation

# Deploy and Host

PostHog Reverse Proxy

https://posthog.com/docs/advanced/proxy

## Why Deploy

A reverse proxy allows you to send events to PostHog Cloud using your own domain.

This means that events are less likely to be intercepted by tracking blockers. You'll be able to capture more usage data without having to fully self-host PostHog.

## About Hosting

It's recommend that you associate this service to a custom domain. If your frontend service is yourdomain.com, make this service e.yourdomain.com.

## Common Use Cases

Setting up a reverse proxy means setting up a service to redirect requests from a subdomain you choose (like e.yourdomain.com) to PostHog. It is best practice to use a subdomain that does not include posthog, analytics, tracking, or other similar words. 

You then use this subdomain as your api_host in the initialization of PostHog instead of us.i.posthog.com or eu.i.posthog.com.

```
posthog.init('phc_YOUR_TOKEN', {
  api_host: 'https://e.yourdomain.com'
})
```

## Environment Variables

All needed environment variables are set by default. But you may want to customize it.

To use PostHog europe, update `POSTHOG_HOST` to `eu.i.posthog.com`.

`SERVER_NAME` is set to `${{RAILWAY_PUBLIC_DOMAIN}}` and shouldn't be changed

`PORT` is the port used by the domain, which Railway will contact the service, by default it's 80 but it pretty much doesn't matter, no need to change.

## Dependencies for

This template uses Nginx to redirect the events

### Deployment Dependencies

https://posthog.com/docs/advanced/proxy



## Similar templates

- [Typesense vs Meilisearch](https://railway.com/deploy/typesense-vs-meilisearch) — self-hosted Typesense vs Meilisearch
- [Betterlytics](https://railway.com/deploy/betterlytics) — Betterlytics is a cookieless analytics platform GDPR-compliant.
- [Finance Tracker](https://railway.com/deploy/finance-tracker-1) — Private multi-user household finance ledger with budgets and CSV import.

Open this page in a browser: https://railway.com/deploy/qHvw-4
