pezkuwichain 80d273ff11 ci/cd(backend): offline test suite + Dockerize + audit-grade deploy (b + c)
Closes the "backend has zero CI + manual SSH deploy" audit finding for the indexer.

Part B — CI-runnable tests (the integration-tests/*.live.test.js need a live chain and
are excluded, not stubbed): extract injectable cores (indexer.js: DB+HTTP+decode, no
@pezkuwi import; council.js: createApp factory for the council/KYC routes). New node:test
suite (19/19, fully offline) — in-memory sqlite, dependency-injected chain stub, an
in-memory fake-supabase, and REAL @pezkuwi keyring signatures proving 401 bad-sig /
400 msg-mismatch / 200 valid / 409 dup / 403 non-member / threshold auto-execute. Backend
job now runs npm ci + npm test and is in ci-gate (failing tests block merge). Fixed a
latent bug: block indexing now awaits each insert (was fire-and-forget forEach). Added
runtime deps server.js imported but were missing from package.json (@supabase/supabase-js,
pino, pino-http) — server.js could not have `npm ci`-run before.

Part C — Dockerfile (non-root, HEALTHCHECK /health, sqlite state on a /data VOLUME kept
out of the image) + backend deploy pipeline mirroring the web one: build+push to GHCR,
cosign keyless sign + verify, ssh deploy with the DB volume preserved across deploys,
/health poll, auto-rollback to previous SHA, same Telegram CEO approval gate, main/tags
only, never fork PRs. New secrets documented in backend/DEPLOY.md (BACKEND_VPS_HOST/USER/
SSH_KEY). DB_PATH env (default ./transactions.db) lets prod point at the volume.

Note for owner: if server.js (council/KYC bootstrap) is legacy/unused, its newly-added
deps can be dropped instead.
2026-07-25 11:01:47 -07:00
2025-10-22 18:05:19 -07:00

Pezkuwi Web App Projects (PWAP)

Monorepo for Pezkuwi blockchain frontend applications.

Project Structure

pwap/
├── web/                    # Main web application
├── mobile/                 # Mobile application (React Native + Expo)
├── backend/                # Backend API services
├── shared/                 # Shared code and utilities
└── package.json            # Root package with build scripts
Repository Description URL
pezkuwi-sdk-ui Blockchain Explorer & Developer Tools https://github.com/pezkuwichain/pezkuwi-sdk-ui
pezkuwi-extension Browser Wallet Extension https://github.com/pezkuwichain/pezkuwi-extension

Projects

1. web/ - Main Web Application

Status: Production Ready

The primary web interface for Pezkuwi blockchain at app.pezkuwichain.io

Tech Stack:

  • React 18 + TypeScript
  • Vite
  • @pezkuwi/api
  • Supabase (Auth & Database)
  • Tailwind CSS + shadcn/ui
  • i18next

Features:

  • Wallet integration (Pezkuwi Extension)
  • Live blockchain data
  • Staking dashboard
  • DEX/Swap interface
  • P2P Fiat Trading with atomic escrow
  • Transaction history
  • Multi-language support (EN, TR, KMR, CKB, AR, FA)
  • Governance with live blockchain integration
cd web
npm install
npm run dev

2. mobile/ - Mobile Application

Status: 🚧 In Development

React Native Expo app for iOS and Android.

Features:

  • Welcome screen with language selection
  • Multi-language support (6 languages with RTL)
  • Authentication (Sign In/Up)
  • Main dashboard navigation (5-tab bottom nav)
  • Wallet integration with @pezkuwi/api
  • Live blockchain data (HEZ, PEZ, USDT)
  • Send/receive transactions
  • Biometric authentication
cd mobile
npm install
npm start

3. backend/ - Backend Services

API services for the applications.

cd backend
npm install
npm run dev

4. shared/ - Shared Code

Common code, types, and utilities used across all platforms.

shared/
├── types/          # TypeScript type definitions
├── utils/          # Helper functions
├── blockchain/     # Blockchain utilities
├── constants/      # App constants
├── images/         # Shared images and logos
└── i18n/           # Internationalization

Quick Start

Prerequisites

  • Node.js 18+
  • npm

Installation

# Clone repository
git clone https://github.com/pezkuwichain/pwap.git
cd pwap

# Install all dependencies
npm install

# Or install individually
npm run install:web
npm run install:mobile
npm run install:backend

Build All Projects

npm run build

This builds:

  1. web - Vite production build
  2. pezkuwi-sdk-ui - Full SDK UI build (separate repo)
  3. mobile - Expo web export

Development

# Run web and mobile in parallel
npm run dev

# Or run individually
npm run dev:web
npm run dev:mobile

Multi-Language Support

All applications support:

  • 🇬🇧 English (EN)
  • 🇹🇷 Türkçe (TR)
  • ☀️ Kurmancî (KMR)
  • ☀️ سۆرانی (CKB)
  • 🇸🇦 العربية (AR)
  • 🇮🇷 فارسی (FA)

RTL support for CKB, AR, FA.

Scripts

Command Description
npm run build Build all projects
npm run dev Start development servers
npm run lint Run linters
npm run test Run tests
npm run install:all Install all dependencies

License

Apache-2.0

S
Description
No description provided
Readme MIT 123 MiB
Languages
TypeScript 87.9%
PLpgSQL 4.1%
Rust 4.1%
JavaScript 2.5%
CSS 0.7%
Other 0.6%