ghost-portal/README.md
2026-10-30 02:47:53 -04:00

2.2 KiB

GHOST Portal

Customized Polkadot.js Apps fork for the GHOST Chain ecosystem. Pre-configured to connect to the CASPER Testnet RPC by default and shipped with a GHOST-branded dark theme.

  • Default RPC: wss://casper-rpc.ghostchain.io (CASPER Testnet)
  • Theme: dark-only, header #50759e, accent #F2E370
  • Upstream: polkadot-js/apps

Cloning

For building and deploying the portal, a shallow clone is enough (a few MiB):

git clone --depth 1 https://git.ghostchain.io/neptune/ghost-portal.git

For syncing upstream security updates, clone the full history:

git clone https://git.ghostchain.io/neptune/ghost-portal.git
cd ghost-portal
git remote add upstream https://github.com/polkadot-js/apps.git
git checkout ghost-portal

The full clone is large (~380 MiB) because it carries the complete polkadot-js/apps history. The heavy blobs are upstream's auto-generated logo index files and typesBundle.ts, not build artifacts.

Building

yarn install
yarn build

The web bundle is written to packages/apps/build/. Verify before deploying:

ls packages/apps/build/ | grep -E "index.html|main\.|conf\."

Deploying

rsync -avz --delete packages/apps/build/ root@YOUR_HOST:/var/www/ghost-portal/

Then on the server:

chown -R www-data:www-data /var/www/ghost-portal
find /var/www/ghost-portal -type d -exec chmod 755 {} \;
find /var/www/ghost-portal -type f -exec chmod 644 {} \;
systemctl reload nginx

Syncing upstream

git checkout ghost-portal
git fetch upstream
git merge upstream/main
# resolve conflicts, then:
git push ghost ghost-portal

Keep customizations isolated to the files listed below so merges stay small:

  • packages/apps-config/src/endpoints/casperTestnet.ts (endpoint definition)
  • packages/apps-config/src/ui/logos/chains/CasperTestnet.svg (logo)
  • packages/apps/src/Root.tsx (forced dark theme + default RPC)
  • packages/page-settings/src/General.tsx (settings defaults)
  • Theme variables in packages/react-components/src/styles/index.ts

License

Apache-2.0 — same as upstream.