---
title: "Deploy PDPP Core Node"
description: "Self-hosted PDPP Core node with console, AS/RS, and Postgres."
category: "AI/ML"
url: https://railway.com/deploy/pdpp-core-node
---

# Deploy PDPP Core Node

Self-hosted PDPP Core node with console, AS/RS, and Postgres.

**[Deploy PDPP Core Node on Railway](https://railway.com/template/pdpp-core-node)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/pdpp-core-node/manifest.json

- **Creator:** Tim Nunamaker's Projects
- **Category:** AI/ML

## Template content

### console

- **Image:** ghcr.io/vana-com/pdpp/web:sha-f45ba05
- **Health check:** /.well-known/oauth-authorization-server
- **Public domain:** Yes

### reference

- **Image:** ghcr.io/vana-com/pdpp/reference:sha-f45ba05
- **Health check:** /.well-known/oauth-authorization-server

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

## Documentation

# Deploy and Host

Deploy a self-hosted PDPP Core reference node on Railway.

## About Hosting

This template runs the open-source PDPP reference implementation in your Railway account. It creates one public operator console, one private Authorization Server / Resource Server service, and durable Postgres storage. It is not a hosted PDPP service operated by Vana or OpenDataLabs.

## Why Deploy

Use this when you want a personal PDPP Core node that can issue scoped grants and serve grant-scoped record queries over HTTPS. Browser-backed connectors are intentionally outside this Core template; they run through local collectors or explicit browser profiles.

## Common Use Cases

- Inspect and operate a personal PDPP reference instance.
- Test owner-gated dashboard access and OAuth / MCP grant flows.
- Query a small hand-imported record set over the public composed origin.
- Use the same Core topology before adding connector collection later.

## Dependencies for

PDPP Core needs a public HTTPS console, a private AS/RS service, and durable storage. This template uses pinned public GHCR images and Railway Postgres.

### Deployment Dependencies

- Railway account with capacity for two app services and one Postgres service.
- A strong PDPP_OWNER_PASSWORD set when Railway prompts for variables.
- The same PDPP_OWNER_PASSWORD value on both app services.
- PDPP_DATABASE_URL is wired to the Postgres service by Railway.

After deploy, open the console public domain and sign in as owner. To run the protocol smoke from a repo checkout:

```sh
node scripts/railway-mcp-query-smoke.mjs \
  --origin https:// \
  --owner-password "$PDPP_OWNER_PASSWORD"
```

## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/pdpp-core-node
