Customized Polkadot.js Apps fork for GHOST Mainnet & CASPER Testnet. Pre-configured RPC, GHOST dark theme, and upstream-sync ready.
Go to file
2026-10-30 02:49:09 -04:00
.github 2025 (#11172) 2025-01-03 03:59:53 +02:00
.vscode Bump dev (w/ eslint config updates) (#9472) 2023-05-21 09:04:36 +03:00
.yarn Bump yarn to 4.6.0 (#11193) 2025-01-09 20:57:27 +02:00
docker Add security headers to disallow iframe embedding (#11632) 2025-06-18 10:21:46 -03:00
packages feat: GHOST branding and theme across components and build configs 2026-10-30 02:49:09 -04:00
scripts Update copyright year to make CI happy (#12142) 2026-01-30 11:03:02 +01:00
.dockerignore Add ENV support to the generated site (#2450) 2020-04-25 08:29:59 +02:00
.editorconfig Initial commit 2018-04-17 17:02:30 +02:00
.env-example Add ENV support to the generated site (#2450) 2020-04-25 08:29:59 +02:00
.gitignore Bump dev deps (#7856) 2022-07-11 16:41:56 +03:00
.mailmap Update .mailmap 2022-01-13 10:07:40 +02:00
.npmignore Initial commit 2018-04-17 17:02:30 +02:00
.nvmrc Add info message to stalled eras (on unbonding tooltip) (#9401) 2023-05-03 09:33:02 +03:00
.prettierignore .prettierignore 2021-06-08 18:05:53 +03:00
.prettierrc.cjs Update copyright year to make CI happy (#12142) 2026-01-30 11:03:02 +01:00
.yarnrc.yml Bump yarn to 4.6.0 (#11193) 2025-01-09 20:57:27 +02:00
BOUNTIES.md Additional requests for working on bounties (#1704) 2019-10-07 17:06:24 +02:00
CHANGELOG.md 0.171.2 (#12459) 2026-09-29 23:10:28 +03:00
CONTRIBUTING.md Don't pass UI_MODE/UI_THEME via env (#769) 2019-02-28 16:36:50 +01:00
CONTRIBUTORS [CI Skip] release/stable 0.171.2 2026-09-29 20:15:03 +00:00
eslint.config.js Update copyright year to make CI happy (#12142) 2026-01-30 11:03:02 +01:00
i18next-scanner.config.cjs Update copyright year to make CI happy (#12142) 2026-01-30 11:03:02 +01:00
I18N.md Bump api (#9476) 2023-05-22 09:28:52 +03:00
LICENSE Merge next into master (#529) 2018-12-21 17:17:26 +01:00
package.json [CI Skip] release/stable 0.171.2 2026-09-29 20:15:03 +00:00
README.md docs: clone instructions (shallow vs full) 2026-10-30 02:47:53 -04:00
tsconfig.base.json Display validators info after AHM (#11871) 2025-10-09 22:05:07 +05:30
tsconfig.build.json Staking Next Page (#11483) 2025-06-19 10:34:38 +05:30
tsconfig.eslint.json Bump dev (w/ eslint config updates) (#9472) 2023-05-21 09:04:36 +03:00
tsconfig.json Bump dev (w/ eslint config updates) (#9472) 2023-05-21 09:04:36 +03:00
tsconfig.webpack.json Adjust TS compilation target (#9120) 2023-03-07 12:27:19 +02:00
yarn.lock 0.171.2 (#12459) 2026-09-29 23:10:28 +03:00

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.