Self-hosted P2P infrastructure for communities to trade, govern, and communicate — without middlemen.
parahub.io — live instance · Docs · Mesh firmware
Platforms extract 15-30% from every transaction (Amazon, Upwork, Uber). Parahub replaces them with direct P2P infrastructure that communities self-host. No platform fees, no escrow, no data harvesting.
Trade — P2P marketplace, multilateral barter (2-7 party cycles via graph DB), P2P contracts with cryptographic audit trail, debt tracking with clearing
Govern — Liquid democracy with transitive delegation, participatory budgeting, Web of Trust identity (3+ verifications as Sybil defense)
Communicate — E2E encrypted messaging (Matrix/Synapse), video conferencing (Jitsi), email (Mailcow), git hosting (Gitea)
Navigate — Map with real-time presence, business directory, public transit schedules (GTFS/GTFS-RT), community events, carpool, geocoding
Secure — Client-side PGP (keys never leave the browser), non-custodial Lightning payments, OpenTimestamps audit anchoring, privacy by design
| Layer | Tech |
|---|---|
| Backend | Django 5 / Ninja, Python 3.12 |
| Frontend | Nuxt 4 (SSR), Vue 3 |
| Database | PostgreSQL 18 + PostGIS + TimescaleDB |
| Graph | Neo4j (barter cycle detection) |
| Cache | Redis |
| Chat | Matrix Synapse + Element/Cinny |
| Maps | MapLibre GL + Martin (vector tiles) + Pelias (geocoding) |
| Routing | MOTIS (transit) + Valhalla (car/bike/walk) |
| Video | Jitsi Meet |
| Tracking | Traccar (GPS fleet) |
| Mailcow | |
| Git | Gitea |
| Containers | Docker Compose |
- Python 3.12+ with pip
- Node.js 20+ with npm
- Docker with Compose plugin (
docker compose) - PostgreSQL 16+ with PostGIS and TimescaleDB extensions
- Redis 7+
- Neo4j 5+
- OpenSSL
git clone https://github.com/parahub-io/parahub.git /opt/parahub
cd /opt/parahub
# Install Python dependencies
pip install -r requirements.txt
# Bootstrap: generates secrets, creates .env, configures services
./install.sh
# Flags: --skip-docker (if services run externally)
# --skip-frontend (backend-only dev)
# --force (overwrite existing .env)The install script will:
- Generate all secrets and create
.env - Generate OIDC and VAPID keys
- Start Docker services (Neo4j, Synapse, Traccar, Jitsi, Gitea, etc.)
- Run Django migrations and create admin user
- Build the Nuxt frontend
# Start dev servers (keeps production running if deployed)
./0restart-dev
# Backend: http://localhost:8001
# Frontend: http://localhost:3001
# Set cookie parahub_dev=1 on your domain for nginx routingSet up nginx and systemd services (see nginx/ for example configs), then:
./0restart # Build + restart all servicesBrowser ──► Nginx ──► Nuxt SSR (:3000)
└──► Django API (:8000) ──► PostgreSQL/PostGIS
├──► Redis (cache/sessions/CQRS)
├──► Neo4j (barter graph)
└──► WebSocket (real-time)
└──► Docker services
├── Matrix Synapse (E2E chat)
├── Jitsi Meet (video)
├── Traccar (GPS tracking)
├── Gitea (git hosting)
├── Martin (vector tiles)
├── Pelias (geocoding)
└── Mailcow (email)
Key patterns: ULID identifiers, CQRS (high-freq reads via Redis, writes to PostgreSQL), JWT + session dual auth, native Redis pub/sub for WebSocket messaging.
Contributions welcome. The project is large but modular — each system (barter, governance, transit, etc.) is relatively self-contained.
- Run
./install.shto set up your environment - Use
./0restart-devfor development (never touches production) - Test data:
python3 manage.py seed_test_users && python3 manage.py seed_test_items