From zero to your first sale: local setup, VPS deployment, custom domain with free SSL, AI keys, payment gateways and troubleshooting — in four languages.
Welcome to the BizPilot handbook — everything you need to run your business locally, ship it to a VPS, and get paid. Estimated setup time: 10 minutes.
BizPilot is a single Next.js app with an embedded SQLite database.
Requirements: Node.js 18+ (or Bun 1.1+) and Git.
git clone <your-repo-url> bizpilot
cd bizpilot
bun install # or: npm install
cp .env.example .envOpen .env and set the essentials:
DATABASE_URL="file:/app/data/bizpilot.db"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
ADMIN_EMAIL="admin@example.com"
ADMIN_PASSWORD="change-me-now"Create the schema, seed the admin account, then start the dev server:
bunx prisma db push # or: npx prisma db push
bun run db:seed # or: npm run db:seed
bun run dev # or: npm run devSign in at /login with the ADMIN_EMAIL and ADMIN_PASSWORD values you just set.
On a fresh VPS, the bundled installer does everything: it installs Docker if missing, builds the image and starts the app with a restart policy.
bash install.shPrefer manual control? Run:
docker compose up -d --build/app/data. Back up that folder and you back up your entire business — products, orders, keys and settings.git pull && docker compose up -d --build; your data survives rebuilds.docker compose logs -f app.BizPilot is lightweight: a $4–10/month server comfortably serves thousands of visits per day.
Recommended specs: 1–2 vCPU · 2 GB RAM · 20 GB SSD. Add a 2 GB swap file on 1 GB plans.
Well-tested providers:
Pick Ubuntu 22.04 or 24.04 LTS, then connect:
ssh root@YOUR_SERVER_IP
# optional but recommended on small plans
fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfileIn your DNS panel, create an A record — @ (or store) pointing to your VPS IP, TTL 3600. Then pick a reverse proxy:
Option A — Caddy (automatic HTTPS, zero config):
# /etc/caddy/Caddyfile
yourdomain.com {
reverse_proxy localhost:3000
}Caddy issues and renews your Let's Encrypt certificate automatically.
Option B — Nginx + Certbot:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo certbot --nginx -d yourdomain.comFinally, set your public URL in .env and restart: NEXT_PUBLIC_APP_URL=https://yourdomain.com.
BizPilot works with zero AI keys: a built-in deterministic engine generates brand, catalog and copy for free. When you want premium output, add keys in Settings → AI Keys.
Groq — free and extremely fast:
Google Gemini — generous free tier:
How rotation protects you:
429 (rate limit) the key enters cooldown and the next one takes over instantly.401/500 errors mark a key as dead — it is skipped automatically.Worthwhile paid upgrades:
gpt-4o-mini for cheap, sharp marketing copy; gpt-image-1 or DALL·E 3 for logos and banners.Prompt recipes that work:
minimal vector logo, flat, 2 colors, #10B981 and #F59E0B, white background, centeredwide banner 16:9, energetic gradient, modern e-commerce hero, no textAll three gateways confirm orders through signed webhooks — configure each endpoint exactly as shown.
Stripe (cards, Apple Pay, Google Pay):
https://yourdomain.com/api/webhooks/stripe.checkout.session.completed and paste the signing secret in Settings → Payments.Coinbase Commerce (BTC, ETH, USDT, USDC):
https://yourdomain.com/api/webhooks/coinbase.Binance Pay (official signed Merchant API):
https://yourdomain.com/api/webhooks/binance.Test Mode simulator: fire verified test checkout events end-to-end from Admin → Payments — no real money involved.
PORT=3001 docker compose up -d./app/data volume and run a single app instance.