There are two modes of operation of General Admission
-
As a first-layer proxy
- Client sends a request to GA
- GA identifies User-Agent and redirects traffic accordingly
- Humans are forwarded to the DApp
- Bots / etxc. are forwarded to the internal Node server that handles OG tags or to the embed player
-
(current) As a host/origin of secondary endpoints for the App (Embed Player, OG Meta Tags, etc.)
- Client sends a request to a CDN with something like Lambda@Edge of CloudFlare Workers
- CDN identifies User-Agent and optionally redirects traffic to GA
- GA picks up on a subset of requests and forward to the internal Node server or the embed player
git clone git@github.com:AudiusProject/general-admission.git
cd general-admission
cp .env.stage .env # or .env.prod
docker compose up --build -d
visit http://localhost:9001 (it may be 9000, check by running docker ps).
and to stop it:
docker compose down
or if you want to run just the node service:
# Will be running on port 8000
npm run start
# or with docker
docker build -t ga-node .
docker run --rm ga-node -p 8000:8000 -d
- Run the dapp locally
- Set
APP_URLenv var in.envtohttp://docker.for.mac.localhost:{DAPP_PORT}
ssh prod-general-admission # or stage-general-admission
# Navigate to GA folder
cd general-admission
# Pull the latest code
git pull
# Update env files here if needed
cp .env.prod .env # or .env.stage
# Deploy
docker compose up -d --build node