- Node.js 18+ and npm
- Docker and Docker Compose
git clone <your-repo-url>
cd truestub-apollo-client
npm install
cp .env.local.example .env.localnpm run docker:upThis starts:
- PostgreSQL on
localhost:5432 - Hasura GraphQL on
localhost:8080
docker-compose ps
npm run docker:logsLook for:
- PostgreSQL:
database system is ready to accept connections - Hasura:
server: running on http://0.0.0.0:8080
npm run hasura:consoleOr go to: http://localhost:8080/console
- In Hasura Console → Data tab → SQL
- Run
scripts/01-create-tables.sql - Run
scripts/02-seed-data.sql
- Go to Data tab → Click "Track All"
- Set up relationships:
escrow_transaction_users→user(Object) →usersviauser_idescrow_transaction_users→escrow_transaction(Object) →escrow_transactionsviaescrow_transaction_idescrow_transactions→escrow_transaction_users(Array) viaidusers→escrow_transaction_users(Array) viaid
In GraphiQL tab, test:
query TestQuery {
users(limit: 5) {
id
email
first_name
last_name
}
escrow_transactions(limit: 5) {
id
contract_id
status
escrow_transaction_users {
funding_status
user {
email
first_name
}
}
}
}npm run devVisit: http://localhost:3000
Test:
- View escrow transactions and users
- Create new user via form
- Use refetch buttons
NEXT_PUBLIC_HASURA_GRAPHQL_URL=http://localhost:8080/v1/graphql
NEXT_PUBLIC_HASURA_ADMIN_SECRET=truestub_admin_secret_2024
NEXT_PUBLIC_HASURA_WS_URL=ws://localhost:8080/v1/graphql# Check ports
lsof -i :5433 # PostgreSQL
lsof -i :8080 # Hasura
# Clean restart
npm run docker:down
npm run docker:clean
npm run docker:up# Check logs
npm run docker:logs
# Test Hasura health
# Visit: http://localhost:8080/healthz✅ Both containers show "Up" status
✅ Hasura console loads at localhost:8080
✅ GraphQL query returns data
✅ Frontend shows data and forms work
✅ Can create users and see updates