Skip to content

Setup Guide ​

Local development setup for Admin Frontend — the Nuxt 2 SSR DAM admin panel.

Repository: github.com/Collage-Inc/Admin-Frontend


Prerequisites ​

ToolRequired version
Node.js>=14.17.3 (Node 18 LTS recommended)
npmBundled with Node

pnpm also works (the repo has pnpm overrides in package.json). Scripts below use npm; swap to pnpm if that's your preference.


Clone Repository ​

bash
git clone https://github.com/Collage-Inc/Admin-Frontend.git
cd Admin-Frontend

Install Dependencies ​

bash
npm install

Environment Variables ​

Copy the example file and fill in the required values:

bash
cp .env.example .env

Minimum required variables to run locally:

VariableDescription
APP_NAMEApp display name (e.g. Collage DAM)
BASE_URLFrontend base URL (e.g. http://localhost:3000)
API_BASE_URLBackend API base URL (e.g. http://localhost:8000/api)
BACKEND_URLBackend root URL
DAM_FRONTEND_URLDAM frontend URL
APP_ENVEnvironment name (development, staging, production)
PUSHER_KEYPusher app key
PUSHER_CLUSTERPusher cluster (e.g. mt1)
PUSHER_AUTH_ENDPOINTPusher auth endpoint
TYPESENSE_HOSTTypesense server host
TYPESENSE_PORTTypesense port (default 8108)
TYPESENSE_PROTOCOLhttp or https
TYPESENSE_API_KEYTypesense search-only API key
STRIPE_PUBLISHABLE_KEYStripe publishable key
STRIPE_WEBHOOK_ENDPOINTStripe webhook endpoint URL
STRIPE_WEBHOOK_SECRETStripe webhook secret
AWS_ACCESS_KEY_IDAWS key for S3 uploads
AWS_SECRET_ACCESS_KEYAWS secret for S3 uploads
AWS_BUCKETS3 bucket name
AWS_DEFAULT_REGIONAWS region (e.g. us-east-1)
AMPLITUDE_API_KEYAmplitude project key (leave empty to disable tracking)

Never commit .env — it contains Stripe, AWS, and Typesense secrets.


Start Dev Server ​

bash
npm run dev

Opens at http://localhost:3000 by default. Override the port via PORT in .env.


Other Commands ​

CommandDescription
npm run buildProduction build (nuxt build)
npm run startStart the production server
npm run generateStatic site generation
npm run lintRun ESLint on .js and .vue files

Troubleshooting ​

Pre-commit hook fails on lint

Fix the ESLint error; do not bypass with --no-verify. The hook runs lint-staged which checks staged .js and .vue files only.

Port already in use

PORT=3001

Add to .env and restart.

Auth redirects loop on login

Check that API_BASE_URL and BASE_URL match the actual running servers. A mismatch causes auth cookie domain issues.

Real-time events not firing

Verify PUSHER_KEY, PUSHER_CLUSTER, and PUSHER_AUTH_ENDPOINT are set. The auth endpoint must be reachable from the browser (CORS-allowed).