Standalone Vite app for the GRAI (Grinders Artificial Index) page.
npm install
npm run devThe app runs at http://localhost:3001
npm run buildRequires Docker and Docker Compose v2.
Create the shared network before the first run (if it does not exist yet):
docker network create grindurusSource code is mounted into the container; port 3001 is exposed on the host:
docker compose -f docker-compose.dev.yml up -d --buildStop:
docker compose -f docker-compose.dev.yml downBuilds the app inside the container and serves it with vite preview. Routing goes through Traefik on the grindurus network (host app.${DOMAIN}).
docker compose up -d --buildStop:
docker compose downSet DOMAIN in .env next to docker-compose.yml (defaults to localhost).
docker build -t grindurus-app -f dockerfile .
docker run --rm -p 3001:3001 grindurus-app sh -c "npm run build && npm run preview -- --host 0.0.0.0 --port 3001"The app deploys automatically on every push to main via .github/workflows/deploy-pages.yml.
Live URL: https://app.grindurus.xyz/
- In the repo on GitHub: Settings → Pages → Build and deployment → Source → choose GitHub Actions.
- Custom domain:
app.grindurus.xyz(CNAMEapp→grindurus.github.ioin Namecheap). - Copy
.env.examplevalues into Settings → Secrets and variables → Actions:- Secrets — RPC URLs, mint addresses,
VITE_WALLETCONNECT_PROJECT_ID,VITE_BACKTEST_API_URL, etc. - Variables (optional) —
VITE_GRAI_SOLANA_CLUSTER(defaultdevnet),VITE_MAIN_APP_URL.
- Secrets — RPC URLs, mint addresses,
- Push to
mainor run the workflow manually (Actions → Deploy to GitHub Pages → Run workflow).
VITE_* variables are baked in at build time on CI. After changing secrets, re-run the workflow or push a commit.
npm run preview:pagesOpen http://localhost:4173/grai
See .env.example for the full list.
VITE_MAIN_APP_URL— URL of the main GrindURUS app for the «← GrindURUS» header link. Defaults to/(link hidden).
For Docker, put VITE_* variables in .env or .env.local at the project root. They are picked up by npm run build / npm run dev inside the container.